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