Install And Use SALTStack In A Mixed Environment - Page 4
On this page
SALT STATE TREE
In case you followed this howto, you have a slight insight of how easy to simultaneously manage simple tasks on several servers.
Let's go one step towards. It is about manage complex tasks in complex environment by one command.
More details about it in -> http://docs.saltstack.com/ref/states/highstate.html
In order to have this feature, you have to configure your salt a little, at the folder /etc/salt
On your SALT MASTER, you should have a file, called: master
To get rid of commented lines, it looks like this:
root@salt-master:/etc/salt# grep -E -v '^#|^ *$' /etc/salt/master
Edit it until the result should be:
state_top: top.sls file_roots: base: - /srv/salt log_file: /var/log/salt/master key_logfile: /var/log/salt/key log_level: debug
As a next step, we create three state files:
/srv/salt/top.sls -> It is necessary /srv/salt/motd.sls -> It is optional /srv/salt/line6svn.sls -> It is optional
The top.sls file is the entry point, defined in /etc/salt/master
It gives the name of SaltStateFiles without ".sls"
State files contains commands and configuration directives.
You can also use fileter in servers name or other grains filter in everywhere is state tree.
cat /srv/salt/top.sls
base: '*': - motd - line6svn
It check out a Subversion repository:
root@salt-master:/srv/salt# cat /srv/salt/line6svn.sls
https://svn.code.sf.net/p/line6linux/code/driver/trunk/: svn.latest: - target: /opt/Line6.SVN
You can manage text file:
root@salt-master:/srv/salt# cat /srv/salt/motd.sls
motd_perms: file.managed: - name: /etc/motd - mode: 644 motd_quote: file.append: - name: /etc/motd - text: "Of all smells, bread; of all tastes, salt."
We can activate state tree by the following command:
root@salt-master:/srv/salt# salt '*' state.highstate
salt-minion2.test.local: ---------- State: - file Name: /etc/motd Function: managed Result: True Comment: File /etc/motd is in the correct state Changes: ---------- State: - file Name: /etc/motd Function: append Result: True Comment: Appended 0 lines Changes: ---------- State: - svn Name: https://svn.code.sf.net/p/line6linux/code/driver/trunk/ Function: latest Result: True Comment: At revision 1072. Changes: Summary ------------ Succeeded: 3 Failed: 0 ------------ Total: 3 salt-centos: ---------- State: - file Name: /etc/motd Function: append Result: True Comment: Appended 0 lines Changes: ---------- State: - file Name: /etc/motd Function: managed Result: True Comment: File /etc/motd is in the correct state Changes: ---------- State: - svn Name: https://svn.code.sf.net/p/line6linux/code/driver/trunk/ Function: latest Result: True Comment: At revision 1072. Changes: Summary ------------ Succeeded: 3 Failed: 0 ------------ Total: 3
You can have a StateTree requst to the SaltMaster server from a Minion, like this:
[root@salt-centos ~]# salt-call state.highstate -l debug
Turninig off all minions:
root@salt-master:~# salt '*' cmd.run "poweroff"
salt-centos: salt-minion2.test.local: salt-minion1.test.local:
Have a luck!