Salt - arhitectura distribuita cu salt syndic
Postat la Sun 20 September 2020 in tutoriale
Arhitectura clasica pentru Salt este un singur master ce controleaza un grup de minioni. Dar in anumite cazuri se doreste impartita in diferite segmente pe care sa fie controlate dintr-o locatie centrala.
Intalnim acest caz cand avem multiple datacentere sau filiale locale (cu numar mai mare de staii locale).
Nodul/minionul intermediar numit Syndic ruleaza o instanta de salt-syndic si o instanta de salt-master - find master local pentru minionii din segmetul local - si transmite comenzile primite de la master-ul central numit si "Master of Masters".
Configurare Syndic
Instalam pachetele necesare:
yum install salt-master
yum install salt-syndic
yum install salt-minion
Configuram minionul sa se conecteze la masterul central. Adaugam in /etc/salt/minion.d/master.conf:
master: master.lxd
Specificam conectarea la Master of Masters pentru salt-syndic in /etc/salt/minion.d/syndic.conf:
syndic_master: master.lxd
Activam si pornim serviciile:
systemctl enable salt-syndic --now
systemctl enable salt-master --now
systemctl enable salt-minion --now
Configuram ca Master of Masters pentru comunicarea cu serverele Syndic in /etc/salt/master.d/syndic.conf:
order_masters: True
Acum putem accepta cheile minionilor administrati de syndic
[root@syndic-1 ~]# salt-key
Accepted Keys:
minion00.zone1.lxd
minion01.zone1.lxd
minion02.zone1.lxd
minion03.zone1.lxd
minion04.zone1.lxd
minion05.zone1.lxd
si acceptam cheia nodului syndic pe master.
[root@master ~]# salt-key
Accepted Keys:
master.lxd
syndic.zone1.lxd
syndic.zone2.lxd
Verificare conectare minioni
[root@master ~]# salt \* test.version
master.lxd:
3001.1
syndic.zone1.lxd:
3001.1
syndic.zone2.lxd:
3001.1
minion00.zone1.lxd:
3001.1
minion02.zone1.lxd:
3001.1
minion04.zone2.lxd:
3001.1
minion05.zone2.lxd:
3001.1
minion01.zone2.lxd:
3001.1
minion00.zone2.lxd:
3001.1
minion03.zone2.lxd:
3001.1
minion02.zone2.lxd:
3001.1
minion03.zone1.lxd:
3001.1
minion01.zone1.lxd:
3001.1
minion05.zone1.lxd:
3001.1
minion04.zone1.lxd:
3001.1
Acum putem transmite comenzi tutror minionilor conectati.
Distributie states si pillar
Pentru a beneficia de intreaga putere oferita de Salt e necesar sa distribuim fisierele de state si pillar pe serverele syndic. Una din metodele recomandate este dintr-un repo git central prin gitfs. Modul de configurare l-am descris in articolul Salt - gestionare states si pillar prin git
In caz contrar primim eroarea:
[root@master lxd]# salt minion04.zone1.lxd state.apply ssh
minion04.zone1.lxd:
Data failed to compile:
----------
No matching sls found for 'ssh' in env 'base'
ERROR: Minions returned with non-zero exit code
Articolul face parte din seria Aplicatii pentru managementul configuratiilor