SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。
通过部署SaltStack,我们可以在成千万台服务器上做到批量执行命令,根据不同业务进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。
下面介绍一下saltstack的部署及使用教程。
官网:http://docs.saltstack.cn/
环境:
1、配置epel源
salt软件包需要epel源的支持,那么下载
for i in /etc/yum.repos.d/*.repo;do cp $i ${i%.repo}.bak;done
rm -rf /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/centos-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
2、安装salt包
--先安装epel源
yum install epel-release -y
--安装salt-master
yum install salt-master -y
--安装salt-minion
yum install salt-minion -y
--其他
yum install salt-ssh -y
yum install salt-syndic -y
yum install salt-cloud -y
3、开机自启动
--salt-master开机自启
systemctl enable salt-master.service
systemctl start salt-master.service
systemctl status salt-master.service
--salt-minion开机自启
systemctl enable salt-minion.service
systemctl start salt-minion.service
systemctl status salt-minion.service
1、管理端配置
1.1、修改hosts文件解析
# vim /etc/hosts
#####################saltstack#########################
xx.xx.xx.3 xxxsalt-master
#prod
xx.xx.xx.134 xxxxsalt-minion
1.2、修改salt-master配置文件
# cat /etc/salt/master |grep -v '^#'|grep -v '^$'
==============================================================================
interface: salt-master-IP #监听地址改成主机IP
publish_port: 4505 #4505消息发布端口(所有minion在4505上保持established)
ret_port: 4506 #salt客户端和服务端通信使用4506端口,内容传输使用消息队列
auto_accept: True #证书认证
file_roots: #开启站点目录
base:
- /srv/salt/
prod:
- /srv/salt/prod/services
- /srv/salt/prod/states
uat:
- /srv/salt/uat/services
- /srv/salt/uat/states
pillar_roots:
base:
- /srv/pillar
pillar_opts: True #开启pillar功能,同步文件功能
nodegroups:
group1: 'XX-AP' #被管理端主机名
group2: 'XX-TEST-AP'
1.3、创建配置文件中对应的目录
mkdir -p /srv/salt/prod/services
mkdir -p /srv/salt/prod/states
mkdir -p /srv/salt/uat/services
mkdir -p /srv/salt/uat/states
1.4、重启服务
systemctl restart salt-master
2、被管理端配置
2.1、修改配置文件
cat > /etc/salt/minion << EOF
master: salt-master-ip
id: `hostname`
EOF
2.2、重启服务
systemctl restart salt-minion
1、salt-key 密钥管理,通常在master端执行
salt-key [options]
salt-key -L ##查看所有minion-key
salt-key -a <key-name> ##接受某个minion-key
salt-key -d <key-name> ##删除某个minion-key
salt-key -A ##接受所有的minion-key
salt-key -D ##删除所有的minion-key
2、salt-run 在master执行runner
salt-run [options] [runner.func]
salt-run manage.status ##查看所有minion状态
salt-run manage.down ##查看所有没在线minion
salt-run manged.up ##查看所有在线minion
3、salt可以让minion执行命令.
执行模块命令。
cmd.run模块执行shell命令。
cmd.script方式:可以向远程主机执行脚本。
salt -C 'ZL-FSL-AMS-TEST-AP' test.ping #模块命令。测试minion存活状态,-C多参数
salt 'ZL-FSL-AMS-TEST-AP' cmd.run 'ls /home'
salt '*' cmd.script salt://temp.sh salt:// == /srv/salt(salt的默认发布目录)
4、salt执行cp模块salt-cp 分发文件到minion上,不支持目录分发。
salt-cp '*' /home/scripts/zabbix_backup.sh /home/zabbix_backup.sh
5、salt执行自定义脚本。
salt:// 是指 /srv/salt(salt的默认发布目录)
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~