Automation hub 入门
将 Red Hat Automation Hub 配置为 Ansible 集合内容的默认服务器
摘要
前言
Red Hat Ansible Automation Hub 为红帽订阅的用户提供了一个途径,以便快速找到并使用红帽及我们的技术合作伙伴支持的内容,以便为最需要的环境提供额外的保证。
Ansible Galaxy 客户端(ansible-galaxy
)通过命令行管理角色和集合。为确保 ansible-galaxy
客户端尽可能使用经过认证且受支持的 Ansible 集合,请更新 ansible.cfg
文件,以使用 Red Hat Automation Hub 作为 Ansible 集合的主要源。
对红帽文档提供反馈
如果您对本文档有任何改进建议,或发现错误,请通过 https://access.redhat.com 联系技术支持来创建一个请求。
第 1 章 Automation hub 和私有自动化中心之间的区别
Red Hat Ansible Automation Platform 使用自动化中心作为自动化内容的中央位置,您可以下载并集成到 Ansible 自动化中。有两种类型的 hub 可用:
- Automation hub
- 由红帽在 Red Hat Hybrid Cloud Console 上托管的 hub,它只包括红帽支持或认证的内容。
- 私有自动化中心
- 这是自托管内容管理系统。您可以使用它来访问和管理所有类型的 Ansible 内容,然后选择哪些 Ansible 内容集合和版本可供您的自动化用户使用。
使用私有自动化中心,您可以访问以下三种类型的内容:
- Red Hat Hybrid Cloud Console 上的自动化中心中包括的红帽认证并提供支持的内容。
- 来自 Ansible Galaxy 的社区内容。
- 由机构自行创建并策展的私有内容,在本地共享。
第 2 章 在自动化中心中中创建 API 令牌
在通过上传或下载集合与 Automation Hub 交互前,您需要创建 API 令牌。Automation Hub API 令牌将您的 ansible-galaxy
客户端与 Red Hat Automation Hub 服务器进行身份验证。
Automation hub 不支持基本身份验证或通过服务帐户进行身份验证。您必须使用令牌管理进行身份验证。
创建 API 令牌的方法因所使用的自动化中心类型而异:
- Automation hub 使用离线令牌管理。请参阅 在自动化中心中创建离线令牌。
- 私有自动化中心使用 API 令牌管理。请参阅在私有自动化中心中创建 API 令牌。
- 如果您使用 Keycloak 验证私有自动化中心,请按照以下步骤 在自动化中心中创建离线令牌。
2.1. 在自动化 hub 中创建离线令牌
在自动化中心中,您可以使用 Token 管理 创建离线令牌。离线令牌是用来保护您的内容的 secret 令牌。
流程
- 进入 Red Hat Hybrid Cloud Console 上的 Ansible Automation Platform。
- 在导航面板中,选择 → 。
- 在离线令牌下,点 。
- 点 图标复制离线令牌。
- 将令牌粘贴到文件中,并存储在安全位置。
离线令牌是用来保护您的内容的 secret 令牌。将您的令牌存储在安全的位置。
离线令牌现在可用于将自动化中心配置为默认集合服务器,或使用 ansible-galaxy
命令行工具上传集合。
您的离线令牌在 30 天不活跃后过期。有关获取新的离线令牌的更多信息,请参阅 保持离线令牌处于活动状态。
2.2. 在私有自动化中心中创建 API 令牌
在私有自动化中心中,您可以使用 API 令牌管理创建 API 令牌。API 令牌是用于保护内容的 secret 令牌。
先决条件
- Red Hat Ansible Automation Platform 的有效订阅凭证。
流程
- 登录到您的私有自动化中心。
- 在导航面板中,选择 → 。
- 点 。
- 要复制 API 令牌,请点 图标。
- 将 API 令牌粘贴到文件中,并存储在安全位置。
API 令牌是用于保护内容的 secret 令牌。将 API 令牌存储在安全位置。
API 令牌现在可用于将自动化中心配置为默认集合服务器,或使用 ansible-galaxy
命令行工具上传集合。
API 令牌不过期。
2.3. 保持离线令牌处于活跃状态
离线令牌在 30 天不活动后过期。您可以通过保持离线令牌保持活跃状态来保持离线令牌。
当应用程序代表用户执行操作时,保持离线令牌处于活跃状态时很有用;例如,这允许应用程序在用户离线时执行常规数据备份。
如果离线令牌过期,则必须 获取一个新令牌。
流程
运行以下命令防止您的令牌过期:
curl https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token -d grant_type=refresh_token -d client_id="cloud-services" -d refresh_token="{{ user_token }}" --fail --silent --show-error --output /dev/null
curl https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token -d grant_type=refresh_token -d client_id="cloud-services" -d refresh_token="{{ user_token }}" --fail --silent --show-error --output /dev/null
Copy to Clipboard Copied!
第 3 章 将 Red Hat Automation Hub 配置为内容的主要来源
要访问 Ansible 认证的内容集合,请将 Red Hat Automation Hub 配置为您的主要内容源。您可以使用命令行界面 (CLI) 或 Web 控制台配置自动化中心。
3.1. 使用 CLI 将 Red Hat Automation Hub 配置为主要内容源
要配置自动化中心,您必须更新 ansible.cfg
配置文件。默认情况下,ansible.cfg
配置文件位于 /etc/ansible/
目录中。使用自动化中心,您可以访问经过认证的支持的集合。
先决条件
- 您已获取了自动化中心服务器的 API 令牌。如需更多信息请参阅创建 Red Hat Automation hub API 令牌。
创建新令牌会撤销以前为自动化中心生成的所有令牌。更新使用之前令牌创建的任何自动化控制器或脚本,使其包含新令牌。
流程
-
打开
ansible.cfg
文件。 -
在
[galaxy]
部分下添加server_list
选项,并包含一个或多个服务器名称。 为每个服务器名称创建一个新部分:
[galaxy_server._<server_name>_]
[galaxy_server._<server_name>_]
Copy to Clipboard Copied! 为每个服务器名称设置
url
选项:https://<server_fully_qualified_domain_name>/api/galaxy/
https://<server_fully_qualified_domain_name>/api/galaxy/
Copy to Clipboard Copied! -
可选:设置
auth_url
选项。社区 Ansible Galaxy 不需要auth_url
。 - 为 Automation Hub 服务器设置 API 令牌。
示例
以下 ansible.cfg
配置文件示例演示了如何按优先顺序配置多个服务器。Automation Hub 配置为您的主源和 Ansible Galaxy 服务器作为辅助源:
ansible.cfg
[galaxy] server_list = automation_hub, my_org_hub [galaxy_server.automation_hub] url=https://console.redhat.com/api/automation-hub/content/published/ auth_url=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token token=my_ah_token [galaxy_server.my_org_hub] url=https://automation.my_org/api/galaxy/content/rh-certified/ username=my_user password=my_pass
[galaxy]
server_list = automation_hub, my_org_hub
[galaxy_server.automation_hub]
url=https://console.redhat.com/api/automation-hub/content/published/
auth_url=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token
token=my_ah_token
[galaxy_server.my_org_hub]
url=https://automation.my_org/api/galaxy/content/rh-certified/
username=my_user
password=my_pass
要防止 301 重定向,所有 API URL 必须以尾部斜杠 / 结尾。
现在,已将自动化中心配置为您的主服务器。您可以开始下载并安装支持的集合。
3.2. 使用 Web 控制台将 Red Hat Automation hub 配置为主要内容源
要配置自动化中心,您必须创建一个凭证并将其添加到机构的 Galaxy Credentials 字段中。使用自动化中心,您可以访问经过认证的支持的集合。
先决条件
- 您已获取了自动化中心服务器的 API 令牌。如需更多信息请参阅创建 Red Hat Automation hub API 令牌。
创建新令牌会撤销以前为自动化中心生成的所有令牌。更新使用以前的令牌创建的自动化控制器或脚本。
流程
- 进入您的自动化控制器。
创建一个新凭据。
- 进入到 → 。
- 点 。
- 在 Name 字段中输入新凭证的名称。
- 可选:输入描述信息,再输入或选择与凭证关联的机构名称。
- 在 Organization 下,选择要为其使用凭证的机构。
- 选择 Ansible Galaxy/Automation Hub API Token 作为凭证类型。
- 在 Type Details 下,输入前面创建的 Galaxy Server URL, Authentication Server URL, 和 API Token。
- 点击 。
从机构的 Galaxy Credentials 字段选择您创建的凭证。
- 进入 → 。
- 选择您要添加 Galaxy 凭证的机构。
- 点 。
- 在 Galaxy Credentials 下,点 图标。
- 选择您为自动化中心创建的凭证,并将其放在列表的开头。
- 可选: 如果您有二级内容源,如 Ansible Galaxy,请在您为自动化中心创建的凭证后放置此凭证。
- 点 。
- 点击 。
验证
若要验证凭据,可通过选择项目并点
图标来更新基于该凭据的现有源控制管理(SCM)项目。- 进入到您的项目存储库。
-
选择一个使用
collections/requirements.yml
文件的项目。 - 点 图标,以更新该项目。
如果项目的 Status 是 Successful,则代表凭证有效。
现在,已将自动化中心配置为您的主服务器。您可以开始下载并安装支持的集合。
第 4 章 为您的私有自动化中心配置用户访问
您可以通过创建具有特定权限的用户组来管理用户对 Automation Hub 中的内容和功能的访问。
4.1. 实施用户访问
用户访问权限基于管理系统对象(用户、组、命名空间)的权限,而不是单独为特定用户分配权限。
您可以为您创建的组分配权限。然后,您可以为这些组分配用户。这意味着,组中的每个用户都有分配给该组的权限。
在私有的自动化中心中创建的组,其范围可以包括系统管理员所需进行的任务,包括负责管理内部集合、配置用户访问和存储库管理。这些组可具有组织并将内部开发的内容上传到私有自动化中心的权限。
4.1.1. 私有自动化中心的默认用户访问
安装自动化中心时,系统会在 Admin 组中自动创建默认的 admin 用户。Admin 组被分配了系统中的所有权限。
以下小节描述了与将访问私有自动化中心的用户关联的工作流,并为其提供达到其目标所需的权限。有关所有可用权限的完整列表和描述,请查看权限参考表。
4.1.2. 在私有自动化中心中创建新组
您可以创建并为私有自动化中心中的组分配权限,该组可让用户访问系统中指定的功能。默认情况下,自动化中心中的 Admin 组分配了所有权限,并在初始登录时可用。使用安装私有自动化中心时创建的凭证。
如需更多信息,请参阅开始使用 自动化中心指南中的在私有自动化中心中创建新组。
4.1.3. 为组分配权限
默认情况下,新组没有任何分配的权限。您可以为私有自动化中心中的组分配权限,以便用户访问系统中的特定功能。
您可在首次创建一个组,或编辑现有的组,来添加或删除权限
如需更多信息,请参阅 Automation hub 入门指南中的将权限分配给组。
4.1.4. 创建新用户并为其授予相关权限
在私有自动化中心中创建用户后,您可以通过将它们添加到组中来授予他们的权限。每个可以访问系统中与分配权限级别关联的功能的组。
先决条件
- 您有 user 权限,可以在私有自动化中心中创建用户。
流程
- 登录到您的私有自动化中心。
- 在导航面板中,选择 → 。
- 点 。
- 在字段中输入信息。Username 和 Password 是必需的。
- 可选: 要将用户分配给组,点 Groups 字段并从组列表中选择。
- 点击 。
新用户现在显示在 Users 页面的列表中。
4.1.5. 创建一个超级用户
如果要在团队间分配管理,您可以在私有自动化中心中创建超级用户。
先决条件
- 您必须是一个超级用户。
流程
- 登录到您的私有自动化中心。
- 在导航面板中,选择 → 。
- 选择您要成为超级用户的用户。此时会显示该用户的用户详情。
- 在 User type 下,选择 Super User。
用户现在具有 Super 用户权限。
4.1.6. 将用户添加到现有组中
您可以在创建组时将用户添加到组中。但是,您也可以手动将用户添加到现有组中。
如需更多信息,请参阅开始使用自动化中心指南中的 向现有组添加用户。
4.1.7. 为内容 Curator 创建新组
您可以在私有自动化中心中创建一个新组,旨在支持机构中的内容策展。这个组可以贡献内部开发的集合,以便在私有自动化中心中发布。
为帮助内容开发人员创建命名空间并将其内部开发的集合上传到私有自动化中心,您必须首先创建和编辑组并分配所需的权限。
先决条件
- 在私有自动化中心中具有管理权限,并可创建组。
流程
- 登录到您的私有自动化中心。
- 在导航面板中,选择 → ,再点 。
- 在界面中输入 Content Engineering 作为组的 Name,再点 。您已创建了新组,组页将打开。
- 在 Permissions 选项卡中,点 。
- 在 Namespaces 下,为 Add Namespace、Upload to Namespace 和 Change Namespace 添加权限。
点击
。使用您分配的权限创建新组。然后您可以将用户添加到组中。
- 点 Groups 页面中的 Users 选项卡。
- 点 。
- 选择用户并点 。
4.1.8. 自动化中心权限
权限提供一组定义的操作,每个组都可以对给定对象执行。根据此表中描述的权限,为您的组确定所需的访问权限级别。
对象 | 权限 | 描述 |
---|---|---|
集合命名空间 | 添加命名空间 Upload to namespace(上传到命名空间) 更改命名空间 删除命名空间 | 具有这些权限的组可以创建、上传集合和删除命名空间。 |
collections | 修改 Ansible repo 内容 删除集合 | 具有此权限的组可以执行以下操作: 使用 Approval 功能在仓库间移动内容。 认证或拒绝将内容从 staging 移到 published 或 rejected 存储库的功能。 删除集合。 |
users | 查看用户 Delete user(删除用户) Add user(添加用户) 更改用户 | 具有这些权限的组群可以在私有自动化中心中管理用户配置和访问。 |
groups | View group(查看组) Delete group(删除组) Add group(添加组) 更改组 | 具有这些权限的组可以在私有自动化中心中管理组配置和访问。 |
collection remotes | 更改集合远程 查看集合远程 | 具有这些权限的组可以通过导航到 → 来配置远程存储库。 |
containers | 更改容器命名空间权限 更改容器 更改镜像标签 创建新容器 推送到现有容器 删除容器仓库 | 具有这些权限的组可以在私有自动化中心中管理容器存储库。 |
remote registries | 添加远程 registry 更改远程 registry 删除远程 registry | 具有这些权限的组可以添加、更改或删除添加到私有自动化中心的远程 registry。 |
task management | 更改任务 删除任务 查看所有任务 | 具有这些权限的组可以管理添加到私有自动化中心中的 Task Management 中的任务。 |
4.1.9. 从私有自动化中心删除用户
当您删除用户帐户时,用户的名称和电子邮件将从私有自动化中心永久删除。
先决条件
- 在私有自动化中心中具有 user 权限。
流程
- 登录到私有自动化中心。
- 在导航面板中,选择 → 。
- 单击 以显示当前用户列表。
- 点您要删除的用户旁边的 ⋮ 图标,然后点 。 icon
- 在警告消息中点 以永久删除用户。
4.2. 为您的私有自动化中心启用只查看访问
通过启用 view-only 权限,您可以授予用户查看私有自动化 hub 上的集合或命名空间的访问权限,而无需登录。view-only 权限允许您与未授权的用户共享内容,同时限制他们查看或下载源代码的能力。它们没有编辑私有自动化中心上的任何内容的权限。
要为私有自动化中心启用 view-only 访问,您必须编辑 Red Hat Ansible Automation Platform 安装程序中的清单文件。
-
如果要安装 Ansible Automation Platform 的新实例,请将
automationhub_enable_unauthenticated_collection_access
和automationhub_enable_unauthenticated_collection_download
参数添加到您的清单(inventory)
文件中,以及其他安装配置: -
如果您要更新现有的 Ansible Automation Platform 安装使其包含 view-only 访问权限,请将
automationhub_enable_unauthenticated_collection_access
和automationhub_enable_unauthenticated_collection_download
参数添加到inventory
文件中,然后运行setup.sh
脚本以应用更新:
流程
导航到安装程序。
- 捆绑的安装程序
cd ansible-automation-platform-setup-bundle-<latest-version>
$ cd ansible-automation-platform-setup-bundle-<latest-version>
Copy to Clipboard Copied! - 在线安装程序
cd ansible-automation-platform-setup-<latest-version>
$ cd ansible-automation-platform-setup-<latest-version>
Copy to Clipboard Copied!
-
使用文本编辑器打开
清单
文件。 将
automationhub_enable_unauthenticated_collection_access
和automationhub_enable_unauthenticated_collection_download
参数添加到清单文件,并把它设置为True
,如下例所示:[all:vars] automationhub_enable_unauthenticated_collection_access = True automationhub_enable_unauthenticated_collection_download = True
[all:vars] automationhub_enable_unauthenticated_collection_access = True
1 automationhub_enable_unauthenticated_collection_download = True
2 Copy to Clipboard Copied! -
运行
setup.sh
脚本。安装程序启用对私有自动化中心的 view-only 权限。
验证
安装完成后,通过尝试在不登录的情况下查看私有自动化中心中的内容,验证您在私有自动化中心上具有 view-only 权限。
- 进入您的私有自动化中心。
- 在登录屏幕中,单击 。
验证您是否能够在自动化 hub 上查看内容,如命名空间或集合,而无需登录。
第 5 章 将内容上传到 Red Hat Automation hub
Automation Hub 分发经过认证并支持的从合作伙伴提供的集合。每个集合包括模块、角色、插件和文档等内容。您第一次将集合上传到自动化中心时,我们的合作伙伴工程团队会对其进行检查以进行认证。
您可以使用自动化中心用户界面或 ansible-galaxy
客户端上传或删除集合来管理您的集合。
5.1. 将集合上传到自动化中心
如果要共享您与其余 Ansible 社区创建的集合,您可以将其上传到自动化中心。将集合上传到自动化中心时,我们的合作伙伴工程团队会对其进行检查以进行认证。
您可以使用自动化中心用户界面或 ansible-galaxy
客户端上传集合。
先决条件
-
为 Red Hat Automation Hub 配置了
ansible-galaxy
客户端。 - 您至少有一个命名空间。
-
您已通过
ansible-test sanity
运行所有内容。 - 您是一个红帽连接合作伙伴。请参阅红帽合作伙伴连接以了解更多信息。
流程
使用自动化中心用户界面:
- 在导航面板中,选择 → 。
- 在 My namespaces 选项卡中,找到您要上传集合的命名空间。
- 点 View collections,再点 。
- 在 New collection modal 中,点 。在您的系统中找到该文件。
- 点 。
使用 ansible-galaxy
客户端:
输入以下命令:
ansible-galaxy collection publish path/to/my_namespace-my_collection-1.0.0.tar.gz --api-key=SECRET
ansible-galaxy collection publish path/to/my_namespace-my_collection-1.0.0.tar.gz --api-key=SECRET
Copy to Clipboard Copied!
5.2. 删除自动化中心中的集合
如果集合不依赖于其他集合,您可以通过删除不需要的集合来进一步管理集合。集合上的 Dependencies 选项卡显示使用当前集合的其他集合列表。
先决条件
- 要删除的集合没有与其他集合的依赖关系。
- 您有 Delete Collections 权限。
流程
- 登录到您的私有自动化中心。
- 在导航面板中,选择 → 。
在删除集合前,请检查它是否有依赖的集合:
- 点该集合的 Dependencies 选项卡。如果为空,您将能够删除集合。如果 Dependencies 选项卡不为空,您必须先删除这些依赖项,然后才能删除集合。
- 点要删除的集合。
点 图标 需要,然后选择一个选项:
- 删除整个集合,以删除此集合中的所有版本。
删除版本 [number] 以删除此集合的当前版本。您可以使用 Version 下拉菜单更改版本。
注意如果所选集合有任何与其他集合的依赖项,则这些操作将被禁用,直到您删除这些依赖项为止。点 Dependencies 选项卡查看要删除的依赖项列表。
- 当确认窗口打开时,验证集合或版本号是否正确,然后选择 Delete。