Documentation

32. 术语表

临时(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)”模式类似。用户应该注意,此模式不考虑意外的命令失败或级联效应(这与其他系统中的类似模式一样)。使用该模式可以了解可能发生的情况,但不能代替临时(stage)环境。

容器组

容器组是实例组的一种类型,用于指定在运行任务的 Kubernetes 或 OpenShift 集群中置备 pod 的配置。这些 pod 是按需置备的,仅存在于 playbook 运行期间。

凭证

身份验证详情,Tower 使用它来针对机器启动任务、与清单源同步以及从版本控制系统中导入项目内容。

凭证插件

Python 代码,包含外部凭证类型、其元数据字段以及与 secret 管理系统交互所需代码的定义。

分布式作业

由作业模板、清单和分片大小组成的作业(job)。当执行分布式作业时,该作业会将每个清单划分为多个“分片大小(slice size)”的区块,然后用于运行较小的作业分片。

外部凭证类型

Tower 的受管凭证类型,用于使用 secret 管理系统进行身份验证。

事实

“事实(fact)”是发现的有关远程节点的情况。虽然可以在 playbook 和模板中像使用变量一样使用它们,但事实是推断的情况,而不是设置的情况。当通过在远程节点上执行内部设置模块来运行 play 时,会自动发现事实。您不必显式调用设置模块,它会运行,但是如果不需要该模块,也可以将其禁用以节省时间。为了方便从其他配置管理系统切换过来的用户,事实模块还从 ‘ohai’ 和 ‘facter’ 工具(如果已安装)拉取 (pull) 事实,这两种工具分别是来自 Chef 和 Puppet 的事实库。

分叉(fork)

Ansible 和 Tower 以并行方式与远程节点对话,并可以多种方式设置并行级别:在创建或编辑任务模板时,通过传递 --forks,或通过编辑配置文件中的默认值。默认值是非常保守的 5 个 fork,但是如果您有大量的 RAM,您可以轻松地将它设置为类似 50 的值来增加并行性。

Ansible 中的一组主机,其中多个主机可能存在于单个清单中。

组变量

group_vars/ 文件是与清单文件共存在目录中的文件,具有以每个组命名的可选文件名。这是放置为给定组提供的变量(特别是复杂的数据结构)的便利位置,因此这些变量不必嵌入到清单文件或 playbook 中。

处理程序(handler)

处理程序与 Ansible playbook 中的常规任务类似(请参阅“任务”),但只有在任务包含一个“notify”指令且表明该指令做出更改时才运行。例如,如果更改了配置文件,则引用配置文件模板操作的任务可能会通知服务重启处理程序。这意味着只有在需要重启服务时,服务才可以退回。处理程序可以用于服务重启以外的其他事务,但服务重启最为常见。

主机

Tower 管理的系统。可能包含物理、虚拟、基于云的服务器或其他设备。操作系统实例就是一个典型的主机。主机包含在清单中,有时称为“节点(node)”。

主机指定符

Ansible 中的每个 Play 会将一系列任务(定义系统的角色、目的或顺序)映射到一组系统。每个 play 中的这个“hosts:”指令通常称为主机指定符。它可以选择一个系统、多个系统、一个或多个组,甚至在一个组中且不在另一组中的一些主机。

实例组

在集群环境中使用的实例的组。实例组提供根据策略对实例进行分组的能力。

清单(inventory)

可对其启动任务的主机集合。

清单脚本

一个非常简单的程序(或复杂的程序),它查找主机、主机的组成员资格以及外部资源(SQL 数据库、CMDB 解决方案或者类似 LDAP 的协议)的变量信息 。这个概念来源于 Puppet(被称为“外部节点分类器”),工作方式差类似。

清单源

有关应当合并到当前清单组中的云或其它脚本的信息,从而可自动填充组、主机以及有关这些组和主机的变量。

作业(job)

Tower 启动的许多后台任务之一,它通常是实例化作业模板来启动 Ansible playbook。其他类型的作业包括清单导入、使用源控制对项目进行同步或管理清理操作。

作业详情

运行特定作业的历史记录,包括其输出和成功/失败状态。

作业分片

请查看 Distributed Job

任务模板

Ansible playbook 以及启动它所需的一组参数的组合。

JSON

Ansible 和 Tower 使用 JSON 从远程模块返回数据。这允许使用任何语言编写的模块,而不只是 Python 编写的模块。

Mesh

Describes a network comprising of nodes. Communication between nodes is established at the transport layer by protocols such as TCP, UDP or Unix sockets. See also, node.

元数据

身份验证后,用于在外部系统中查找 secret 的信息。用户在将外部凭证链接到目标凭证字段时提供该信息。

Node

A node corresponds to entries in the instance database model, or the /api/v2/instances/ endpoint, and is a machine participating in the cluster / mesh. The unified jobs API reports controller_node and execution_node fields. The execution node is where the job runs, and the controller node interfaces between the job and server functions.

Node Type

Description

Control

Nodes that run persistent Ansible Automation Platform services, and delegate jobs to hybrid and execution nodes

Hybrid

Nodes that run persistent Ansible Automation Platform services and execute jobs

Hop

Used for relaying across the mesh only

Execution

Nodes that run jobs delivered from control nodes (jobs submitted from the user's Ansible automation)

通知模板

通知类型的实例(电子邮件、Slack 、Webhook 等),其名称、描述和定义的配置。

通知

通知模板的清单;例如,任务失败时使用通知模板定义的配置发送通知。

通知

任务注册更改事件并通知处理器任务在 play 结束时需要运行另一个操作的动作。如果多个任务通知了同一个处理器,它仍将只运行一次。处理程序会按照列出顺序运行,而不是按照通知的顺序运行。

机构(Organization)

用户、团队、项目和清单的逻辑集合。Tower 对象层次结构的最高级别为机构。

机构管理员

拥有修改机构成员资格和设置权限的 Tower 用户,包括在该机构内创建新用户和项目。机构管理员也可以向该机构内的其他用户授予权限。

权限

分配给用户和团队的权限集,它提供读取、修改和管理项目、清单和其他 Tower 对象的能力。

Play

Playbook 是 play 的列表。一个 play 至少是一组由主机指定符选择的(通常由组选择,但有时由主机名 glob 选择)主机和那些主机上运行的任务之间的映射,用来定义那些系统要执行的角色。playbook 中可以有一个或多个 play。

Playbook

Ansible playbook。如需更多信息,请参阅http://docs.ansible.com/。

策略

策略指定实例组的行为方式以及任务的执行方式。

项目

Tower 中的 Ansible playbook 的逻辑集合。

角色

角色是 Ansible 和 Tower 中的机构单元。将角色分配给一组主机(或一系列组或主机模式等)意味着它们应当实现特定的行为。角色可能包括应用某些变量值、某些任务以及某些处理程序或者只是一个或多个这些事项。因为与角色关联的文件结构,角色会成为可重新分配的单元,以便您可以在 playbook 中或与其他用户共享行为。

Secret 管理系统

用于安全存储并控制对令牌、密码、证书、加密密钥和其他敏感数据的访问的服务器或服务。

调度

作业应自动运行的日期和时间日历。

分片作业

请查看 Distributed Job

源凭证

链接到目标凭证字段的外部凭证。

Sudo

Ansible 不需要使用 root 进行登陆,因为它没有守护进程,也就不需要 root 级守护的进程(在一个敏感的环境中,root 一级的守护进程可能会造成安全问题)。Ansible 可以登录并使用 sudo 命令执行多个操作,并可同时使用无密码和基于密码的 sudo。在以 sudo 模式运行时,某些通常无法使用 sudo``(如 ``scp 文件传输)的操作可以通过 Ansible 的 copytemplatefetch 模块实现。

超级用户(Superuser)

Tower 服务器的管理员,无论其是否与任何机构相关联,都有权限编辑系统中的任何对象。超级用户可以创建机构和其他超级用户。

问卷调查

在作业启动时由作业模板询问的问题,可在作业模板上配置。

目标凭证

一个非外部的凭证,它带有一个输入字段,用来链接到外部凭证。

团队(team)

具有关联用户、项目、凭证和权限的机构子部门。团队提供了一种方法来实现基于角色的访问控制方案,并跨机构委派责任。

用户

具有相关权限和凭证的 Tower 操作员。

Webhook

Webhook 允许应用程序间的通信和信息共享。它们用于响应推送到 SCM 的提交以及启动作业模板或工作流模板。

工作流作业模板

由任何作业模板组合、项目同步和清单同步组成的集合,将它们链接在一起,以便以单个单元的形式执行。

YAML

Ansible 和 Tower 使用 YAML 来定义 playbook 配置语言和变量文件。YAML 的语法简单、非常清洁且方便用户浏览。它适用于配置文件及用户使用,但也可被机器读取。YAML 在动态语言社区中很受欢迎,格式具有可用于多种语言(Python、Perl、Ruby 等)序列化的库。