Difference between revisions of "Drift/Salt"

From Programvareverkstedet
Jump to: navigation, search
(Added useful example commands)
(Added example of how to target a single machine through salt)
Line 33: Line 33:
 
</pre>
 
</pre>
  
== Nyttige kommandoer ==
+
== Nyttige kommandoer og syntax ==
  
 
Hvordan kopiere filer fra salt-master til minions:<br>
 
Hvordan kopiere filer fra salt-master til minions:<br>
Line 40: Line 40:
 
Hvordan kjøre kode på minions:<br>
 
Hvordan kjøre kode på minions:<br>
 
<code><nowiki>salt "*" cmd.run "ps -e | grep salt"</nowiki></code>
 
<code><nowiki>salt "*" cmd.run "ps -e | grep salt"</nowiki></code>
 +
 +
For å kjøre på enkeltmaskiner istedenfor alle eller grains skriv inn navnet istedenfor <code><nowiki>"*"</nowiki></code>. Eksempel:<br>
 +
<code><nowiki>salt maskinnavn.pvv.ntnu.no cmd.run "ps -e | grep salt"</nowiki></code>

Revision as of 22:44, 14 September 2015

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

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"