salt命令

所有是ubuntu系统的minions都执行test.ping:

ubuntu1:
    True```

返回操作系统多有信息:

root@ubuntu:~# salt ubuntu1 grains.items
ubuntu1:
biosreleasedate: 07/02/2015
biosversion: 6.00
cpu_flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch epb fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
cpu_model: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
cpuarch: x86_64
defaultencoding: None
defaultlanguage: None
domain:
fqdn: ubuntu1
fqdn_ip4:
fqdn_ip6:
gpus:
{'model': 'SVGA II Adapter', 'vendor': 'unknown'}
host: ubuntu1
id: ubuntu1
ip_interfaces: {'eth0': ['192.168.190.131'], 'docker0': ['172.17.0.1'], 'veth9fc8172': [], 'veth7bc5fce': [], 'lo': ['127.0.0.1'], 'veth15599ce': [], 'veth9d444c5': [], 'veth0717d88': [], 'vethee37c05': [], 'veth4ce75ba': [], 'docker_gwbridge': ['172.18.0.1'], 'veth695e94c': [], 'veth8cac166': [], 'veth1a0b0d5': [], 'vethdee3498': [], 'vethda3ae8e': []}
ipv4:
127.0.0.1
172.17.0.1
172.18.0.1
192.168.190.131
ipv6:
::1
fe80::182e:37ff:fe4e:faea
fe80::20c:29ff:fe29:ce4
....

命令合成:

```root@ubuntu:~# salt -C  'G@os:ubuntu  and webser* or E@db.*'  test.ping```

预定nodegroups允许在主配置文件中声明预定义的符合目标,这是一种符合表达式的简写形式:

```nodegroups:group1: '[email protected],bar.domain.com,baz.domain.com and bl*.domain.com'group2: 'G@os:Debian and foo.domain.com'
group3: 'G@os:Debian and N@group1'```

vim  /etc/salt/master,nodegroups行加入groupN,然后重启,执行命令为:
salt    -N    groupN  test.ping

匹配所有minions:

root@ubuntu:~# salt '*' test.ping
ubuntu1:
True


minions id匹配:

salt '*.example.net' test.pingsalt '*.example.*' test.ping

匹配webN,例如( (web1.example.net
,web2.example.net
…webN.example.net
)):

salt 'web?.example.net' test.ping

匹配web1到web5:

salt 'web[1-5]' test.ping

匹配web1和web3:

salt 'web[1,3]' test.ping

正则匹配:
匹配web1-prod和web-devel:

salt -E 'web1-(prod|devel)' test.ping

使用正则匹配state's top  file,首先要指定要匹配的machers,如下:

base:  'web1-(prod|devel)':  - match: pcre  - webserver

list:

salt -L 'web1,web2,web3' test.ping

批处理大小(**Batch Size**):

salt '*' -b 10 test.ping     #10个minions上运行test.ping命令
 
salt -G 'os:RedHat' --batch-size 25% apache.signal restart   #25%的机器上执行apache重启

开启minion可以向master  push文件,vim  /etc/salt/master,找到file_recv 去掉注释将false改为true.
salt 'minion-id' cp.push /path/to/the/file

这样就从指定的minion上获取到了指定的文件
https://docs.saltstack.com/en/latest/ref/configuration/master.html#std:conf_master-file_recv

你可能感兴趣的:(salt命令)