基本概念
这些概念在 Ansible 的所有使用中都很常见,包括网络自动化。你需要理解它们才能使用 Ansible 进行网络自动化。本基本介绍为你提供了遵循本指南中示例所需的背景知识。
控制节点
你从中运行 Ansible CLI 工具(ansible-playbook
、ansible
、ansible-vault
等)的机器。你可以使用任何满足软件要求的计算机作为控制节点 - 笔记本电脑、共享桌面和服务器都可以运行 Ansible。你也可以在称为执行环境的容器中运行 Ansible。
可以使用多个控制节点,但 Ansible 本身不会在它们之间进行协调,有关此类功能,请参阅 AAP
。
被管理节点
也被称为“主机”,这些是你打算使用 Ansible 管理的目标设备(服务器、网络设备或任何计算机)。
Ansible 通常不会安装在被管理节点上,除非你正在使用 ansible-pull
,但这很少见,也不是推荐的设置。
清单
由一个或多个“清单源”提供的被管理节点列表。你的清单可以指定每个节点特定的信息,如 IP 地址。它还用于分配组,这既允许在 Play 中选择节点,也允许批量变量分配。
要了解有关清单的更多信息,请参阅使用清单部分。有时,清单源文件也称为“主机文件”。
Playbook
它们包含 Play(这是 Ansible 执行的基本单元)。这既是一个“执行概念”,也是我们描述 ansible-playbook
操作的文件的方式。
Playbook 用 YAML 编写,易于阅读、编写、共享和理解。要了解有关 Playbook 的更多信息,请参阅Ansible Playbook。
Play
Ansible 执行的主要上下文,这个 Playbook 对象将受管理节点(主机)映射到任务。Play 包含变量、角色和有序的任务列表,并且可以重复运行。它基本上包含一个在映射的主机和任务上的隐式循环,并定义如何迭代它们。
角色
用于在 Play 中使用的可重用的 Ansible 内容(任务、处理程序、变量、插件、模板和文件)的有限分布。
要使用任何角色资源,必须将角色本身导入到 Play 中。
任务
要应用于受管理主机的“操作”的定义。你可以使用 ansible
或 ansible-console
通过临时命令执行单个任务一次(两者都会创建一个虚拟 Play)。
处理程序
一种特殊的任务形式,仅当先前任务导致“已更改”状态时才会执行。
模块
Ansible 复制到每个被管理节点(在需要时)并在其上执行的代码或二进制文件,以完成每个任务中定义的操作。
每个模块都有特定的用途,从管理特定类型数据库上的用户到管理特定类型网络设备上的 VLAN 接口。
你可以在一个任务中调用一个模块,或在 Playbook 中调用多个不同的模块。Ansible 模块分组在集合中。要了解 Ansible 包含多少个集合,请参阅集合索引。
插件
扩展 Ansible 核心功能的代码片段。插件可以控制你如何连接到受管理节点(连接插件)、操作数据(过滤器插件),甚至控制在控制台中显示的内容(回调插件)。
有关详细信息,请参阅使用插件。
集合
Ansible 内容的分发格式,可以包含 Playbook、角色、模块和插件。你可以通过 Ansible Galaxy 安装和使用集合。
要了解有关集合的更多信息,请参阅使用 Ansible 集合。
集合资源可以彼此独立且离散地使用。