SaltStack: központosított szervervezérlési alapok

Egy kevésbé ismert szoftver, amivel jelentősen le tudom rövidíteni a szerver üzemeltetési és telepítési feladataimat. – írta: stopperos, 8 éve

SaltStack Alapok

Mint ahogy logoutos bemutatkozásom is mutatja, rendszergazdaként tevékenykedek, de gyárilag fizikus vagyok. Ezen utóbbi tény miatt jellemző rám, hogy lusta vagyok, de ez a jobbik fajtája. Hogy mit is értek ez alatt? Ha például a feladat 10 asztali környezet összeállítása a gépteremben, akkor hamarabb írom meg a telepítő szkripteket és rakom össze a PXE/tftpboot környezetet, minthogy egyesével telepítsem a gépeket.
Azért vannak a gépek, hogy kiszolgáljanak, nem arra, hogy délutánokat töltsek a telepítésükkel! Most azonban egy további lépést tettem.

Központosított vezérlés és konfiguráció menedzsment témakörben több megoldás létezik Linux környezetben. Ilyen például a chef vagy a puppet, a több lehetséges opcióból kettőt kiemelve. Nem mennék bele ezek problémáiba, de tömören: meredek a tanulási görbe és sokszor lehet azt érezni, hogy olyan fejlesztők kezdték el írni, akik nem dolgoztak igazán nagy rendszerekkel.

Mostanság viszont egy új csillag kezd felragyogni az égen, ez pedig a saltstack:

Ez egy pythonban (egészen pontosan cythonban) íródott cucc, ami egy master és egy node (avagy minion) telepítésből áll legegyszerűbben. A salt-master adja ki a parancsokat, míg a bekapcsolódott salt-minonok sokasága fogadja azokat és feldolgozza őket. Ha végeztek a munkával, visszaküldik a masternak az eredményt. A kommunikáció aszinkron, és egy masterhez több ezer node is kapcsolódhat.
Elsősorban Linuxra íródott, de elboldogul Windowson vagy BSD-n is.

Nézzük egy alap telepítést Ubuntu 12.04-re, amikor a salt-master és a salt-minion is ugyanazon a gépen lesz megtalálható. Parancsok:

sudo apt-get install python-software-properties
sudo apt-add-repository ppa:saltstack/salt
echo "127.0.0.1 salt" | sudo tee -a /etc/hosts
sudo apt-get update
sudo apt-get install salt-master salt-minion

Magyarázat: telepítem a community tárolót, hogy a legfrissebb csomagok legyenek mindig. Beállítom a gép nevét "salt"-ra, mert a minion alapbeállítás szerint ezen keresi majd a master gépet. Majd felrakom a salt csomagokat.

Csatlakoztassuk be a salt-minont a masterbe:
sudo salt-key -L
sudo salt-key -A

Magyarázat: Sajnos root joggal kell mindent futtatni, de ennek megkerülése túlmutatna jelenlegi írásomon. Az első parancs kilistázza az csatlakozni kívánó minionokat, a második pedig egy y válasz után hozzáadja annak titkosított kulcsát a masterhez.

Kimenet#1:
stopperos@sysadmin-remote:~$ sudo salt-key -L
Accepted Keys:
AO751h
raspberrypi
ubuntu-server
Unaccepted Keys:
sysadmin-remote
Rejected Keys:

Kimenet#2:
stopperos@sysadmin-remote:~$ sudo salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
sysadmin-remote
Proceed? [n/Y] Y
Key for minion sysadmin-remote accepted.

Indulhat a móka.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények