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