文章目录
1 saltstack简介
SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。
通过部署SaltStack,我们可以在成千万台服务器上做到批量执行命令,根据不同业务进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。
2 环境
主机名 | IP | 安装软件 |
---|---|---|
salt-master1 | 172.16.159.143 | salt-master |
salt-minion-web1 | 172.16.159.144 | salt-minion |
salt-minion-web2 | 172.16.159.145 | salt-minion |
3 配置hosts
如果内网是dns的不用配置hosts。在172.16.159.143,172.16.159.144,172.16.159.145三台机器上面配置hosts
vi /etc/hosts
172.16.159.143 salt-master1
172.16.159.144 salt-minion-web1
172.16.159.145 salt-minion-web2
4 安装
4.1 安装salt-master
登录到172.16.159.143
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
# yum -y install salt-master
# chkconfig salt-master on
# chkconfig --list salt-master
4.2 安装salt-minion
登录到172.16.159.144,172.16.159.145
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
# yum -y install salt-minion
# chkconfig salt-minion on
# chkconfig --list salt-minion
5 配置与启动
5.1 配置salt-master
登录到172.16.159.143
# cp /etc/salt/master /etc/salt/master.bak
# vim /etc/salt/master
去掉file_roots注释
file_roots:
base:
- /srv/salt
去掉pillar_roots注释
pillar_roots:
base:
- /srv/pillar
5.2 启动salt-master
# /etc/init.d/salt-master start
5.3 配置salt-minion
登录到172.16.159.144,172.16.159.145
# cp /etc/salt/minion /etc/salt/minion.bak
# vim /etc/salt/minion
配置master
master: salt-master1
5.4 启动salt-minion
# /etc/init.d/salt-minion start
6 使用
登录到172.16.159.143的salt-master
6.1 显示所有minion认证信息
[root@salt-master1 ~]# salt-key
Accepted Keys:
Denied Keys:
Unaccepted Keys:
salt-minion-web1
salt-minion-web2
Rejected Keys:
[root@salt-master1 ~]#
6.2 添加认证信息
[root@salt-master1 ~]# salt-key -a salt-minion-web1
The following keys are going to be accepted:
Unaccepted Keys:
salt-minion-web1
Proceed? [n/Y] y
Key for minion salt-minion-web1 accepted.
[root@salt-master1 ~]#
再次查看所有认证信息。发现salt-minion-web1已经认证,salt-minion-web2还没有认证。
[root@salt-master1 ~]# salt-key
Accepted Keys:
salt-minion-web1
Denied Keys:
Unaccepted Keys:
salt-minion-web2
Rejected Keys:
[root@salt-master1 ~]#
# salt-key -A #接受所有Unaccepted状态的minion认证信息
7 命令
7.1 简单命令
7.1.1 主机是否通(test.ping)
[root@salt-master1 ~]# salt '*' test.ping
salt-minion-web2:
True
salt-minion-web1:
True
7.1.2 执行命令(cmd.run)
全部
[root@salt-master1 ~]# salt '*' cmd.run 'ls /tmp'
salt-minion-web1:
cachecloud
yum.log
salt-minion-web2:
cachecloud
yum.log
[root@salt-master1 ~]#
匹配
[root@salt-master1 ~]# salt 'salt-minion-web1' cmd.run 'ls /tmp'
salt-minion-web1:
cachecloud
yum.log
[root@salt-master1 ~]# salt 'salt-*-web1' cmd.run 'ls /tmp'
salt-minion-web1:
cachecloud
yum.log
[root@salt-master1 ~]#
7.2 其它命令
1.通配符匹配方式
//*代表匹配所有主机
[root@salt0-master ~]# salt '*' test.ping
[root@salt0-master ~]# salt 'salt1-minion.example.com' test.ping
[root@salt0-master ~]# salt 'salt1*' test.ping
[root@salt0-master ~]# salt 'salt[1|2]*' test.ping
[root@salt0-master ~]# salt 'salt?-minion.example.com' test.ping
[root@salt0-master ~]# salt 'salt[!1|2]-minion.example.com' test.ping
2.列表匹配方式
[root@salt0-master ~]# salt -L 'salt1-minion.example.com,salt2-minion.example.com' test.ping
3.正则表达式
[root@salt0-master ~]# salt -E 'salt(1|2|3|4)*' test.ping
[root@salt0-master ~]# salt -E 'salt(1|2|3|4)-minion.example.com' test.ping
4.IP匹配方式
[root@salt0-master ~]# salt -S '192.168.70.0/24' test.ping
[root@salt0-master ~]# salt -S '192.168.70.171' test.ping
5.分组匹配方式
[root@salt0-master ~]# vi /etc/salt/master
nodegroups:
webserver: 'salt1-minion.example.com,salt2-minion.example.com'
dbserver: 'L@salt1-minion.example.com,salt2-minion.example.com or salt3*'
ftpserver: 'G@os:centos and salt1-minion.example.com'
[root@salt0-master ~]# systemctl restart salt-master
[root@salt0-master ~]# salt -N 'webserver' test.ping
6.Grains匹配方式
[root@salt0-master ~]# salt -G 'os:centos' test.ping
[root@salt0-master ~]# salt -G 'fqdn_ip4:192.168.70.174' test.ping
8 参考文档
《CentOS-6.5-saltstack-安装》
https://www.cnblogs.com/hwlong/p/5790918.html
《Saltstack远程执行》
https://www.cnblogs.com/henrylinux/p/11498085.html
技术交流
CleverCode是一名架构师,技术交流,咨询问题,请加CleverCode创建的qq群(架构师俱乐部):517133582。加群和腾讯,阿里,百度,新浪等公司的架构师交流。【架构师俱乐部】宗旨:帮助你成长为架构师!
来源:CSDN
作者:CleverCode
链接:https://blog.csdn.net/CleverCode/article/details/103825143