sysTemd   发布时间:2019-10-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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。

saltstack之自动化运维

服务器环境准备

@H_489_759@
服务器环境ip地址身份软件包关闭服务器安全策略

# 关闭firewalldsystemctl disable firewalld systemctl stop firewalld# 关闭iptables iptables -F# 关闭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     # 提供认证,文件服务,结果收集等功能# 确保客户端可以通信服务器的此2个端口,保证防火墙允许端口通过。因此在测试环境直接关闭防火墙。 配置文件

salt-master的配置文件是/etc/salt/master  # 主机 192.168.178.131salt-minion的配置文件是/etc/salt/minion  # 主机 192.168.178.132# 配置文件中包含了大量可调整的参数,这些参数控制master和minion各个方面 写入salt-master配置文件如下:

interface: 0.0.0.0  # 绑定到本地的0.0.0.0地址publish_port: 4505user: root worker_threads: 5ret_port: 4506pidfile: /var/run/salt-@H_387_12@master.pid log_file: /var/log/salt/@H_387_12@master# 自动接收minion的key auto_accept: false

saltstack之自动化运维

# salt运行的用户,影响到salt的执行权限user: root#s alt的运行线程,开的线程越多一般处理的速度越快,但一般不要超过CPU的个数 worker_threads: 10# master的管理端口 publish_port : 4505# master跟minion的通讯端口,用于文件服务,认证,接受返回结果等 ret_port : 4506# 如果这个master运行的salt-synDic连接到了一个更高层级的master,那么这个参数需要配置成连接到的这个高层级master的监听端口 synDic_master_port : 4506# 指定pid文件位置 pidfile: /var/run/salt-master.pidsalt-master配置参数详解 写入SALE-master配置文件如下:

@H_612_0@master: 192.168.178.132  # 填自己的端口或者域名master_port: 4506user: root id: slave  # id自定义acceptance_wait_time: 10log_file: /var/log/salt/minion

saltstack之自动化运维

# minion的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串id: slave# salt运行的用户权限user: root# master的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串@H_387_12@master : master# 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.logsalt-minion配置参数详解 启动

# 192.168.178.131中:systemctl start salt-master  # 启动mastersystemctl status salt-master  # 检查start状态====================================# 192.168.178.132 systemctl start salt-minion  # 启动minion systemctl status salt-minion  # 检查状态 注意:如果启动报错,查看是否有 /var/log/salt/ 这个文件 在master上接收minion密钥 在minion启动后连接master会请求master为其签发证书,等待证书签发完成后,master可以信任minion,并且minion和master之间的通信是加密的。 在salt-master执行 salt-key命令用于管理mionion秘钥

[root@master ~]# salt-key -L# 输出结果:Accepted Keys: Denied Keys: Unaccepted Keys: slave    # 此时已经出现slaveRejected Keys: 此时slave已经出现在unaccepted keys中,说明minion已经和master联系,并且master已经获取了minion的公钥,等待下一步指令。 密钥匹配 在master上执行:

[root@master ~]# salt-key -f 192.162.178.132Unaccepted Keys: slave:  0a:b9:97:b5:9a:65:b8:49:a1:50:a5:6a:66:ce:33:ea 然后在minion上获取密钥:

[root@slave ~]# salt-call --local key.fingerlocal:    0a:b9:97:b5:9a:65:b8:49:a1:50:a5:6a:66:ce:33:ea 此时可确认密钥匹配,在master上接收密钥

[root@master ~]# salt-key -a slaveThe following keys are going to be accepted: Unaccepted Keys: slave Proceed? [n/Y] y Key @H_761_262@for minion slave accepted. 确认接收秘钥后,检验minion秘钥是否被接收

[root@master ~]# salt-key -LAccepted Keys: slave  # 表示接收成功Denied Keys: Unaccepted Keys: Rejected Keys: 好了,配置完成,可以执行命令了。 常用命令 salt-key 只有master接收了minion key后才能进行管理。

[root@master ~]# salt-key -LAccepted Keys:  # 已经接受的keyDenied Keys:    # 拒绝的keyUnaccepted Keys:# 未加入的keyRejected Keys:# 吊销的key#常用参数 -L  # 查看KEY状态 -A  # 允许所有 -D  # 删除所有 -a  # 认证指定的key -d  # 删除指定的key -r  # 注销掉指定key(该状态为未被认证)# 在master端/etc/salt/master配置 auto_accept: True   # 如果对Minion信任,可以配置master自动接受请求 常用命令参数:

saltstack之自动化运维

rpm -ql salt-@H_387_12@master/etc/salt/master      # salt master主配置文件 /usr/bin/salt           # salt master 核心操作命令 /usr/bin/salt-cp       # salt 文件传输命令 /usr/bin/salt-key    # salt证书管理 /usr/bin/salt-master    # salt master 服务命令 /usr/bin/salt-run          # salt master runner命令@H_805_105@master端

saltstack之自动化运维

rpm -ql salt-@H_387_12@minion/etc/salt/minion     # minion配置文件 /usr/bin/salt-call    # 拉取命令 /usr/bin/salt-minion   # minion服务命令 /usr/lib/systemd/system/salt-minion.service   # minion启动脚本slave端 salt命令:

[root@master ~]# salt '*' test.ping  # 检测所有minion主机是否存活slave:    True# salt 是一个命令 * 表示目标主机,在这里代表所有目标主机 test.ping是salt远程执行的一个模块下面的方法。[root@master ~]$salt '*' test.fib 50  # 生成斐波那契数列 [root@master ~]$salt 'slave' sys.list_modules  # 列出所有salt的sys模块

saltstack之自动化运维

[root@master ~]$salt '*' sys.list_functions test slave:- test.arg- test.arg_repr- test.arg_type- test.assertion- test.attr_call- test.collatz- test.conf_test- test.cross_test- test.echo- test.exception- test.fib- test.get_opts- test.kwarg- test.module_report- test.not_loaded- test.opts_pkg- test.outputter- test.ping- test.provider- test.providers- test.rand_sleep- test.rand_str- test.retcode- test.sleep- test.stack- test.try_- test.tty- test.version- test.versions_information- test.versions_reporttest其他函数 cmd运行命令:

# cmd是超级模块,所有sHell命令都能执行[root@master ~]$salt 'slave' cmd.run 'ps -ef|grep python' pkg安装命令:

#在minion上安装nginx[root@master ~]$salt 'slave' pkg.install "nginx"#卸载minion上的nginx[root@master ~]$salt 'slave' pkg.remove "nginx"#检查pkg包的版本[root@master ~]$salt 'slave' pkg.version "nginx" service管理服务模块:

[root@master ~]$salt 'slave' service.start "nginx"  # 启动nginx[root@master ~]$salt 'slave' service.status "nginx"  # 重启nginx[root@master ~]$salt 'slave' service.stop "nginx"  # 停止nginx --out 控制salt命令结果输出的格式:

# JSON[root@master ~]$salt --out=json '*' cmd.run_all 'hostname'  # 返回json格式

# YAML[root@master ~]$salt --out=yaml '*' cmd.run_all 'hostname'  # 返回YAML格式[h1] [/h1]























@H_616_757@

大佬总结

以上是大佬教程为你收集整理的saltstack之自动化运维全部内容,希望文章能够帮你解决saltstack之自动化运维所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:
猜你在找的sysTemd相关文章