自动化运维工具Saltstack学习笔记(二)

简介:

前面学习了Saltstack安装和基本的配置,可以通过Saltstack批量执行系统命令,包括系统重启,查看系统负载,添加/删除用户等等。也可以把线上WEB,DB,BBS等安装和配置相同或相近的服务器分为一组,通过Saltstack的group功能批量执行管理。下面通过Saltstack来实现批量安装,卸载RPM软件包,批量分发文件,压缩包和推送目录到指定的minion,定期修改Apache/Nginx/Mysql等配置文件并实施推送到minion。

1.物理环境

154621933.jpg

2.配置Saltstack master 

1)编辑/etc/salt/master, 取掉下面注释行,目录/srv/salt是Saltstack核心配置文件目录。

1
2
3
file_roots:
   base:
     /srv/salt/

2)查看我规划的Saltstack的.sls,配置文件和软件包的目录结构。

170953759.jpg

3)在/srv/salt目录下面新建top.sls文件,该文件是Saltstack入口配置文件。Saltstack "top.sls"文件开头一般用base:书写,通配符'*'表示所有的minion,-conf.pack表示conf目录下面的pack.sls文件,在这里我定义的是RPM软件包管理。

1
2
3
4
5
6
7
base:
   '*' :
     - conf.pack
     - conf.nginx
     - conf.apache
     - conf.mysql
     - conf.software

3.软件包的管理

1)创建软件包管理的配置文件pack.sls 文件,httpd表示要安装软件包,pkg:表示Saltstack安装包管理,-name表示安装软件包名称,-installed表示安装,-removed表示卸载,service:表示Saltstack服务管理,后两行保证apache的服务是开启的。

1
2
3
4
5
6
7
httpd:
   pkg:
     - name: httpd
     - installed
   service:
       - running
       enable : True

2)软件包管理测试,在ID为WEB2013-10-23的服务器上面已经安装apache服务并启动。

162528587.jpg

4.Nginx/apache配置文件的分发

1)创建Nginx sls配置文件nginx.sls ,第一行表示分发到minion文件路径,-managed表示Saltstack文件管理,-source:表示master端配置文件地址,是从master配置文件定义的路径/srv/salt开始查找的,下面三行表示文件的属性。

1
2
3
4
5
6
7
8
/usr/local/nginx/conf/nginx .conf:
   file :
     - managed
     source : salt: //nginx/nginx .conf
     - user: www
     - group: www
     - mode: 644
     - backup: minion

2)Nginx/apache配置文件的分发测试,在ID为WEB2013-10-23的服务器查看Nginx配置文件及其属性都是OK的。

164149904.jpg

5.Saltstack常用命令总结

通过salt '*' sys.doc | grep "salt '*'"可以查看所有salt帮助文档的说明。

1)Saltstack通过cp.get_file可以将master文件分发到minion,/software/Install_Centos_LAMP_v.0.1.sh表示把文件分发到minion上的文件路径,makedirs=True表示如果目录不存在自动创建,在传输大文件的时候还支持压缩传输,在传输大文件的时候还支持压缩传输gzip。

165519954.jpg

2)cp.get_dir和cp.get_file一样,不过get_dir是用来下载整个目录的,也支持压缩传输。

170043966.jpg

3)Saltstack cmd.run 命令可以执行系统命令并把结果返回。

171756726.jpg

3)Saltstack state.highstate命令表示主动推送master和minion同步,也可以通过schedule方式让客户端minion定期同步master。

1
salt  '*'  state.highstate

4)2013.12.27补充,上次网友和博友提问说如何只同步top.sls下面的nginx或者mysql的配置文件,而不是全部同步。当然应该也支持N(分组)和E(正则)参数。

1
salt  '*'  state.sls conf.nginx










本文转自 sfzhang 51CTO博客,原文链接:http://blog.51cto.com/sfzhang88/1317802,如需转载请自行联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
一键自动化博客发布工具,用过的人都说好(cnblogs篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到cnblogs上。
|
2天前
|
开发者
一键自动化博客发布工具,用过的人都说好(阿里云篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到阿里云上。
一键自动化博客发布工具,用过的人都说好(阿里云篇)
一键自动化博客发布工具,用过的人都说好(oschina篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到oschina上。
一键自动化博客发布工具,用过的人都说好(oschina篇)
|
3天前
|
运维 关系型数据库 MySQL
Ansible自动化运维工具主机清单配置
Ansible自动化运维工具主机清单配置
一键自动化博客发布工具,用过的人都说好(segmentfault篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到segmentfault上。
|
4天前
|
测试技术 API
探索软件测试中的自动化工具与挑战
本文探讨了软件测试领域中自动化工具的应用与挑战。通过分析目前主流的自动化测试工具,探讨了其在提高测试效率、减少人工成本、增强测试覆盖率等方面的优势。然而,自动化测试也面临着诸如脆弱性、维护成本高等挑战。最后,提出了一些应对挑战的建议,以期为软件测试领域的自动化工作提供一些启示。
11 1
|
6天前
|
Web App开发 JSON 数据格式
一键自动化博客发布工具,chrome和firfox详细配置
blog-auto-publishing-tools博客自动发布工具现在已经可以同时支持chrome和firefox了.
一键自动化博客发布工具,chrome和firfox详细配置
|
9天前
|
敏捷开发 监控 测试技术
探索自动化测试工具Selenium Grid的高效集成策略
【4月更文挑战第30天】在现代Web应用的快速迭代和持续部署中,测试自动化已成为确保产品质量的关键。Selenium Grid作为一款支持多种浏览器和操作系统的测试工具,提供了并行执行测试用例的能力,极大地提升了测试效率。本文将深入探讨如何高效地将Selenium Grid集成到现有的测试框架中,以及实施过程中的最佳实践,帮助团队最大化测试覆盖率,同时降低资源消耗。
|
10天前
|
中间件 测试技术 API
探索自动化测试工具的新边界:Selenium与Appium的集成实践
【4月更文挑战第30天】 随着移动应用和Web应用的不断融合,传统的自动化测试工具需要适应新的测试环境。本文将详细分析Selenium和Appium这两款流行的自动化测试工具的集成实践,探讨如何构建一个能够同时支持Web和移动端应用的自动化测试框架。通过对比两者的技术架构、功能特性以及在实际项目中的集成过程,我们旨在为读者提供一个清晰的指导,帮助他们在复杂的应用环境中实现高效、稳定的自动化测试流程。
|
10天前
|
弹性计算 运维 Shell
自动化网络扫描工具发现活跃主机
【4月更文挑战第30天】
8 0

热门文章

最新文章