====== Running commands with SALT ======
===== Targeting =====
To run commands you need to specify the target. You can find more info about targeting [[https://docs.saltstack.com/en/latest/topics/targeting/index.html#targeting|here]].
Also, you can check some examples below.
==== Simple targeting examples ====
Perform a ''test.ping'' in all minions:
sudo salt '*' test.ping
==== Targeting on grains ====
Create a directory in all minions running CentOS:
sudo salt -G 'os:Centos' file.makedirs /opt/cylance/
==== Compound targeting ====
Copy a file from the [[linux:salt-stack:salt_fileserver|salt-filserver]] to all minions running Centos version 6:
sudo salt -C 'G@os:Centos and G@osmajorrelease:6' cp.get_file salt://cylance/config_defaults.txt /opt/cylance/config_defaults.txt
You can find more info about compound targeting [[https://docs.saltstack.com/en/latest/topics/targeting/compound.html|here]].
===== Substitutions (template rendering) =====
You can make substitutions for rendering the commands with jinja, typing the value to be used between double curly brackets ''%%{{%% ... %%}}%%''.
**Example:**
Copy the appropriate version of CylancePROTECT install RPM from the [[linux:salt-stack:salt_fileserver|salt-filserver]], depending on the Centos os major release, using the grain ''osmajorrelease'':
sudo salt -C 'G@os:Centos' cp.get_file salt://cylance/CylancePROTECT.el{{grains.osmajorrelease}}.rpm /opt/cylance/CylancePROTECT.el{{grains.osmajorrelease}}.rpm template=jinja
===== Sample commands with Salt =====
Find out servers with 172.17.1.1 configured as DNS nameserver and show what nameservers are configured:
sudo salt -C 'G@dns:nameservers:172.17.1.1' grains.get dns:"nameservers"