Difference between revisions of "Salt"

From A-Eskwiki
Jump to: navigation, search
m (Nieuwe /srv map structuur.)
Line 1: Line 1:
 
[[category:sysop]]
 
[[category:sysop]]
  
==Salt==
 
 
Salt is verantwoordelijk voor het configureren van de systemen in gebruik bij [[A-Eskwadraat]].
 
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.
 
Onder configuratie valt bijvoorbeeld het installeren van packages, het updaten van packages, en het configureren van services.
Line 16: Line 15:
  
 
==Salt minion config==
 
==Salt minion config==
Gebeurt automagisch bij kickstarten.
+
Gebeurt automagisch bij [[kickstart]]en.
  
 
Herconfigureren van een salt-minion kan handmatig worden gedaan op vm-salt-master:
 
Herconfigureren van een salt-minion kan handmatig worden gedaan op vm-salt-master:
Line 88: Line 87:
  
 
Wanneer een bestand onder beheer van salt wordt gewijzigd op een salt-minion dient deze ook te worden gewijzigd op de salt-master.
 
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.
+
Daarna moeten de wijzigingen in de /srv/salt map worden gecommit in de [[SVN]]-repository.

Revision as of 21:47, 12 December 2016


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/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.