Salt
Salt is verantwoordelijk voor het configureren van de systemen in gebruik bij A-Eskwadraat.
Onder configuratie valt bijvoorbeeld het installeren van packages, het updaten van packages, en het configureren van services.
De zogenaamde salt-master is verantwoordelijk voor het onderhouden van de salt-minions.
De huidige salt-master service draait op vm-salt-master, en de salt-minion service draait onder andere in de vm's op Haskell en de workstations.
Salt master config
Installeer salt-master
yum install salt-master chkconfig salt-master on service salt-master start
Open firewallpoorten tcp 4505 en tcp 4506
Salt minion config
Gebeurt automagisch bij kickstarten of in de template voor containers.
Om een nieuwe machine aan salt toe te voegen, kijk of de machine al is gevonden door salt:
salt-key -L
En zo ja, voeg deze dan toe:
salt-key -a <hostname>
Om de machine voor het eerst te configureren, of om deze te herconfigureren, voer dit uit op vm-salt-master:
[root@vm-salt-master ~]# salt '<hostname>' state.highstate
Als er een serieuze fout optreedt bij de salt-minion kan het nodig zijn om de service te herstarten:
[root@host ~]# service salt-minion restart
Salt .sls Config
De configuratie van een systeem is gespecificeerd in een bestand genaamd init.sls.
# Dit is een actueel voorbeeld van een init.sls uit de configuratie van vm-mail. # Gebruik voor de indentatie van het bestand alleen tabs, anders krijg je vreselijke foutmeldingen. # Deze sectie is verantwoordelijk voor de installatie van de service Exim. exim: pkg: - installed service: # Check met regelmaat of de service nog draait. - running # Laat de service automatisch opstarten. - enable: True # Herstart de service als er een bestand gewijzigd word in de map /etc/exim/. - watch: - file: /etc/exim # Deze sectie is verantwoordelijk voor het kopiëren van configuratie bestanden naar de minion. /etc/exim: # Kopieer recursief de bestanden in salt://aes-vm/vm-mail/exim naar de map /etc/exim op de salt-minion. file.recurse: - source: salt://aes-vm/vm-mail/exim - name: /etc/exim - user: root - group: root - file_mode: 644 - require: - pkg: exim # Met de for loop kan je handmatig bestanden kopieren. Gebruik de recursieve methode indien mogelijk. # Let op dat gevoelige bestanden zoals certificaten de juiste file permissies krijgen. {% for e in 'dkim_alef.crt','dkim_alef.key','exim.cert' %} /etc/exim/{{ e }}: file.managed: - source: salt://aes-vm/vm-mail/exim/{{ e }} - user: exim - group: exim - mode: 640 {% endfor %}
Let op: als er een syntax fout staat in de configuratie krijg je een interne python error. De configuratie is extreem gevoelig voor fouten in spaties / tabs. Gebruik bijv. de syntax highlighting van vim om fouten te vinden.
Salt Maps
De configuratie bestanden van de salt-minions zijn te vinden in de map /srv/salt/.
- /srv/salt/top.sls : in deze file zijn worden hostnames met een specifieke configuratie verbonden.
- /srv/salt/id_rsa_sysop.pub: deze public key wordt gebruikt voor authenticatie van sysop leden.
- /srv/salt/centos/ : in deze map staan de configuraties voor alle centos-gebaseerde machines, zoals de meeste virtuele machines.
- /srv/salt/fedora/ : in deze map staat de configuratie voor alle fedora-gebaseerde machines, zoals de workstations.
- /srv/salt/ernst/ : in deze map staat de configuratie voor ernst.
Wanneer een bestand onder beheer van salt wordt gewijzigd op een salt-minion dient deze ook te worden gewijzigd op de salt-master. Daarna moeten de wijzigingen in de /srv/salt map worden gecommit in de SVN-repository.