CentOS7 下SaltStack部署
Posted fuhaizi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7 下SaltStack部署相关的知识,希望对你有一定的参考价值。
一,概念SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。
通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。
二,saltstack工作原理
salt-master服务启动后会开启两个端口:4505和4506,minion没有端口,通过“双向密钥交换”(可通过tree /etc/salt/pki命令查看)来实现安全管理。salt-master每执行一条命令,所有minion均可收到,但只要指定的minion进行应答。 [[email protected] salt]# lsof -n -i:4505 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME salt-mast 11289 root 13u IPv4 58611 0t0 TCP 192.168.56.11:4505 (LISTEN) salt-mast 11289 root 15u IPv4 61320 0t0 TCP 192.168.56.11:4505->192.168.56.12:50292 (ESTABLISHED) salt-mast 11289 root 16u IPv4 69915 0t0 TCP 192.168.56.11:4505->192.168.56.11:59634 (ESTABLISHED) salt-mini 14050 root 25u IPv4 69914 0t0 TCP 192.168.56.11:59634->192.168.56.11:4505 (ESTABLISHED) 由此可以看到,所有的minion都与master通信,而回复的时候,master则使用4506端口 [[email protected] salt]# lsof -n -i:4506 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME salt-mast 11301 root 21u IPv4 58619 0t0 TCP 192.168.56.11:4506 (LISTEN) salt-mast 11301 root 28u IPv4 61319 0t0 TCP 192.168.56.11:4506->192.168.56.12:52042 (ESTABLISHED) salt-mast 11301 root 29u IPv4 69847 0t0 TCP 192.168.56.11:4506->192.168.56.11:35406 (ESTABLISHED) salt-mini 14050 root 14u IPv4 69846 0t0 TCP 192.168.56.11:35406->192.168.56.11:4506 (ESTABLISHED)
三,运行方式
- local 本地运行 - Master/Minion 服务端/agent方式 - Salt SSH 不需要安装agent
四,安装
环境:
系统: CentOS7
主机:
saltstack-master 192.168.56.11 saltstack-minion 192.168.56.12
五,安装epel yum源
yum -y install epel-release yum clean all yum makecache
六,安装saltstack-master
saltstack-master 安装:yum -y install salt-master salt-minion 1.配置: 修改 salt-master 本身监听地址(注:配置文件内不允许TAB键) vim /etc/salt/master 添加如下行: interface: 192.168.56.11 2. 配置:指定salt-master地址(注:配置文件内不允许TAB键) vim /etc/salt/minion 添加如下行: master: 192.168.56.11 #id: 3.启动 systemctl restart salt-master systemctl status salt-master systemctl enable salt-master systemctl restart salt-minion systemctl status salt-minion systemctl enable salt-minion
salt-master配置文件-参考:
salt-master配置文件-参考: vim /etc/salt/master # master的监听地址(注意:冒号后面空格) interface: 1.1.1.11 # salt运行的用户,影响到salt的执行权限 user: root # master自动接收客户端的验证 auto_accept: True # salt的运行线程,开的线程越多一般处理的速度越快,但一般不要超过CPU的个数 worker_threads: 8 # master的管理端口 publish_port : 4505 # master跟minion的通讯端口,用于文件服务,认证,接受返回结果等 ret_port : 4506 # 如果这个master运行的salt-syndic连接到了一个更高层级的master,那么这个参数需要配置成连接到的这个高层级master的监听端口 syndic_master_port : 4506 # 指定pid文件位置 pidfile: /var/run/salt-master.pid # saltstack 可以控制的文件系统的开始位置 root_dir: / # 日志文件地址 log_file: /var/log/salt/master.log # 分组设置 nodegroups: group_all: ‘*‘ # salt state执行时候的根目录 file_roots: base: - /srv/salt/base # 设置pillar的根目录 pillar_roots: base: - /srv/salt/pillar
六,安装
saltstack-minion
saltstack-minion 安装:yum install -y salt-minion
1.配置: 修改salt-minion配置文件,指定salt-master地址(注:配置文件内不允许TAB键)
vim /etc/salt/minion
添加如下行:
master: 192.168.56.11
#id:
注:id: hostname 用来指定主机名
2.启动
systemctl restart salt-minion
systemctl status salt-minion
systemctl enable salt-minion
七,在master进行测试
1.查看minion列表(这时候saltstack-minion是红色的) [[email protected] ~]# salt-key -L Accepted Keys: Denied Keys: Unaccepted Keys: linux-node2 Rejected Keys:
2.认证所有key。当然也可以通过salt-key -a saltstack-minion指定某台minion进行认证key [[email protected] ~]# salt-key -A #同意接管-管理所有minion The following keys are going to be accepted: Unaccepted Keys: linux-node2 Proceed? [n/Y] Y Key for minion linux-node2 accepted.
3. 接着继续查看minion列表(这时候saltstack-minion已经变为绿色,说明key已被添加) [[email protected] ~]# salt-key -L Accepted Keys: linux-node2 Denied Keys: Unaccepted Keys: Rejected Keys:
4. 简单测试(客户端salt_ping) [[email protected] ~]# salt ‘*‘ test.ping [[email protected] ~]# salt \* test.ping linux-node1.example.com: True linux-node2: True 注:salt-master使用命令 salt ‘linux-node2‘ test.ping linux-node2: True 此示例中所有的minion均已经收到了此消息,不过只有linux-node2进行了返回
salt缓存文件
目录:/var/cache/salt cd /var/cache/salt && tree 注:如果minion目标文件改变,重新salt后,master salt状态文件会覆盖minion节点文件,所以日后修改配置只需修改master salt状态文件即可。
本文转自:https://wuyanteng.github.io/2017/10/14/SaltStack%E9%83%A8%E7%BD%B2for-CentOS7/
以上是关于CentOS7 下SaltStack部署的主要内容,如果未能解决你的问题,请参考以下文章