Common Salt commands and states

Manage the contents of a file:

/root/salt-demo:
  file.managed:
    - user: root
    - group: root
    - mode: 644
    - source: salt://node/salt-demo
    - makedirs: True

This state requires the file node/salt-demo to be present and to contain the contents you want to save at /root/salt-demo on each targeted minion.

Ensure a package is installed:

cowsay:
  pkg.installed

This ensures the cowsay package is installed on targeted minions.

Common commands

See which minions are connected:

salt '*' test.ping

Tell all minions to apply all their states:

salt '*' state.apply

Run a command on all minions:

salt '*' cmd.run 'uptime'

Show minion grain items:

salt '*' grains.items

Show the states that apply to each minion:

salt '*' state.show_top

Filter by grain:

root@ba:/# salt -G 'type:aggregator' test.ping # Ping aggregators only
node-1:
    True
root@ba:/# salt -G 'osmajorrelease:7' test.ping # Ping Debian Wheezy minions only
node-7:
    True
node-1:
    True
node-2:
    True

Run in batches:

root@ba:/# salt '*' -b 2 test.ping # Ping 2 minions at a time
Executing run on ['node-2', 'node-1']
node-1:
    True
retcode:
    0
node-2:
    True
retcode:
    0
Executing run on ['node-7']
node-7:
    True
retcode:
    0
root@ba:/# salt '*' --batch-size 25% test.ping # Ping 25% of the environment at a time
Executing run on ['node-2']
node-2:
    True
retcode:
    0
Executing run on ['node-1']
node-1:
    True
retcode:
    0
Executing run on ['node-7']
node-7:
    True
retcode:
    0