02-SaltSack 自动化运维
0.slatstack常用命令,cmd.run 可以执行所有命令
[root@salt-master minions_pre]# salt -E 'salt*' test.ping # agent ping
salt-minion02:
True
salt-minion01:
True
salt-master:
True
[root@salt-master minions_pre]# salt '*' cmd.run 'uptime' # 查看开机时间
salt-minion01:
06:29:59 up 3:16, 1 user, load average: 0.00, 0.00, 0.00
salt-minion02:
06:49:28 up 3:12, 2 users, load average: 0.00, 0.00, 0.00
salt-master:
06:18:59 up 3:16, 2 users, load average: 0.00, 0.00, 0.00
[root@salt-master minions_pre]# salt '*' cmd.run 'df -h' # 查看磁盘使用
salt-minion01:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 5.8G 1.6G 4.0G 29% /
tmpfs 491M 16K 491M 1% /dev/shm
/dev/sda1 194M 29M 155M 16% /boot
salt-minion02:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 5.8G 1.6G 4.0G 29% /
tmpfs 491M 16K 491M 1% /dev/shm
/dev/sda1 194M 29M 155M 16% /boot
salt-master:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 5.8G 3.1G 2.4G 56% /
tmpfs 491M 36K 491M 1% /dev/shm
/dev/sda1 194M 29M 155M 16% /boot
1.SaltStack数据系统
Grains:存储在minion端,启动时收集信息,静态数据,重启时才会重新收集,
a.应用场景:信息查询,
[root@salt-master salt]# salt 'salt-master' grains.ls # 显示ls
[root@salt-master salt]# salt 'salt-master' grains.items # 显示所有
[root@salt-master salt]# salt 'salt-master' grains.get fqdn
salt-master:
salt-master.xiao.com
[root@salt-master salt]# salt 'salt-master' grains.get server_id
salt-master:
894500124
[root@salt-master salt]# salt 'salt-master' grains.get ip_interfaces:eth0
salt-master:
- 192.168.2.12
- fe80::20c:29ff:fe99:4d5e
b.匹配minion
[root@salt-master salt]# salt -G os:CentOS cmd.run 'w'
salt-master:
05:26:01 up 1:07, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.2.1 04:19 0.00s 0.80s 0.55s /usr/bin/python
salt-minion:
05:36:34 up 1:07, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.2.1 04:30 25:21 0.15s 0.15s -bash
自定义grains,
[root@salt-master salt]# vim /etc/salt/minion # 打开注释
88 grains:
89 roles:
90 - webserver
91 - memcache
[root@salt-master salt]# salt -G 'roles:memcache' cmd.run 'echo hehe' # 在memcached的机器上执行echo hehe
salt-master:
hehe
或者在vim /etc/salt/grains建立
[root@salt-master salt]# vim /etc/salt/grains # 自定义建立一个grains的nginxweb规则
nginxweb: nginx
~
[root@salt-master salt]# /etc/init.d/salt-minion restart
[root@salt-master salt]# salt -G nginxweb:nginx cmd.run 'w' # 查找minion匹配到有nginxweb:nginx的机器执行w命令
salt-master:
05:39:53 up 1:21, 1 user, load average: 0.08, 0.02, 0.01
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.2.1 04:19 1.00s 0.85s 0.53s /usr/bin/python
[root@salt-master salt]# vim /srv/salt/top.sls # 建立高级sls命令
base:
'nginxweb:nginx': # 关联上面grain中自定义的规则
- match: grain
- apache
[root@salt-master salt]# salt '*' state.hightstate # 执行

浙公网安备 33010602011771号