- 自定义模块
- 在master端(server2)创建目录:
mkdir /srv/salt/_modules
- 进入到该目录:
cd /srv/salt/_modules/
- 编辑disk的python模块:
vim my_disk.py
#! /usr/bin/env python
def df():
return __salt__['cmd.run']('df -h')
- 给server3推送测试:
salt server3 saltutil.sync_modules
- 在server3上,进入
/var/cache/salt/minion/
目录下 - tree .查看,会看到
my_disk.py
- 在server2上测试,刷新:
salt server3 saltutil.sync_modules
- 可以执行命令:
salt server3 my_disk.df
- syndic模块
原理:一个基本的salt配置方式是一个master指挥一群minion,为了不再有假设使用任何单一拓扑结构,考虑多种布局的情况下,主控master可以控制一群master,通过syndic将操作命令传输给受控master,受控master来完成对自己旗下minion的管理,并将结果传回主控master,从而实现了主控master对所有minion的间接管理。
- 在server2上安装syndic:
yum install -y salt-syndic
- 修改配置文件:
vim /etc/salt/master
file_roots:
base:
- /srv/salt
syndic_master: 172.25.60.2
- 将mysql设置的注释掉
- 设置完后重启master:
systemctl restart salt-master.service
- 在server6(top-master)端安装master:
yum install-y salt-master
- 编辑配置文件:
vim /etc/salt/master
file_roots:
base:
- /srv/salt
order_masters: true
- 开启master:
systemctl start salt-master.service
- 在server2上开启syndic:
systemctl start salt-syndic
- 通过查看进程,看是否开启:
ps ax
- 在server6上将server1的钥匙加入:
salt-key -A
salt-key -L
- 测试:server6上并没有配置server3和4 的minion的信息,但是依然可以访问到
salt '*' test.ping
- ssh模块
- 在server2上安装ssh:
yum install -y salt-ssh
- 在server3和server4上将minion停止:
systemctl stop salt-minion
- 在salt目录下: cd /etc/salt/编辑文件:
vim roster
server3:
host: 172.25.60.3
user: root
passwd: redhat
server4:
host: 172.25.60.4
user: root
passwd: redhat
4. 测试,在minion端服务都停掉的情况下,仍然可以管理minion端,是通过ssh模块管理的:
salt-ssh '*' test.ping
salt-ssh '*' cmd.run df