Difference between revisions of "Salt"
(Created page with "category:sysop ==Salt master config== Installeer salt-master yum install salt-master chkconfig salt-master on service salt-master start Open firewallpoorten tcp 4505 en …") |
m (→Salt minion config: verduidelijking) |
||
| (7 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
[[category:sysop]] | [[category:sysop]] | ||
| + | |||
| + | 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== | ==Salt master config== | ||
Installeer salt-master | Installeer salt-master | ||
| Line 5: | Line 11: | ||
chkconfig salt-master on | chkconfig salt-master on | ||
service salt-master start | service salt-master start | ||
| − | + | ||
Open firewallpoorten tcp 4505 en tcp 4506 | Open firewallpoorten tcp 4505 en tcp 4506 | ||
==Salt minion config== | ==Salt minion config== | ||
| − | + | Salt-minion wordt automatisch geïnstalleerd bij [[kickstart]]en of in de template voor [[Container|containers]]. | |
| + | |||
| + | Om een nieuwe machine aan salt toe te voegen, kijk of de machine al is gevonden door salt: | ||
| + | <pre> | ||
| + | salt-key -L | ||
| + | </pre> | ||
| + | En zo ja, voeg deze dan toe: | ||
| + | <pre> | ||
| + | salt-key -a <hostname> | ||
| + | </pre> | ||
| + | |||
| + | Om de machine voor het eerst te configureren, of om deze te herconfigureren, voer dit uit op vm-salt-master: | ||
| + | <pre> | ||
| + | [root@vm-salt-master ~]# salt '<hostname>' state.highstate | ||
| + | </pre> | ||
| + | |||
| + | Als er een serieuze fout optreedt bij de salt-minion kan het nodig zijn om de service te herstarten: | ||
| + | <pre> | ||
| + | [root@host ~]# service salt-minion restart | ||
| + | </pre> | ||
| + | |||
| + | ==Salt .sls Config== | ||
| + | De configuratie van een systeem is gespecificeerd in een bestand genaamd init.sls. | ||
| + | |||
| + | <pre> | ||
| + | # 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 %} | ||
| + | |||
| + | </pre> | ||
| + | |||
| + | 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. | ||
Latest revision as of 20:28, 22 October 2018
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
Salt-minion wordt automatisch geïnstalleerd 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.