Salt: Difference between revisions
From DWIKI
m (→FAQ) |
|||
(20 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
*[https://techarena51.com/index.php/getting-started-with-saltstack/ Managing Linux server configs with the SaltStack] | *[https://techarena51.com/index.php/getting-started-with-saltstack/ Managing Linux server configs with the SaltStack] | ||
*[https://github.com/saltstack/salt/wiki/Cheat-Sheet Cheat Sheet] | *[https://github.com/saltstack/salt/wiki/Cheat-Sheet Cheat Sheet] | ||
*[https://github.com/harkx/saltstack-cheatsheet Cheat sheet 2] | |||
*[https://blog.talpor.com/2014/07/saltstack-beginners-tutorial/ Salt - Beginners Tutorial] | *[https://blog.talpor.com/2014/07/saltstack-beginners-tutorial/ Salt - Beginners Tutorial] | ||
*https://rizvir.com/articles/saltstack/ | |||
=Tools= | =Tools= | ||
*[https://github.com/saltstack/salt-vim Vim bundle for salt] | *[https://github.com/saltstack/salt-vim Vim bundle for salt] | ||
*[https://github.com/tinyclues/saltpad Saltpad GUI] | |||
=Writing custom state modules= | |||
*https://docs.saltstack.com/en/latest/ref/states/writing.html | |||
*http://intothesaltmine.readthedocs.io/en/latest/chapters/development/writing-modules.html | |||
Syntax checking etc: | |||
python -m py__compile mymodule.py | |||
saltutil.sync_states | |||
=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== | |||
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== | ==Change minion hostname== | ||
On minion: | On minion: | ||
*hostname new.host.name | *hostname new.host.name | ||
*update /etc/hostname | *update /etc/hostname | ||
*update /etc/salt/minion_id | |||
*restart salt-minion | *restart salt-minion | ||
On master: | On master: | ||
rename the key ( /srv/salt/pki/master/minions/old.host.name | 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 |
Latest revision as of 12:00, 6 October 2016
Salt Configuration Management
Links
- Homepage
- Documentation
- Getting Started with Salt Stack
- An Introduction to SaltStack Terminology and Concepts
- Managing Linux server configs with the SaltStack
- Cheat Sheet
- Cheat sheet 2
- Salt - Beginners Tutorial
- https://rizvir.com/articles/saltstack/
Tools
Writing custom state modules
- https://docs.saltstack.com/en/latest/ref/states/writing.html
- http://intothesaltmine.readthedocs.io/en/latest/chapters/development/writing-modules.html
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