![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Ansible
文章平均质量分 87
AHui_CSDN
生为逐鹿,誓建金台。
展开
-
自动化运维工具Ansible(1)基础
什么是Ansible? Ansible是一个自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复性的工作和维护成本,可以提高工作效率。同类型软件对比1.puppet 学习难,安装ruby环境难,没有远程执行功能 2.ansible 轻量级,大规模环境下只通过ssh会很慢,串行的 3.saltstack 一般选择salt会使用C/S结构的模式,salt-master和salt-minion,并行的,大规模批量操作的情况下,会比Ans原创 2022-07-04 19:30:00 · 219 阅读 · 0 评论 -
自动化运维工具Ansible(2)ad-hoc
什么是ad-hoc? ad-hoc简而言之就是“临时命令”,执行完即结束,并不会保存ad-hoc模式的使用场景 比如在多台机器上查看某个进程是否启动,或拷贝指定文件到本地,等等ad-hoc模式的命令使用 批量查看磁盘信息 批量查看内存信息 ad-hoc结果返回颜色 绿色: 代表被管理端主机没有被修改 黄色: 代表被管理端主机发现变更 红色: 代表出现了故障,注意查看提示ad-hoc常用模块 Ansible-doc帮助手册 Ansible命令模块 command 默认模块, 只用于执行命令 shell 如果需原创 2022-07-04 20:14:07 · 1010 阅读 · 0 评论 -
自动化运维工具Ansible(3)PlayBook
什么是PlayBook PlayBook即”剧本”,”兵书”之意,PlayBook是由以下部分组成的play: 定义的是主机的角色。(主角还是配角,找哪个明星) task: 定义的是具体执行的任务。(角色的台词和动作) playbook: 由一个或多个play(角色)组成,一个play(角色)可以包含多个task(台词,动作,大腕每集拍什么)。简单理解为: 使用不同的模块完成一件事情在Ansible中”剧本文件”是以yml结尾的文件。 在SaltStack中”剧本文件”是以sls结尾的文件。 但是语法,使用原创 2022-07-05 19:51:58 · 213 阅读 · 0 评论 -
自动化运维工具Ansible(4)变量
变量提供了便捷的方式来管理Ansible playbook的每一个项目中的动态值,比如nginx-1.6.3这个软件包的版本,在其它地方或许会反复使用,那么如果讲此值设置为变量,然后再在其他的playbook中调用,会方便许多。如此一来还方便维护,减少维护的成本。定义变量的方式 1.通过命令行进行变量定义 2.在play文件中进行变量定义 3.通过Inventory主机信息文件中进行变量定义变量的优先级 如果在定义变量时,变量冲突了在上述的三个地方分别设置了: 1.命令行中:age=11 2.play文件中原创 2022-07-07 17:50:26 · 961 阅读 · 0 评论 -
自动化运维工具Ansible(5)流程控制
不管是shell还是各大编程语言中,流程控制,条件判断这些都是必不可少的,在我们使用Ansible的过程中,条件判断的使用频率极其高。 例如: 1.我们使用不同的系统的时候,可以通过判断系统来对软件包进行安装。 2.在nfs和rsync安装过程中,客户端服务器不需要推送配置文件,之前我们都是写多个play,会影响效率。 3.我们在源码安装nginx的时候,执行第二遍就无法执行了,此时我们就可以进行判断是否安装过。根据不同的操作系统安装apache 官方示例: 还可以使用括号对条件进行分组 也可以指定多条件原创 2022-07-08 15:49:36 · 189 阅读 · 0 评论 -
自动化运维工具Ansible(6)Jinja2模板
什么是jinja2模板 jinja2是Python的全功能模板引擎Jinja2与Ansible啥关系 Ansible通常会使用jinja2模板来修改被管理主机的配置文件等…在saltstack中同样会使用到jinja2 如果在100台主机上安装nginx,每台nginx的端口都不一样,如何解决?Ansible如何使用Jinja2 使用Ansible的jinja2模板也就是使用template模块,该模块和copy模块一样,都是讲文件复制到远端主机上去,但是区别在于,template模块可以获取到文件中的变量原创 2022-07-08 17:15:11 · 338 阅读 · 0 评论 -
自动化运维工具Ansible(7)roles
roles不管是Ansible还是saltstack,我在写一键部署的时候,都不可能把所有的步骤全部写入到一个’剧本’文件当中,我们肯定需要把不同的工作模块,拆分开来,解耦,那么说到解耦,我们就需要用到roles官方推荐,因为roles的目录结构层次更加清晰。例如:我们之前推荐大家写一个base.yml里面写所有基础优化的项目,其实把所有东西摞进去也是很鸡肋的,不如我们把这些功能全部拆分开,谁需要使用,就调用即可。建议:每个roles最好只使用一个tasks这样方便我们去调用,能够很好的做到解耦。(SOA)原创 2022-07-10 20:37:31 · 410 阅读 · 0 评论