Salt

From DWIKI

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