首先,他速度快,基于消息队列+线程,跑完多台设备,都是毫秒级别的
其次,非常灵活,源码是python,方便理解和自定义模块(python 语言相对于其他的perl、ruby等还是很好理解的)
命令简单,功能强大
saltstack运行方式
Local
Master/Minion
Salt SSH
本文使用Master/Minion运行方式。
saltstack三大功能
远程执行
配置管理
云管理
saltstack数据系统
Grains (静态数据)
pillar (动态数据)
saltstack配置管理
SLS(YAML、Jinja)
Highstate
States Module
实现环境准备三台机器,这三台机器都关闭 selinux,清空防火墙规则。
saltstack ==> 172.16.0.19 (服务端)
client1 ==> 172.16.0.20 (客户端)
client2 ==> 172.16.0.21 (客户端)
查看版本和内核
[root@saltstack ~]# cat /etc/RedHat-release CentOS Linux release 7.3.1611 (Core) [root@saltstack ~]# uname -rm 3.10.0-514.6.1.el7.x86_64 x86_64分别设置 hostname,设置完毕xshell注销重新连接一下
[root@saltstack ~]# hostnamectl set-hostname saltstack [root@client1 ~]# hostnamectl set-hostname client1 [root@client2 ~]# hostnamectl set-hostname client2编辑 hosts 文件
每台都设置,若机器太多,可以通过搭建 DNS,则不用在每台机器上设置这个
分别为三台机器添加阿里云epel源
[root@saltstack ~]# mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup [root@saltstack ~]# mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup [root@saltstack ~]# wget -O /etc/yum.repos.d/epel.repo服务端安装
[root@saltstack ~]# yum -y install salt-master salt-minion客户端安装
[root@client1 ~]# yum -y install salt-minion客户端安装
[root@client2 ~]# yum -y install salt-minion 配置master服务端和客户端都要配置
[root@saltstack ~]# vi /etc/salt/minion +16 以下两种方式都可以,选择其中一种即可 # master改为服务端的主机名 master: saltstack # master改为服务端的IP master: 172.16.0.19分别修改三台机器minion文件中的的id为自己的主机名
[root@client1 ~]# vi /etc/salt/minion +78 id: client1 [root@client2 ~]# vi /etc/salt/minion +78 id: client2启动saltstack服务
服务端
客户端
[root@client1 ~]# systemctl enable salt-minion [root@client1 ~]# systemctl start salt-minion 配置认证服务端操作
[root@saltstack ~]# salt-key -a client1 The following keys are going to be accepted: Unaccepted Keys: client1 Proceed? [n/Y] y Key for minion client1 accepted. [root@saltstack ~]# salt-key -a client2 The following keys are going to be accepted: Unaccepted Keys: client2 Proceed? [n/Y] y Key for minion client2 accepted. [root@saltstack ~]# salt-key -a saltstack The following keys are going to be accepted: Unaccepted Keys: saltstack Proceed? [n/Y] y Key for minion saltstack accepted. [root@saltstack ~]# salt-key Accepted Keys: client1 client2 saltstack Denied Keys: Unaccepted Keys: Rejected Keys:说明:-a :accept ,-A:accept-all,-d:delete,-D:delete-all。可以使用 salt-key 命令查看到已经签名的客户端。此时我们在客户端的 /etc/salt/pki/minion 目录下面会多出一个minion_master.pub 文件。
测试验证
示例1: salt '*' test.ping //检测通讯是否正常,也可以指定其中一个 'client1'
示例2: salt '*' cmd.run 'df -h' //远程执行命令
[root@saltstack ~]# salt '*' cmd.run 'df -hT' client2: Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 xfs 17G 13G 4.2G 76% / devtmpfs devtmpfs 97M 0 97M 0% /dev tmpfs tmpfs 111M 12K 111M 1% /dev/shm tmpfs tmpfs 111M 8.8M 102M 8% /run tmpfs tmpfs 111M 0 111M 0% /sys/fs/cgroup /dev/sda1 xfs 297M 202M 96M 68% /boot tmpfs tmpfs 23M 0 23M 0% /run/user/0 saltstack: Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 xfs 17G 6.8G 11G 40% / devtmpfs devtmpfs 475M 0 475M 0% /dev tmpfs tmpfs 489M 16K 489M 1% /dev/shm tmpfs tmpfs 489M 14M 476M 3% /run tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 xfs 297M 202M 96M 68% /boot tmpfs tmpfs 98M 0 98M 0% /run/user/0 tmpfs tmpfs 98M 0 98M 0% /run/user/994 client1: Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 xfs 17G 13G 4.1G 77% / devtmpfs devtmpfs 97M 0 97M 0% /dev tmpfs tmpfs 111M 12K 111M 1% /dev/shm tmpfs tmpfs 111M 13M 98M 12% /run tmpfs tmpfs 111M 0 111M 0% /sys/fs/cgroup /dev/sda1 xfs 297M 202M 96M 68% /boot tmpfs tmpfs 23M 0 23M 0% /run/user/0