Drift/Salt
Salt er, som Drift/Puppet, et system for å distribuere filer og sørge for at maskiner har samme oppsett.
Sette opp ny salt minion
Installasjon
$ apt-get install salt-minion $ ssh root@salt.pvv.ntnu.no salt-master# salt-key -L salt-master# salt-key -a hostname.pvv.ntnu.no salt-master# salt '*' test.ping
Hvis alt har har gått bra, vil pingtesten gi true for maskinen din nå. Hvis ikke, kjør service salt-minion status
som root på din nye minion for å få hint om hva som er galt. Konfigurasjonsfilen til salt ligger i /etc/salt/minion
.
Et kjent problem er at dns-oppsettet vårt ikke lar salt-minion finne salt-masteren vår med standardinnstillingene. Løsningen på dette er å legge til master: lommel
i /etc/salt/minion
.
I tilfellet man endrer hostname på en minion, gjør følgende for å få det oppdatert i salt: Stop salt-minion på den berørte maskinen. Slett nøkkelen til maskinen fra salt-master. Slett /etc/salt/minion/minion_id
. Start salt-minion service-en. Autoriser den nye nøkkelen med det nye navnet i salt-master.
Husk å legge nyoppsatte maskiner til i riktige grains.
Legge til nye filer
Grains
Salt kan bruke grains for å gjøre noe på en gruppe med maskiner. salt 'hostname*' grains.items
viser alle grains hostname er med i. For eksempel kan man si salt -G 'os_familt:Debian' test.ping
for å pinge maskiner som er basert på Debian.
For å legge en minion til en gruppe gjør følgende på minion-en:
Konfigurasjon
$ vim /etc/salt/grains roles: - workstations - typing_machine
Når minions har blitt lagt til i roller er det viktig å huske på å synkronisere disse med masteren. Den letteste måten å gjøre det på er å kjøre salt '*' saltutil.sync_grains
fra salt-masteren.
For å nå maskiner gjennom egendefinerte grains bruk salt -G 'attributt:verdi' kommando
. Et eksempel er salt -G 'roles:workstation' test.ping
.
Nyttige kommandoer og syntax
Hvordan kopiere filer fra salt-master til minions:
salt-cp "*" /path/to/file/on/salt/master /path/to/file/on/minions
Hvordan kjøre kode på minions:
salt "*" cmd.run "ps -e | grep salt"
For å kjøre på enkeltmaskiner istedenfor alle eller grains skriv inn navnet istedenfor "*"
. Eksempel:
salt maskinnavn.pvv.ntnu.no cmd.run "ps -e | grep salt"
For å sjekke om en pakke er installer og hvilken versjon den har:
salt "*" pkg.version "grep"
For å installere eller oppgradere en pakke:
salt maskinnavn.pvv.ntnu.no pkg.install sl