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, 10 éve

SaltStack Parancsok

Jelenlegi írásomban még nem kezdek rögtön mély vízben, elsősorban a távoli parancs futtatás témakörét érintem.

Adjuk ki első parancsunkat az egy gépből álló só rakásunknak:
sudo salt \* test.ping

Magyarázat: Ez tekinthető a HelloWorld salt megfelelőjének. Root joggal kell meghívni a salt parancsot. A "\*" jelentése az, hogy az összes minionre szeretnénk az utána lévő salt modult és annak függvényét ráengedni. Írhattam volna a \* helyett "sysadmin-*" is, és akkor az összes olyan gépre ment volna ki, amire illik a wildcard, illetve teljes nevet is megadhattam volna, hogy csak egy gépre hivatkozzak.

Kimenet:
stopperos@sysadmin-remote:~$ sudo salt \* test.ping
sysadmin-remote:
True
raspberrypi:
True

Nálam csak két gép elérhető a négyből, így csak azok válaszoltak vissza.

Mondhatjátok, hogy jó, oké, ez szép és jó, de ezt egy fping -a -g 192.168.1.0/24 2>/dev/null paranccsal is meg tudtam volna nézni. Gyerünk bányászni!

sudo salt \* network.ip_addrs -> az összes elérhető minion ip címe.
sysadmin-remote:
- 10.0.2.17
- 192.168.1.18
- 192.168.200.18
raspberrypi:
- 192.168.1.13
- 192.168.200.6

sudo salt \* network.hwaddr eth0 -> Milyen mac címek tartoznak bizonyos hálózati kártyához
sysadmin-remote:
00:11:22:33:44:66
raspberrypi:
ff:ff:ff:ff:ff:ff

sudo salt \* cron.job_list root -> Milyen cronjob fut a root felhasználó nevén?
sudo salt \* pkg.install openssl -> Csomag telepítése/frissítése minden kliensre (erre a 3. oldalon visszatérek).
sudo salt \* service.reload nginx -> Újratölti a kijelölt szolgáltatást, True a visszatérési érték ha sikerült, False ha nem sikerült, mert például nincs is a gépen nginx.
sudo salt \* pkg.upgrade -> Csomagok frissítése minden kliensen
Ami itt lényeges, hogy nem kell tudni, hogy az most egy fedora, opensuse, arch, vagy ubuntu. A salt elintézi a frissítést a kliensen elérhető csomagkezelővel függetlenül attól, hogy az yum, apt-get vagy pacman. Csak a csomag nevének kell megegyeznie.

Kezdjük érezni már a hatalmat? Futtassunk tetszőleges shell parancsot!
sudo salt \* cmd.run "df -TH" -> Mennyi hely érhető el a rendszereimen?
sudo salt \* cmd.run "tail /var/log/auth.log" -> Ki garázdálkodott az utóbbi időben?

Mi érhető el az egyes minionön?
sudo salt sysadmin-remote sys.doc | less -> ez kilistázza az összes salt modult és azok függvényeit, amiket meghívhatunk. Csemegézzünk, nagyon-nagyon sok van.

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

Azóta történt

Előzmények