一、yum安装saltstack
服务端安装:
[root@server ~]# yum install -y salt-master salt-minion
客户端安装:
[root@client ~]# yum install -y salt-minion
二、官方推荐用脚本的方式安装saltstack
[root@izwz9bhan5nqzh979qokrkz ~]# wget https://raw.githubusercontent.com/saltstack/salt-bootstrap/stable/bootstrap-salt.sh
[root@izwz9bhan5nqzh979qokrkz ~]# sh bootstrap-salt.sh -h 可以查看帮助
单独安装salt-master
[root@izwz9bhan5nqzh979qokrkz ~]# sh bootstrap-salt.sh -M -N
单独安装salt-minion
[root@izwz9bhan5nqzh979qokrkz ~]# sh bootstrap-salt.sh
安装salt-master和salt-minion
[root@izwz9bhan5nqzh979qokrkz ~]# sh bootstrap-salt.sh -M
三、saltstack配置
3.1、分别设置三台机器的主机名,并且配置hosts文件
39.18.27.12 salt-master
47.16.11.17 salt-slave-node1
47.98.97.14 salt-slave-node2
3.2、在服务端和客户端编辑配置文件
服务端:vi /etc/salt/minion
master: salt-master #在文件中找到master,然后配置主机名
客户端:vi /etc/salt/minion
master: salt-master #在文件中找到master,然后配置主机名
3.3、启动saltstack服务
[root@iZwz9bhan5nqzh979qokrkZ pki]# systemctl start salt-master.service
[root@iZwz9bhan5nqzh979qokrkZ pki]# systemctl start salt-minion.service
[root@iZwz9bhan5nqzh979qokrkZ pki]# ps -ef | grep salt
root 11474 1 0 08:45 ? 00:00:00 /usr/bin/python /usr/bin/salt-master
root 11479 11474 0 08:45 ? 00:00:08 /usr/bin/python /usr/bin/salt-master
root 11480 11474 0 08:45 ? 00:00:00 /usr/bin/python /usr/bin/salt-master
root 11481 11474 0 08:45 ? 00:00:00 /usr/bin/python /usr/bin/salt-master
root 11482 11474 0 08:45 ? 00:00:00 /usr/bin/python /usr/bin/salt-master
root 11483 11482 0 08:45 ? 00:00:00 /usr/bin/python /usr/bin/salt-master
root 11484 11482 0 08:45 ? 00:00:00 /usr/bin/python /usr/bin/salt-master
root 11485 11482 0 08:45 ? 00:00:00 /usr/bin/python /usr/bin/salt-master
root 11486 11482 0 08:45 ? 00:00:00 /usr/bin/python /usr/bin/salt-master
root 11487 11482 0 08:45 ? 00:00:00 /usr/bin/python /usr/bin/salt-master
root 11488 11482 0 08:45 ? 00:00:00 /usr/bin/python /usr/bin/salt-master
root 13159 1 0 09:33 ? 00:00:00 /usr/bin/python /usr/bin/salt-minion
root 13162 13159 0 09:33 ? 00:00:00 /usr/bin/python /usr/bin/salt-minion
[root@iZwz9bhan5nqzh979qokrkZ pki]# ss -tnulp | grep salt
tcp LISTEN 0 100 *:4505 *:* users:(("salt-master",pid=11480,fd=13))
tcp LISTEN 0 100 *:4506 *:* users:(("salt-master",pid=11488,fd=21))
注:4505端口是用来发布消息的,4506端口则是与客户端通信、传输数据的。
3.4、saltstack配置认证-开启自动认证
[root@salt-master ~]# egrep -Ev "^$|^#" /etc/salt/master
auto_accept: True
file_roots:
base:
- /srv/salt/
[root@salt-master ~]# mkdir /srv/salt/
[root@salt-master ~]# salt-key -A
列表内容-
The following keys are going to be accepted:
Unaccepted Keys:
iZbp150ikdomqe3b32qaubZ
iZwz9bhan5nqzh979qokrkZ
izwz9f8xrvty50quc2gq50z
Proceed? [n/Y] Y
[root@salt-master ~]# salt-key
Accepted Keys:
iZbp150ikdomqe3b32qaubZ
iZwz9bhan5nqzh979qokrkZ
izwz9f8xrvty50quc2gq50z
Denied Keys:
Unaccepted Keys:
Rejected Keys:
salt-key命令用法:
-a 后面跟主机名,认证指定主机
-A 认证所有主机
-r 跟主机名,拒绝指定主机
-R 拒绝所有主机
-d 跟主机名,删除指定主机认证
-D 删除全部主机认证
-y 省略掉交互,相当于直接按了y
3.5、测试第一条命令
[root@salt-master ~]# salt '*' test.ping
izwz9f8xrvty50quc2gq50z:
True
iZwz9bhan5nqzh979qokrkZ:
True
iZbp150ikdomqe3b32qaubZ:
True
注:这是一个简单的探测主机是否存活的命令。
扩展:salt关闭启动脚本
[root@salt-master ~]# cat salt-stop-start.sh
#!/bin/bash
for i in `ps -ef | grep salt | grep -v grep | awk '{print $2}'`
do
kill -9 $i
done
if [ $? -eq 0 ];then
echo "all processes is killed"
fi
/usr/bin/systemctl start salt-master.service && echo "saltstack service is started"
“`