SaltStack介绍
SaltStack是一个基于python开发的服务器管理工具。允许管理员在Master端控制Minion端。与同类工具Ansible不一样的是,SaltStack不是采用ssh通信的。它需要在被管理的服务器上安装客户端Minion。因此速度非常快。
场景
目前有700多台阿里云ecs服务器,使用python+paramiko远程ssh管理的。每次远程连接子服务器都很耗时、开销很大。并且管理起来不方便。因为脚本只是针对某种特定场合开发,当出现新的项目需要部署时,还得写新的脚本代码。于是想试试SaltStack。
SaltStack安装配置
EPEL源配置
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-6.noarch.rpm
安装并启动管理端
yum -y install salt-master
service salt-master start
如果提示权限问题,请使用root用户或者sudo提权。
在被管理的服务器上安装客户端
yum -y install salt-minion
# 修改配置文件将 /etc/salt/minion
#master: salt
# 改成
master: 服务端ip
# 也可以直接用sed命令替换,将master_ip改成ip地址
sed -i 's/#master: salt/master: master_ip/' /etc/salt/minion
# 在将本机ip写入minion_id文件
echo 10.170.164.22 > /etc/salt/minion_id
# 启动客户端
service salt-minion start
在yum前同样需要配置EPEL源
关于认证
minion在第一次启动的时候会在/etc/salt/pkl/minion目录生成minion_master.pub、minion.pem、minion.pub三个文件,然后会将pub文件发送给服务端master。master在收到minion的public key后,通过salt-key命令accept minion public key,此时master的/etc/salt/pki/master/minions目录下会生成以minion id命令的public key。minion id就是/etc/salt/minion_id文件中指定的。这样master就可以对minion发送指令了。
查看证书签证情况
salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
10.170.164.22
Rejected Keys:
这里显示10.170.164.22未认证。
同意签证所有没有接受的签证
sudo salt-key -A -y
The following keys are going to be accepted:
Unaccepted Keys:
10.170.164.22
Key for minion 10.170.164.22 accepted.
再次查看签证情况,就可以看到10.170.164.22到Accepted Keys下面去了。
执行远程命令
salt '*' cmd.run 'ls /home -al'
salt '*' test.ping
本文未完待后续学习及补充.....