Ansible 学习总结中,有哪些关键点或技巧容易被忽视?

摘要:世事洞明皆学问,人情练达即文章。 导航 1 工具介绍 1.1 Ansible 简介 1.2 Ansible 概念 1.3 工作原理 1.4 作用范围 2 配套命令 2.1 ansible 2.2 ansible-playbook 2.3 a
世事洞明皆学问,人情练达即文章。 导航 1 工具介绍 1.1 Ansible 简介 1.2 Ansible 概念 1.3 工作原理 1.4 作用范围 2 配套命令 2.1 ansible 2.2 ansible-playbook 2.3 ansible-doc 2.4 ansible-vault 2.5 ansible-galaxy 2.6 ansible-console 3 Inventory - 主机清单 4 Playbook - 任务清单 4.1 Keywords - 关键词 4.2 Vars - 变量 4.2.1 变量优先级 4.2.2 文件变量 4.2.3 特殊变量 4.2.4 调用变量 4.3 Tasks - 任务 4.3.1 Tasks 4.3.2 Roles 4.3.3 Handlers 4.4 其它技巧 4.4.1 When - 判断 4.4.2 Loop - 循环 5 常用模块 6 常用插件 7 杂七杂八 1、工具介绍 1.1、Ansible 简介 Ansible 是一款开源的自动化运维工具,主要用于服务器批量管理、应用部署和任务自动化。它主要的特点有:(1)无客户端的架构,免去了安装客户端的困扰。(2)基于 YAML 的语法配置,使得 Playbook 配置很容易阅读。(3)采用了 模块化的设计,使得其灵活度较高。(4)幂等性。 注:什么是幂等性? 当系统处于您的任务所描述的状态时,即使多次运行同一任务,Ansible 也不会更改任何内容。【例如:通过 lineinfile 模块去为 test 文件中以 a 开头的行的前面添加一行字串 test123,当多次执行同一任务 ansible localhost -m lineinfile -a "path=test state=present line=test123 insertbefore='^a'" 时,会发现 test 文件并没有随着任务的重复执行而重复添加多行 test123 字串,这便是幂等性。】 1.2、Ansible 概念 管理节点:运行 Ansible CLI 工具(ansible、ansible-playbook、ansible-vault 等)的机器。 被管节点:用 Ansible 管理的目标设备(服务器、网络设备或任何计算机)。 ==== 清单-inventory:被管节点的 主机列表,也被叫做“主机文件”。 剧本-playbook:用 YAML 编写的,用来描述自动化任务(指定哪些主机运行哪些命令任务)的文件。 剧集-play:一个剧本可以包含多个剧集,而一个剧集可以理解为:针对一组主机的一次完整执行任务的计划。【注:一个 Play 是由 关键词、变量、任务 组成,其中任务又分为以下三种。】 任务-task:用于定义执行的命令操作,相当于执行 单条命令。 角色-role:多个任务集中整合在了一起,相当于执行 一个 Bash 脚本。【注:Ansible 内置角色、第三方角色】 处理器-handler:可触发式的任务,相当于 Bash 脚本中定义的 Bash 函数。 ==== 模块:一个模块相当于一条 Linux 命令。【注:Ansible 内置模块】 插件:用于 扩展 Ansible 的功能。默认情况下,Ansible 远程目标只支持 ssh 的连接协议,但通过连接插件,它还可以支持 winrm、netconf 协议。【注:Ansible 内置插件】 集合:Ansible 内容的分发格式,可以包含剧本、角色、模块和插件。默认情况下,我们所使用的模块、插件 都是来自 Ansible.Builtin 集合。如果你想管控 windows 设备,那我们一定要使用 Ansible.Windows 集合中的模块。
阅读全文