第 30 章 术语表
临时(Ad Hoc)
临时命令 使用 Ansible 执行快速命令,使用 /usr/bin/ansible,而不是编配语言,即 /usr/bin/ansible-playbook
。一个临时命令的示例可能会在您的基础架构中重新引导 50 个机器。您可以编写 Playbook 来完成任何操作。playbook 也可以将许多其他操作组合在一起。
回调插件(Callback Plugin)
是指用户编写的代码,这些代码可以从 Ansible 截获结果并对其执行操作。GitHub 项目中的一些示例执行自定义日志记录、发送电子邮件或播放声音效果。
控制组群
也称为 'cgroups',控制组是 Linux 内核中的一个功能,使资源可以被分组并分配以运行进程。除了将资源分配给进程外,cgroups 还可以报告 cgroup 内运行的所有进程使用资源。
检查模式
使用- check
选项运行 Ansible,该选项不会在远程系统上进行任何更改,而是仅输出命令在没有此标志的情况下运行时可能发生的更改。这与其它系统中所谓的"dry run"模式类似。但是,这不会考虑意外的命令故障或级联效果(在其它系统中有类似模式)。使用 Check 模式了解可能发生的情况,但它并不是一个好的暂存环境的替代品。
容器组
容器组是实例组的一种类型,用于指定在运行任务的 Kubernetes 或 OpenShift 集群中置备 pod 的配置。这些 pod 按需置备,且仅在 playbook 运行期间存在。
凭证
身份验证详情,供自动化控制器用于针对机器启动作业、与清单源同步以及从版本控制系统中导入项目内容。如需更多信息,请参阅 [Credentials]。
凭证插件
Python 代码,包含外部凭证类型、其元数据字段以及与 secret 管理系统交互所需代码的定义。
分布式作业
由作业模板、清单和分片大小组成的作业。执行后,分布式作业会将每个清单划分为多个"分片大小"块,然后用于运行较小的作业分片。
外部凭证类型
用于与 secret 管理系统进行身份验证的受管凭证类型。
事实
事实是发现与远程节点相关的内容。虽然它们可以像变量一样在 playbook 和模板中使用,但事实是推断出来的,而不是设置。通过在远程节点上执行内部设置模块,在运行 play 时自动发现事实。您不必显式调用 setup 模块:只需要运行。如果不需要,可以禁用它来节省时间。为方便从其他配置管理系统切换的用户,事实模块也会从 ohai
和 facter
工具中提取事实(如果分别安装了事实库)和 Puppet。
Forks
Ansible 和自动化控制器并行与远程节点通信。可以在创建或编辑作业模板的过程中通过传递- forks
或编辑配置文件中的默认设置,以多种方式设置并行级别。默认值为非常保守的五个 fork,但如果您有大量 RAM,您可以将它设置为更高的值,如 50,以增加并行性。
Group
Ansible 中的一组主机,可以作为集合进行寻址,其中很多主机可以存在于单个清单中。
组变量
group_vars/
文件是存储在具有清单文件的目录中的文件,具有以每个组命名的可选文件名。这是放置为给定组提供的变量(特别是复杂的数据结构)的便捷位置,因此这些变量不必嵌入到清单文件或 playbook 中。
处理程序(handler)
处理程序类似于 Ansible playbook 中的常规任务(请参阅 任务),但只有任务包含"notify"指令并且指示它更改了内容时才运行。例如,如果更改了配置文件,则引用配置文件模板操作的任务可能会通知服务重启处理程序。这意味着,只有在需要重启服务时,才能退回服务。处理程序可用于服务重启以外的内容,但服务重启是最常见的用途。
主机
由自动化控制器管理的系统,可能包含物理、虚拟或基于云的服务器,或其他设备(通常是操作系统实例)。主机包含在清单中。有时被称为"节点"。
主机指定符
Ansible 中的每个 Play 将一系列任务(定义系统的角色、目的或顺序)映射到一组系统。每个 play 中的这个"hosts:"指令通常称为主机指定符。它可以选择一个系统、多个系统、一个或多个组,或者一个组中的主机,并且明确不在另一个组中。
实例组
包含用于在集群环境中使用的实例的组。实例组提供根据策略对实例进行分组的功能。
清单(Inventory)
可对其启动任务的主机集合。
清单脚本
查找主机、组成员资格以及来自外部资源的变量信息的程序,无论是 SQL 数据库、CMDB 解决方案还是 LDAP。这个概念由 Puppet (其中称为"外部节点分类器")调整,并以类似的方式工作。
清单源
有关要合并到当前清单组中的云或其他脚本的信息,从而自动填充组、主机以及有关这些组和主机的变量。
作业
自动化控制器启动的许多后台任务之一,这通常是实例化作业模板来启动 Ansible playbook。其他类型的作业包括清单导入、从源控制进行项目同步或管理清理操作。
作业详情
运行特定作业的历史记录,包括其输出和成功/失败状态。
作业分片
请参阅 分布式作业。
任务模板
Ansible playbook 以及启动它所需的一组参数的组合。如需更多信息,请参阅 作业模板。
JSON
JSON 是基于文本的格式,用于根据 JavaScript 对象语法表示结构化数据。Ansible 和自动化控制器使用 JSON 从远程模块返回数据。这可让使用任何语言编写的模块,而不只是 Python 编写的模块。
Mesh(网格)
描述由节点组成的网络。节点之间的通信通过 TCP、UDP 或 Unix 套接字等协议在传输层建立。
另请参阅 节点。
元数据
身份验证后,用于在外部系统中查找 secret 的信息。用户在将外部凭证链接到目标凭证字段时提供此信息。
节点
节点对应于实例数据库模型或 /api/v2/instances/
端点中的条目,是参与集群或网格的机器。统一作业 API 报告 controller_node
和 execution_node
字段。执行节点是作业运行的位置,以及作业和服务器功能之间的控制器节点接口。
节点类型 | 描述 |
---|---|
控制 | 运行持久服务的节点,并将作业委托给混合节点和执行节点。 |
混合 | 运行持久服务和执行作业的节点。 |
hop | 仅用于跨网格转发。 |
执行 | 用于运行从控制节点交付的作业的节点(从用户的 Ansible 自动化提交的作业) |
通知模板
通知类型的实例(电子邮件、Slack 、Webhook 等),其名称、描述和定义的配置。
通知
通知(如 Email、Slack 或 Webhook)在通知模板中定义名称、描述和配置。例如,当作业失败时,将使用通知模板定义的配置发送通知。
通知
任务注册更改事件并通知处理器任务在 play 结束时需要运行另一个操作。如果处理程序由多个任务通知,它仍然仅运行一次。处理程序按照列出的顺序运行,而不是按照通知的顺序运行。
机构(Organization)
用户、团队、项目和清单的逻辑集合。机构是对象层次结构中的最高级别。
Organization Administrator(机构管理员)
具有修改机构成员资格和设置权限的用户,包括在该机构中创建新用户和项目。机构管理员也可以向该机构内的其他用户授予权限。
权限
分配给用户和团队的权限集,它提供读取、修改和管理项目、清单和其他对象的能力。
Play
一个 play 在由主机指定符选择的一组主机(通常由组选择,但有时由主机名 glob 选择)与那些主机上运行的任务之间的映射最小,以定义这些系统执行的角色。playbook 是 play 的列表。playbook 中可以有一个或多个 play。
Playbook
一个 Ansible playbook。有关更多信息,请参阅 Ansible playbook。
policy
策略指定实例组的行为方式以及任务的执行方式。
项目
自动化控制器中代表 Ansible playbook 的逻辑集合。
角色
角色是 Ansible 和自动化控制器中的机构单元。将角色分配给一组主机(或一组组或主机模式等)意味着它们实施特定的行为。角色可以包含应用变量值、任务和处理程序,或者这些因素的组合。由于与角色关联的文件结构,角色成为可重新分发的单元,允许您在 playbook 或其他用户之间共享行为。
Secret 管理系统
用于安全存储并控制对令牌、密码、证书、加密密钥和其他敏感数据的访问的服务器或服务。
调度
作业应自动运行的日期和时间日历。
分片作业
请参阅 分布式作业。
源凭证
链接到目标凭证字段的外部凭证。
Sudo
Ansible 不需要 root 登录,因为它是无守护进程的,因此不需要 root 级别守护进程(可能是敏感环境中的安全问题)。Ansible 可以登录并执行嵌套在 sudo
命令中的许多操作,并可处理无密码和基于密码的 sudo。在以 sudo
模式运行时,可以使用 Ansible 复制、模板 和 获取 模块来实现一些通常无法使用 sudo
的操作(如 scp
文件传输)。
超级用户
具有编辑系统中任何对象权限的服务器的管理员,无论它是否与任何机构相关联。超级用户可以创建机构和其他超级用户。
问卷调查
在作业启动时由作业模板询问的问题,可在作业模板上配置。
目标凭证
一个非外部的凭证,它带有一个输入字段,用来链接到外部凭证。
Team
具有关联用户、项目、凭证和权限的机构子部门。团队提供了一种方式来实现基于角色的访问控制方案,并跨机构委派职责。
用户
具有相关权限和凭证的操作器。
Webhook
Webhook 支持应用程序之间的通信和信息共享。它们用于响应推送到 SCM 的提交以及启动作业模板或工作流模板。
工作流作业模板
由任何作业模板组合、项目同步和清单同步组成的集合,将它们链接在一起,以便以单个单元的形式执行。
YAML
人类可读的语言,通常用于编写配置文件。Ansible 和自动化控制器使用 YAML 定义 playbook 配置语言和变量文件。YAML 具有最小的语法,非常干净,用户可以轻松地。它是配置文件和人类的数据格式,但也是机器可读。YAML 在动态语言社区中很常见,格式具有可用于多种语言序列化的库。示例包括 Python、Perl 或 Ruby。