Difference between revisions of "Salt"

From A-Eskwiki
Jump to: navigation, search
(Uitleg over salt uitgebreid.)
Line 24: Line 24:
 
</pre>
 
</pre>
  
==Salt .sls Files==
+
Als er een serieuze fout optreed 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==
 
==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/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/id_rsa_sysop.pub: deze public key wordt gebruikt voor authenticatie van sysop leden.

Revision as of 13:25, 12 December 2013


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.

Herconfigureren van een salt-minion kan handmatig worden gedaan op vm-salt-master:

[root@vm-salt-master ~]# salt '<hostname>' state.highstate

Als er een serieuze fout optreed 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/aes-vm/ : in deze map staan de configuraties voor alle virtuele machines.
  • /srv/salt/workstation/ : in deze map staat de configuratie voor de workstations.
  • /srv/salt/ernst/ : in deze map staat de configuratie voor ernst.