Salt: Difference between revisions

From DWIKI
 
(5 intermediate revisions by the same user not shown)
Line 26: Line 26:


=FAQ=
=FAQ=
==test run==
salt "*" state.apply test=True
==check if minion has packages to update==
salt '*' cmd.run "yum check-update > /dev/null;echo $?"
==Add minion to master==
==Add minion to master==
On client:
set master in /etc/salt/minion, maybe also define some role(s)
restart salt-minion
On master:
salt-key
if hostnamed indeed shows up,
salt-key -a hostname


and then
salt hostname state.highstate
==Remove minion from master==


==single line per minion==
==single line per minion==
Line 52: Line 71:
==multiple parameters==
==multiple parameters==
  salt '*' param1,param2 arg1,arg2
  salt '*' param1,param2 arg1,arg2
==define a grain on minions==
salt minion1 grains.setvalue role foobar
==set role from init.sls==
roles:
  grains.present:
  -value: somerolename

Latest revision as of 12:00, 6 October 2016

Salt Configuration Management

Links

Tools

Writing custom state modules

Syntax checking etc:

python -m py__compile mymodule.py
saltutil.sync_states

FAQ

test run

salt "*" state.apply test=True

check if minion has packages to update

salt '*' cmd.run "yum check-update > /dev/null;echo $?"

Add minion to master

On client:

set master in /etc/salt/minion, maybe also define some role(s)
restart salt-minion

On master:

salt-key

if hostnamed indeed shows up,

salt-key -a hostname

and then

salt hostname state.highstate


Remove minion from master

single line per minion

salt "*" grains.item nodename group os osrelease --out=txt

(for a list of items use grains.items

Apply just one part of role

Assuming you have foo.sls in roles/

salt '*' state.apply roles.myrole.foo

Change minion hostname

On minion:

  • hostname new.host.name
  • update /etc/hostname
  • update /etc/salt/minion_id
  • restart salt-minion

On master: rename the key ( /srv/salt/pki/master/minions/old.host.name )

Rendering SLS 'base:roles.foo.bar' failed: Jinja variable 'dict object' has no attribute 'blergh'

Unless you made a typo, your minion probably doesn't have access in pillar

multiple parameters

salt '*' param1,param2 arg1,arg2


define a grain on minions

salt minion1 grains.setvalue role foobar


set role from init.sls

roles:
 grains.present:
 -value: somerolename