06-saltstack 之grains
granins是静态的,每次启动是收集到的,用于收集客户端信息的,重启minion后信息才会变化
作用:1.收集系统底层信息,2.远程执行匹配minion,3.top里匹配minion
1. 查看可用grains.ls
[root@salt-master ~]# salt '*' grains.ls
salt-minion02:
- SSDs
- biosreleasedate
- biosversion
- cpu_flags
- cpu_model
- cpuarch
2.查看grains.items,所有值
[root@salt-master ~]# salt '*' grains.items
salt-minion02:
----------
SSDs:
biosreleasedate:
05/20/2014
biosversion:
6.00
cpu_flags:
- fpu
- vme
- de
- pse
- tsc
- msr
- pae
- mce
- cx8
- apic
......
3.grains操作
[root@salt-master ~]# salt 'salt-minion01' grains.item fqdn # 显示fqdn值
salt-minion01:
----------
fqdn:
salt-minion01
[root@salt-master ~]# salt 'salt-minion01' grains.get fqdn # 显示fqdn值
salt-minion01
[root@salt-master ~]# salt 'salt-minion01' grains.get ip_interfaces:eth0 # 显示IP地址
salt-minion01:
- 192.168.2.104
- fe80::20c:29ff:fe01:eca5
root@salt-master ~]# salt -G os:CentOS cmd.run 'w' # 在centos机器上执行
salt-minion01:
07:39:10 up 4:25, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.2.100 07:25 13:51 0.04s 0.04s -bash
salt-master:
07:28:05 up 4:25, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.2.100 07:14 1.00s 0.94s 0.73s /usr/bin/python
salt-minion02:
07:58:42 up 4:21, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 03:37 4:17m 0.18s 0.18s -bash
root pts/0 192.168.2.100 07:44 13:50 0.03s 0.03s -bash
4-1.minion端自定义grains
[root@salt-minion01 ~]# vim /etc/salt/minion # 编辑minion文件,注释打开120---123
117 # Custom static grains for this minion can be specified here and used in SLS
118 # files just like all other grains. This example sets 4 custom grains, with
119 # the 'roles' grain having two values that can be matched against.
120 grains:
121 roles:
122 - webserver
123 - memcache
124 # deployment: datacenter4
125 # cabinet: 13
126 # cab_u: 14-15
[root@salt-minion01 ~]# /etc/init.d/salt-minion restart
Stopping salt-minion:root:salt-minion01 daemon: OK
Starting salt-minion:root:salt-minion01 daemon: OK
# salt-master进行grains操作
[root@salt-master ~]# salt -G 'roles:memcache' cmd.run 'echo hello word'
salt-minion01:
hello word
[root@salt-master ~]# salt -G 'roles:webserver' cmd.run 'echo hello word'
salt-minion01:
hello word
4-2.minion端自定义grains
[root@salt-minion01 ~]# vim /etc/salt/grains # 建立grains文件,默认路径
web: nginx
[root@salt-minion01 ~]# /etc/init.d/salt-minion restart # 重启
Stopping salt-minion:root:salt-minion01 daemon: OK
Starting salt-minion:root:salt-minion01 daemon: OK
[root@salt-master ~]# salt -G 'web:nginx' cmd.run 'echo hello word' # maser执行
salt-minion01:
hello word
[root@salt-master ~]# salt -G 'web:nginx' cmd.run 'w' # maser执行
salt-minion01:
08:03:08 up 4:49, 1 user, load average: 0.06, 0.03, 0.01
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.2.100 07:25 1:30 0.13s 0.13s -bash
5.grains的top.sls应用
[root@salt-master ~]# vim /etc/salt/master # 注释取消,定义路径
file_roots:
base:
- /srv/salt
[root@salt-master ~]# vim /srv/salt/top.sls # 编写top.sls,入口文件
base:
'web:nginx':
- match: grain
- apache
[root@salt-master ~]# salt '*' state.highstate # 执行命令,
salt-minion02:
----------
ID: states
Function: no.None
Result: False
Comment: No Top file or external nodes data matches found. # 未匹配上,不执行
Changes:
Summary for salt-minion02
------------
Succeeded: 0
Failed: 1
------------
Total states run: 1
Total run time: 0.000 ms
salt-master:
----------
ID: states
Function: no.None
Result: False
Comment: No Top file or external nodes data matches found. # 未匹配上,不执行
Changes:
Summary for salt-master
------------
Succeeded: 0
Failed: 1
------------
Total states run: 1
Total run time: 0.000 ms
salt-minion01:
----------
ID: apache-install
Function: pkg.installed
Name: httpd
Result: True
Comment: Package httpd is already installed # 匹配上,执行
Started: 08:38:12.103078
Duration: 713.789 ms
Changes:
----------
ID: apache-install
Function: pkg.installed
Name: httpd-devel
Result: True
Comment: Package httpd-devel is already installed
Started: 08:38:12.817233
Duration: 0.892 ms
Changes:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: The service httpd is already running
Started: 08:38:12.819143
Duration: 39.472 ms
Changes:
Summary for salt-minion01
------------
Succeeded: 3
Failed: 0
------------
Total states run: 3
Total run time: 754.153 ms
ERROR: Minions returned with non-zero exit code

浙公网安备 33010602011771号