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



17.08.2018

Kontrola dostępu

Axis A1601
14.08.2018

Zabezpieczenia prognostyczne

Sophos Email Security Advanced
10.08.2018

Polski Azure Stack...

Beyond.pl Data Center 2
07.08.2018

Zarządzanie urządzeniami...

Quest KACE Cloud MDM, KACE Systems Deployment Appliance (SDA)
03.08.2018

Multimodalny OS

SUSE Linux Enterprise 15
27.07.2018

Skalowalne all-flash

QSAN XCubeFAS XF2026D
24.07.2018

Interaktywne kioski

Pyramid Polytouch 32
20.07.2018

Laserowe benefity

Brother TonerBenefit
17.07.2018

Laptop konwertowalny

HP ProBook x360 440 G1

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"