前端之家收集整理的这篇文章主要介绍了
saltstack之自动化运维,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
引入
简介
saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统。
早期运维人员会根据自己的生产环境来写特定脚本完成大量重复性工作,这些脚本复杂且难以维护。系统管理员面临的问题主要是1、系统配置管理,2、远程执行命令,因此诞生了很多开源软件,系统维护方面有fabric、puppet、chef、ansible、saltstack等,这些软件擅长维护系统状态或方便的对大量主机进行批量的命令执行。
salt灵活性强大,可以进行大规模部署,也能进行小规模的系统部署。salt的设计架构适用于任意数量的服务器,从少量本地网络系统到跨越数个数据中心,拓扑架构都是c/s模型,配置简单。
不管是几台、几百台、几千台服务器,都可以使用salt在一个中心节点上进行管控,灵活定位任意服务器子集来运行命令。
Salt是python编写的,支持用户通过python自定义功能模块,也提供了大量的python API接口,用户可以根据需要进行简单快速的扩展。
saltstack的运维方式
- Local 本地运行,交付管理
- Master/Minion (常用方式 )
- Salt SSH 不需要客户端
salt基本架构
在安装salt之前,先理解salt架构中各个角色,主要区分是salt-master和salt-minion,顾名思义master是中心控制系统,minion是被管理的客户端。
salt架构中的一种就是master > minion。
服务器环境准备
关闭服务器安全策略
关闭firewalld
<span style="color: #008000;">#<span style="color: #008000;">
关闭iptables
iptables -<span style="color: #000000;">F
<span style="color: #008000;">#<span style="color: #008000;"> 关闭selinux
安装saltstack
注意:salt软件包需要epel源的支持, 如果没有安装epel源 <>有教程
在 192.168.178.131 中安装salt-master
yum install salt-master -y
另一台安装salt-minion
yum install salt-minion -y
salt端口
安装好salt之后开始配置,salt-master默认监听两个端口:
4505 publish_port
功能
4506 ret_port 文件服务,结果收集等功能关闭防火墙。
salt-master的
配置文件是/etc/salt/master
salt-minion的配置文件是/etc/salt/minion 配置文件中包含了大量可调整的参数,这些参数控制master和minion各个方面
写入salt-master配置文件如下:
interface: 0.0.0.0
publish_port: 450554506/var/run/salt-/var/log/salt/<span style="color: #008000;">#<span style="color: #008000;"> 自动接收minion的key<span style="color: #008000;">
<span style="color: #008000;"> auto_accept: False
用户,影响到salt的执行权限
<span style="color: #008000;">#<span style="color: #008000;">s alt的运行线程,开的线程越多一般处理的速度越快,但一般不要超过
cpu的个数
worker_threads: 10
<span style="color: #008000;">#<span style="color: #008000;"> master的管理端口
publish_port : 4505
<span style="color: #008000;">#<span style="color: #008000;"> master跟minion的通讯端口,用于文件服务,认证,接受返回结果等
ret_port : 4506
<span style="color: #008000;">#<span style="color: #008000;"> 如果这个master运行的salt-syndic连接到了一个更高层级的master,那么这个参数需要配置成连接到的这个高层级master的监听端口
syndic_master_port : 4506
<span style="color: #008000;">#<span style="color: #008000;"> 指定pid文件位置
pidfile: /var/run/salt-master.pid
<span style="color: #008000;">#<span style="color: #008000;"> salt运行的用户权限
<span style="color: #000000;">user: root
<span style="color: #008000;">#<span style="color: #008000;"> master的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串
<span style="color: #000000;">master : master
<span style="color: #008000;">#<span style="color: #008000;"> master通信端口
master_port: 4506
<span style="color: #008000;">#<span style="color: #008000;"> 备份模式,minion是本地备份,当进行文件管理时的文件备份模式
<span style="color: #000000;">backup_mode: minion
<span style="color: #008000;">#<span style="color: #008000;"> 执行salt-call时候的输出方式
<span style="color: #000000;">output: nested
<span style="color: #008000;">#<span style="color: #008000;"> minion等待master接受认证的时间
acceptance_wait_time: 10
<span style="color: #008000;">#<span style="color: #008000;"> 失败重连次数,0表示无限次,非零会不断尝试到设置值后停止尝试
<span style="color: #000000;">acceptance_wait_time_max: 0
<span style="color: #008000;">#<span style="color: #008000;"> 重新认证延迟时间,可以避免因为master的key改变导致minion需要重新认证的syn风暴
random_reauth_delay: 60
<span style="color: #008000;">#<span style="color: #008000;"> 日志文件位置
log_file: /var/logs/salt_minion.log