首页 > 数据库 > 数据库开发技术 > 干货篇 | 自动化运维工具-saltstack

minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在 /etc/salt/minion里面设置)下自动生成minion.pem(private key)和minion.pub(public key),然后将 minion.pub发送给master
master收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下将会存放以minion id命名的 public key,以此来建立可靠且加密的通信连接,同时通过消息队列ZeronMQ在master和minion之间建立消息发布通道
1.安装

#安装saltstack存储库和密钥rpm --import https://repo.saltproject.io/py3/redhat/7/x86_64/3002/SALTSTACK-GPG-KEY.pub#配置镜像源touch /etc/yum.repos.d/salt.repocurl -fsSL https://repo.saltproject.io/py3/redhat/7/x86_64/3002.repo | tee /etc/yum.repos.d/salt.repo#清缓存yum clean expire-cache
#master[root@master ~]# yum install salt-master -y#minion[root@minion1 ~]# yum install salt-minion -y[root@minion2 ~]# yum install salt-minion -y
[root@master ~]#systemctl enable salt-master && systemctl start salt-master[root@minion1 ~]#systemctl enable salt-minion && systemctl start salt-minion[root@minion2 ~]#systemctl enable salt-minion && systemctl start salt-minion
[root@master ~]# vim /etc/salt/master[root@master ~]# grep -Ev "^$|#" /etc/salt/masterfile_root:base:- /home/saltpillar_roots:base:- /home/salt/pillarorder_masters: Trueauto_accept: True
file_roots:主目录pillar_roots:pillar组件主目录order_masters:允许开启多层masterauto_accept:自动认证
[root@master ~]#systemctl restart salt-master[root@minion1 ~]# vim /etc/salt/minion[root@minion1 ~]# grep -Ev "^$|#" /etc/salt/minionmaster: 192.168.244.141id: 192.168.244.129user: root#重启服务[root@minion1 ~]# systemctl restart salt-minion
# minion的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串id: 192.168.244.128# salt运行的用户权限user: root# master的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串master : 192.168.244.141# master通讯端口master_port: 4506# 备份模式,minion是本地备份,当进行文件管理时的文件备份模式backup_mode: minion# 执行salt-call时候的输出方式output: nested# minion等待master接受认证的时间acceptance_wait_time: 10# 失败重连次数,0表示无限次,非零会不断尝试到设置值后停止尝试acceptance_wait_time_max: 0# 重新认证延迟时间,可以避免因为master的key改变导致minion需要重新认证的syn风暴random_reauth_delay: 60# 日志文件位置log_file: /var/logs/salt_minion.log# 文件路径基本位置file_roots:base:- /etc/salt/minion/file# pillar基本位置pillar_roots:base:- /data/salt/minion/pillar
[root@master ~]# salt-keyAccepted Keys: #可以看到master已经检测到minion,且已认证key192.168.244.128192.168.244.129Denied Keys:Unaccepted Keys:Rejected Keys:#如果没有认证,手动输入认证一下[root@master ~]# salt-key -a id
[root@master ~]# salt '192.168.244.128' test.ping192.168.244.128:True #返回结果表示成功[root@master ~]# salt '192.168.244.129' test.ping192.168.244.129:True
这篇文章首先介绍了saltstack是什么,以及它与ansible之间的相似之处和不同之处
还介绍了saltstack中master和minion之间是怎么实现通信的
最后还通过在三台虚拟机上部署saltstack组件,让大家印象更深刻
在下一篇文章中,我将为大家介绍saltstack的一些基础命令和如何实现分组管理,以及写一些简单的SLS脚本来实现对minion的批量操作

原文作者:咸鱼运维杂谈;如有侵权,请联系管理员删除。