Salt

Allikas: Kuutõrvaja

Sissejuhatus

Salt on kahtlemata keerukama ülesehitusega kui ansible. Seega alguses on raske aru saada mis see pillar ja grain on ja kuidas neid valemeid mitut saiti (live|qa|pre|int|jne) silmas pidades võimalikult universaalselt kirjutada võiks.

Seadistus

Serveri paigaldus ehk salt-master debianis/ubuntus paigaldub käsuga

apt-get install salt-master

Konfiguratsioon on /etc/salt/master. Minionide seadistusi otsib ta kaustast /srv/salt

Kliendi ehk salt-minioni paigaldus

Kõigis levinud opsüsteemides toimib paigalduseks järgmine üherealine käsk

wget -O - http://bootstarp.saltstack.org | sudo sh

Kliendi konfiguratsioon asub /etc/salt/minion Vaikimisi üritavad kõik minonid ühenduda masteriga, mille hostnameks on salt. Selleks,e t muuta master masina nime võib nt selle masina defineerida /etc/hosts abil

Minionid genereeriad käivitumisel omaneda võtmepaari ja saadavad avaliku võtme masterile.

Debianil/ubuntul paigaldab see skirpt lisaks sobiva apti repo

Master servers näeb võtmete nimekirja käsuga

salt-key -L

Võtmeid, mis ootavad autoriseerimist näeb ja saab aksepteerida

salt-key -A

Kasutamine käsurealt

Kõigi masinate kontroll

Salt '*' test.ping

Seejuures * defineerib kõik minionid ja test.ping teatab minonidele kasutada test.ping funktsiooni

Eeldefineeritud käivitusmoodulite (execution modules) kasutamine.

salt '*' cmd.run 'ls /'

Paki installimine, seejuures on antud moodul piisavalt tark, et kasutada juba erineate opsusteemide sees sealseid vahendeid nagu yum redhatis, apt debianis jne

salt '*' pkg.install vim

Moodul mis näitab võruseadmeid ja nende ip aadresse

salt '*' network.interfaces

Skriptid võib paigaldada nt /srv/salt ala ja käivitada neid

salt '*' cmd.script salt://mysript.sh

Salt kasutab enda failide hoidmiseks väikest failiserverit

Võimalik on käivitada käske ka vaid kindla os-iga masinates nt

salt -G 'os:Debian' test.ping

küsib kõigilt debiani masinatelt kas nad on elus. Aga võimalikukd veelgi keerukamad kombinatsioonid

salt -G 'cpuarch:x86_64' grains.item num_cpus

Match all minions with 64-bit CPUs, and return number of CPU cores for each matching minion

State failid

SLS files ehk salt state failid on mõeldud minonide tetud seisu konfigureerimiseks. Suur posu valmis valemeid on ka githubis olemas aga päris 1:1 neid üle võtta alati pole mõtet.

Apache paigaldamiseks mõeldud fail

apache:
  pkg.installed: []
  service.running:
    - require:
      - pkg: apache

Keerukam näide, mis lisaks paigaldamisele ka teeb apache esmase seadistuse

apache:
  pkg.installed: []
  service.running:
    - watch:
      - pkg: apache
      - file: /etc/httpd/conf/httpd.conf
      - user: apache
  user.present:
    - uid: 87
    - gid: 87
    - home: /var/www/html
    - shell: /bin/nologin
    - require:
      - group: apache
  group.present:
    - gid: 87
    - require:
      - pkg: apache

/etc/httpd/conf/httpd.conf:
  file.managed:
    - source: salt://apache/httpd.conf
    - user: root
    - group: root
    - mode: 644

SLS templated

Salt api toe saab vajadusel ka oma rakendusse kirjutada ja pmst ise paranevaid asju tehaSent

http://bencane.com/2014/12/30/building-self-healing-applications-with-salt-api/

Oma "graine" saad lihtsalt pythonis teha

https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.grains.htmlja