Ansible 是一种流行的开源自动化工具,用于配置管理、应用部署、任务执行等。以下是一些常见的 Ansible 术语及其解释:
- Action: 任务的一部分,指定要运行的模块以及传递给该模块的参数。
- Ad Hoc: 使用
/usr/bin/ansible直接执行命令,而不是使用/usr/bin/ansible-playbook执行剧本。 - Async: 配置任务在后台运行,适用于预计运行时间可能超过 SSH 登录时长的任务。
- Callback Plugin: 用户编写的代码,可以从 Ansible 运行结果获取数据并进行处理。
- Check Mode: 使用
--ckeck选项运行 Ansible,系统不会做出任何改变,只会输出可能发生的改变。 - Connection Type / Connection Plugin: Ansible 使用可插拔的库与远程系统通信,默认使用 OpenSSH。
- Conditionals: 根据表达式的结果决定是否在机器上执行特定任务。
- Diff Mode: 使用
--diff标识传递给 Ansible,展示模板文件如何改变。 - Facts: 自动发现远程节点的信息,用于在模板中引用。
- Host Vars: 为特定主机分配变量,而不需要在 inventory 文件中嵌入太多变量。
- Idempotency: 确保命令只在需要时执行,描述系统的状态而非如何到达该状态。
- Includes: 在 playbook 文件中包含其他 plays 或任务列表。
- Inventory: 描述主机和组的 Ansible 文件。
- Inventory Script: 从外部资源获取主机、主机组成员和变量信息的程序。
- Limit Groups: 使用
--limit somegroup参数限制命令的目标为主机的子集。 - Local Connection: 指定 playbook 管理本地主机而非远程机器。
- Local Action: 在 playbook 中指定步骤只在本地机器上运行。
- Loops: 通过
with_items等实现任务的重复执行。 - Modules: Ansible 运行远程机器的单元,可以由任何语言编写。
- Notify: 任务状态改变时触发事件,通知处理任务在 play 的最后运行。
- Orchestration: 编排多个系统和组件按照特定顺序执行任务。
- Plays: 一个 playbook 包含一系列 plays,每个 play 指定在哪些主机上运行任务。
- Pull Mode: 节点定期检查配置指令并使用连接插件在本地管理机器。
- Push Mode: Ansible 的默认模式,通过复杂的编排过程控制节点。
- Register Variable: 将 Ansible 运行结果存储在变量中,以便在模板或条件语句中使用。
- Resource Model: Ansible 模块工作在资源上,确保资源属性匹配指定的模型。
- Roles: 包含变量、任务和处理程序的可重用单元。
- Rolling Update: 分批处理主机组中的节点,避免一次性更新导致系统离线。
- Runner: Ansible 核心组件,执行 playbook 中的每个任务。
- Serial: 控制滚动更新中同时更新的主机数量。
- SSH (Native): 使用 OpenSSH 作为传输方式,支持 Kerberos 和跳板机。
- Tasks: Playbooks 包含的任务,每个任务包含一个动作和一些可选关键字。
- Templates: 传输文件到远程系统并替换文件中的变量。
- Transport: Ansible 使用连接插件定义可用的传输类型。
- When: 可选关键字,根据表达式的结果决定是否执行任务。
- Vars (Variables): 在模板和剧本中应用的变量,可以是标量值、字典、列表等。
- YAML: Ansible 使用 YAML 来定义剧本和配置语言,易于人类阅读和编写。