Remote Control States¶
New in version 0.17.0.
Remote Control States is the capability to organize routines on minions from the master, using state files.
This allows for the use of the Salt state system to execute state runs and function runs in a way more powerful than the overstate, will full command of the requisite and ordering systems inside of states.
Note
Remote Control States was added in 0.17.0 with the intent to eventually deprecate the overstate system in favor of this new, substantially more powerful system.
The Overstate will still be maintained for the forseable future.
Creating States Trigger Remote Executions¶
The new salt state module allows for these new states to be defined in such a way to call out to the salt and/or the salt-ssh remote execution systems, this also supports the addition of states to connect to remote embedded devices.
To create a state that calls out to minions simple specify the salt.state or salt.function states:
webserver_setup:
salt.state:
- tgt: 'web*'
- highstate: True
This sls file can now be referenced by the state.sls runner the same way an sls is normally referenced, assuming the default configurtion with /srv/salt as the root of the state tree and the above file being saved as /srv/salt/webserver.sls, the state can be run from the master with the salt-run command:
salt-run state.sls webserver
This will execute the defined state to fire up the webserver routine.
Calling Multiple State Runs¶
All of the concepts of states exist so building something more complex is easy:
Note
As of Salt 0.17.0 states are run in the order in which they are defined, so the cmd.run defined below will always execute first
cmd.run:
salt.function:
- roster: scan
- tgt: 10.0.0.0/24
- arg:
- 'bootstrap'
storage_setup:
salt.state:
- tgt: 'role:storage'
- tgt_type: grain
- sls: ceph
webserver_setup:
salt.state:
- tgt: 'web*'
- highstate: True