SaltStack安装
常用的自动化运维工具有:
- puppet
- ansible
- saltstack
此三款属同类工具,皆可用来提高运维管理的效率,但它们又各有优势,目前主流的自动化运维工具是ansible和saltstack。其中ansible无需安装客户端,这是其最大的优势,而saltstack则需要安装客户端工具,类似zabbix的agent。应用场景方面,ansible常用于小型企业,而saltstack则常用于中大型企业,因为ansible无法并行执行而saltstack可以并行。但不论其特点如何,本质上均属同类,所以只需要掌握一种即可轻松胜任运维工作。
SaltStack安装前的准备工作
- 配置IP
- 修改主机名
- 关闭防火墙
配置yum源
[root@node1 ~]# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
官方yum源地址:https://repo.saltstack.com
在控制机上安装saltstack主控端软件
[root@node1 ~]# yum -y install salt salt-cloud salt-master salt-minion salt-ssh salt-syndic
修改主控端的配置文件
[root@node1 ~]# sed -i '/^#master:/a master: 192.168.39.133' /etc/salt/minion
启动主控端的salt-master和salt-minion,并设置开机自启
[root@node1 ~]# systemctl start salt-master
[root@node1 ~]# systemctl start salt-minion
[root@node1 ~]# systemctl enable salt-master
Created symlink from /etc/systemd/system/multi-user.target.wants/salt-master.service to /usr/lib/systemd/system/salt-master.service.
[root@node1 ~]# systemctl enable salt-minion
Created symlink from /etc/systemd/system/multi-user.target.wants/salt-minion.service to /usr/lib/systemd/system/salt-minion.service.
在被控机上安装salt-minion客户端
[root@node2 ~]# yum -y install salt-minion
修改被控端的配置文件,将master设为主控端的IP
[root@node2 ~]# sed -i '/^#master:/a master: 192.168.39.133' /etc/salt/minion
启动受控端的salt-minion并设置开机自启
[root@node2 ~]# systemctl start salt-minion
[root@node2 ~]# systemctl enable salt-minion
Created symlink from /etc/systemd/system/multi-user.target.wants/salt-minion.service to /usr/lib/systemd/system/salt-minion.service.
SaltStack认证机制
saltstack主控端是依靠openssl证书来与受控端主机认证通讯的,受控端启动后会发送给主控端一个公钥证书文件,在主控端用salt-key命令来管理证书。
salt-minion与salt-master的认证过程:
- minion在第一次启动时,会在/etc/salt/pki/minion/下自动生成一对密钥,然后将公钥发给master
- master收到minion的公钥后,通过salt-key命令接受该公钥。此时master的/etc/salt/pki/master/minions目录将会存放以minion id命名的公钥,然后master就能对minion发送控制指令了
salt-key常用选项
-L //列出所有公钥信息
-a minion //接受指定minion等待认证的key
-A //接受所有minion等待认证的key
-r minion //拒绝指定minion等待认证的key
-R //拒绝所有minion等待认证的key
-f minion //显示指定key的指纹信息
-F //显示所有key的指纹信息
-d minion //删除指定minion的key
-D //删除所有minion的key
-y //自动回答yes
[root@node1 salt]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
node1.example.com
node2
Rejected Keys:
[root@node1 salt]# salt-key -a 'node*'
The following keys are going to be accepted:
Unaccepted Keys:
node1.example.com
node2
Proceed? [n/Y] y
Key for minion node1.example.com accepted.
Key for minion node2 accepted.
SaltStack远程执行
[root@node1 ~]# salt 'node2' cmd.run 'mkdir /root/tom'
node2:
[root@node2 ~]# ls
anaconda-ks.cfg tom
来源:CSDN
作者:ExtraordinaryW
链接:https://blog.csdn.net/weixin_45666486/article/details/104263436