Salt 扩展
环境:
Server1 172.25.24.1 salt-master
Server2 172.25.24.2 salt-minion
Server3 172.25.24.3 salt-minion
Server4 172.25.24.4 salt-minion
配置salt环境
Salt 自编模块
mkdir /srv/salt/_modules
vim /srv/salt/_modules/my_disk.py
#!/usr/bin/env python
def df():
cmd = 'df -h'
return __salt__['cmd.run'](cmd)
salt '*' saltutil.sync_modules #在各节点刷新模块
salt server? my_disk.df #此处my_disk为刚才写的python文件名,df为文件内汉书名
Salt master架构扩展
在删除server1节点
salt-key -d server4
Server4 安装salt-master
yum install -y salt-master
/etc/init.d/salt-master start
在server1安装salt-syndic
yum install -y salt-syndic
vim /etc/salt/master
/etc/init.d/salt-master restart
在/srv/salt/top.sls文件中删除server4的相关参数
salt '*' test.ping # 测试
启动salt-syndic
/etc/init.d/salt-syndic start
在Server4上添加master节点
salt '*' test.ping #测试
可以看见server4上只有一个server1节点,
实现了salt-master的扩展
Salt-ssh
此方法为串行,一个一个运行,不需要在远程主机上安装salt-minion
关闭server2,server3上的salt-minion
在server1上安装salt-ssh
yum install -y salt-ssh
vim 9 /etc/salt/roster
server2:
host: 172.25.24.2
user: root
passwd: westos
server3:
host: 172.25.24.3
user: root
passwd: westos
salt-ssh '*' test.ping -i
Salt-api
Minion端需要打开salt-minion
server1安装salt-api
yum install -y salt-api
创建用户并设置密码,此处密码我设置为123
useradd -M -s /sbin/nologin saltapi
passwd saltapi
生成https证书
cd /etc/pki/tls/private/
openssl genrsa 1024 > localhost.key
cd /etc/pki/tls/certs
make testcert
cd /etc/salt/master.d/
vim api.conf
rest_cherrypy:
port: 8000
ssl_crt: /etc/pki/tls/certs/localhost.crt
ssl_key: /etc/pki/tls/private/localhost.key
vim auth.conf
external_auth:
pam:
saltapi:
- '.*'
- '@wheel'
- '@runner'
- '@jobs'
/etc/init.d/salt-master restart
/etc/init.d/salt-api start
netstat -antlp | grep :8000
curl -sSk https://172.25.24.1:8000/login -H 'Accept: application/x-yaml' -d username=saltapi -d password=123 -d eauth=pam #此命令会得到一个token
curl -sSk https://172.25.24.1:8000 -H 'Accept: application/x-yaml' -H 'X-Auth-Token: 5b0900a353e0b03a00c26279e3d6527044003a3d' -d client=local -d tgt='*' -d fun=test.ping #测试