Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



21.09.2018

Kolor razy 6

Kyocera ECOSYS i TASKalfa
18.09.2018

Na ataki piątej generacji

Check Point 23900
14.09.2018

UHD dla pro

Samsung UJ59
11.09.2018

Ochrona dla firm

ESET Security Management Center
07.09.2018

Skanowanie podatności

Beyond Security AVDS
04.09.2018

Open source do automatyzacji...

Red Hat Ansible Engine 2.6
28.08.2018

CPU dla stacji roboczych

Intel Xeon E-2100
24.08.2018

Macierze do DC

Infortrend EonStor GS 5000
21.08.2018

Elastyczne PoE

Netgear GS11xxx

Open SaltStack – orkiestracja i automatyzacja w Linuksie

Data publikacji: 20-04-2018 Autor: Tomasz Bielas
RYS. 1. SZYFROWANY TUNEL OD...

W świecie Linuksa, gdzie obecnie masowa automatyzacja, czy jak kto woli orkiestracja, została zdominowana przez oprogramowanie Puppet i Ansible, istnieje jeszcze przynajmniej jedno rozwiązanie, które równie dobrze może wspomóc pracę administratora przy dużej skali środowiska IT. W dodatku jest to darmowe oprogramowanie open source.

Oprogramowanie SaltStack dostępne jest w dwóch wersjach. Wersja Open SaltStack jest typowo commandline’owym rozwiązaniem. Wersja Salt- Stack Enterprise wyposażona jest dodatkowo we wbudowany interfejs webowy oraz dostarczana wraz z szeroko rozumianym wsparciem producenta.

W artykule przyjrzymy się wyłącznie wersji open. Na zakup wersji enterprise, mogą zdecydować się osoby, które przekona dość prosty i w naszej ocenie mało funkcjonalny interfejs użytkownika. Zwłaszcza że przy odrobinie umiejętności programistycznych i niewielkim nakładzie pracy można samodzielnie napisać prosty interfejs webowy. Również utrzymanie samego narzędzia nie powinno nikomu sprawić większych kłopotów i korzystanie ze wsparcia producenta może być potrzebne raczej w wyjątkowych przypadkach.

> ŚRODOWISKO DZIAŁANIA

Oprogramowanie można stosować zarówno na platformie Linux, jak i Windows (krótkie testy Open SaltStack w systemach Microsoft pokazały, że działa ono w tym środowisku bardzo stabilnie i wydajnie). Producent zarówno dostarcza gotowe, skompilowane pakiety binarne (dla Windows pakiet instalacyjny .exe z wbudowaną instancją Pythona), jak i można przygotować sobie własną kompilację. W opisywanym przypadku wykorzystywane były repozytoria pakietów RPM dla Red Hat Enterprise Linux (RHEL) w wersji 6 oraz 7 i w obu przypadkach wszystko działało bez najmniejszego problemu. Producent zadbał nawet o dostępność nowej wersji Pythona dla starszej wersji RHEL 6, tak więc użytkownicy poprzedniej wersji systemu nie będą się męczyć np. podczas podłączania zewnętrznych repozytoriów do hostów. Agenty (tzw. salt-miniony) potrafią aktualizować się same, lecz takie rozwiązanie nie jest zalecane w momencie, gdy zastosowane zostało oprogramowanie z paczki, czyli użyliśmy np. gotowego do instalacji pakietu RPM.

Salt został napisany w bardzo popularnym od paru lat języku Python, więc w produkcie znajdziemy moduły dla tego języka – wystarczy jeden prosty import, aby mieć dostęp do szyny danych oraz całej funkcjonalności narzędzia. Daje to duże możliwości tworzenia własnych skryptów z użyciem SaltStacka czy nawet idąc dalej, prostego, webowego interfejsu użytkownika. W przypadku gdy będziemy potrzebować prostego API HTTP, można skorzystać z pythonowego cherryPy. Salt integruje się z tym rozwiązaniem w zasadzie bez żadnego nakładu pracy z naszej strony – wystarczy jeden wpis w konfiguracji salt-master oraz instalacja pakietu cherryPy.

Decyzja o wdrożeniu SaltStacka może wynikać np. ze względu na zastosowane wygodne rozwiązanie techniczne, czyli sposób komunikacji pomiędzy hostem głównym zwanym salt-master oraz agentem zdalnym zwanym salt-minion. Salt potrafi również działać bez agenta, używając wyłącznie protokołu SSH i kont systemowych, niestety jest to sporo wolniejsze rozwiązanie. Skupimy się więc na rozwiązaniu z dedykowanym agentem.

> ZESTAWIANIE BEZPIECZNYCH POŁĄCZEŃ

Jak już wspomniano, salt-master, jak i salt-minion to software napisany w języku Python. Salt-master jest serwerem centralnym, zarządzającym całą instancją Salta w rozproszonym środowisku IT. Tym, czym wyróżnia się opisywane rozwiązanie od niektórych innych produktów, gdzie również stosowane są agenty, jest to, że agent salt-minion łączy się w stronę salt- -mastera. Tak właśnie połączenie, a dokładniej mówiąc szyfrowany tunel zestawiany jest od strony agenta do serwera centralnego (rys. 1). Co nam to daje? Dużo. W takiej sytuacji sam agent nie wystawia nam portu na zewnątrz hosta, co bezpośrednio wpływa na bezpieczeństwo zarówno tego oprogramowania, jak i hosta. Tak samo zewnętrzne skanowanie podatnościowe nie ma tutaj sensu.

Salt potrzebuje do poprawnego działania otwarcia ruchu sieciowego dla dwóch portów, które powinny być otwarte od strony salt-miniona do salt-mastera. Mowa o portach 4505/ TCP, 4506/TCP – jeden to port command drugi to port data.

System sterowany jest za pomocą eventów. Po zestawieniu szyfrowanego tunelu pomiędzy masterem a minionem z pomocą przychodzi ZeroMQ, które używane jest do wewnętrznej komunikacji. Takie rozwiązanie jest niezwykle wydajne, ponieważ salt-master nie jest obciążany i w praktyce nie śledzi zadań, które zleca agentom. Salt-master jedynie dodaje do kolejki zadania i oczekuje na eventy zwrotne od nich. Z praktyki wynika, że około 1000 hostów dla jednego salt-mastera nie jest wyzwaniem, przy użyciu dla konfiguracji hosta 4 vCPU i 8 GB pamięci RAM.

SaltStack jest oprogramowaniem bardzo lekkim, łatwo się go skaluje, miniony wspierają komunikację multi master, a dla większych środowisk możemy posiadać różne instancje masterów. Dzięki temu np. segmentacja sieci w większych środowiskach nie jest problemem.

> UŻYTKOWANIE

W SaltStacku świetnie zostało rozbudowane targetowanie hostów, a rozwiązanie oferuje duże możliwości wykonywania zdalnych poleceń na hostach – wydajnie i na masową skalę. Przyjrzyjmy się wybranym z nich.

W oprogramowanie wbudowano tzw. mechanizm grains – nie jest to nic innego jak mechanizm zbierający informacje o hostach, które później mogą być użyte np. do targetowania.

 

[...]

 

Certyfikowany administrator Linuksa. Pracuje jako administrator systemowy RHEL dużego, rozproszonego środowiska IT, gdzie zajmuje się zagadnieniami dot. automatyzacji crossplatformowych procesów oraz technologii w dynamicznym środowisku IT. Entuzjasta open source od czasów Slackware 7.0.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2013 Presscom / Miesięcznik "IT Professional"