3.5. 安装 OpenShift Ansible Broker
您可以安装 OpenShift Ansible Broker,以访问它所提供的服务捆绑包。
OpenShift Container Platform 4 中已弃用 OpenShift Ansible Broker。Operator Framework 和 Operator Lifecycle Manager (OLM) 提供了等效和更好的功能。
先决条件
3.5.1. 关于 OpenShift Ansible Broker
OpenShift Ansible Broker 是 Open Service Broker (OSB) API 的一种实施,可以管理 Ansible playbook 捆绑包 (APB) 定义的应用程序。APB 提供了一个在 OpenShift Container Platform 中定义和发布容器应用程序的方法,它包括构建到带有 Ansible 运行时的容器镜像中的一系列 Ansible playbook。APB 利用 Ansible 创建可自动完成复杂部署的标准机制。
OpenShift Ansible Broker 遵循以下基本工作流:
- 用户使用 OpenShift Container Platform Web 控制台从服务目录请求可用应用程序列表。
- 服务目录从 OpenShift Ansible Broker 请求可用应用程序列表。
- OpenShift Ansible Broker 与定义的容器镜像 registry 通信,以了解有哪些 APB 可用。
- 用户发出置备特定 APB 的请求。
- OpenShift Ansible Broker 通过调用 APB 上的置备方法来履行用户的置备请求。
默认情况下,OpenShift Container Platform 4 中不安装 OpenShift Ansible Service Broker。
3.5.1.1. Ansible playbook 捆绑包
Ansible playbook 捆绑包 (APB) 是一种轻量级应用程序定义,可让您利用 Ansible 角色和 playbook 中的现有投入。
APB 使用含有指定 playbook 的简单目录来执行 OSB API 操作,比如置备和绑定。apb.yml
文件中定义的元数据包含部署过程中要使用的一系列必要和可选参数。
3.5.2. 安装 OpenShift Ansible Service Broker Operator
先决条件
- 已安装服务目录。
流程
以下流程使用 Web 控制台安装 OpenShift Ansible Service Broker Operator。
创建命名空间。
-
在 Web 控制台中导航至 Administration
Namespaces,再点击 Create Namespace。 在 Name 字段中输入
openshift-ansible-service-broker
,在 Labels 字段中输入openshift.io/cluster-monitoring=true
,然后点击 Create。注意命名空间必须以
openshift-
开头。
-
在 Web 控制台中导航至 Administration
创建集群角色绑定。
-
导航到 Administration
Role Bindings,再点击 Create Binding。 - 对于 Binding Type,选择 Cluster-wide Role Binding (ClusterRoleBinding)。
-
对于 Role Binding,在 Name 字段中输入
ansible-service-broker
。 - 对于 Role,选择 admin。
-
对于 Subject,选择 Service Account 选项,再选择
openshift-ansible-service-broker
命名空间,然后在 Subject Name 字段中输入openshift-ansible-service-broker-operator
。 - 点击 Create。
-
导航到 Administration
创建用于连接 Red Hat Container Catalog 的 secret。
-
导航到 Workloads
Secrets。验证是否已选中 openshift-ansible-service-broker
项目。 -
点击 Create
Key/Value Secret。 -
输入
asb-registry-auth
作为 Secret Name。 -
添加名为
username
的 Key 和值为 Red Hat Container Catalog 用户名的 Value。 -
点击 Add Key/Value,再添加名为
password
的 Key 和值为 Red Hat Container Catalog 密码的 Value。 - 点击 Create。
-
导航到 Workloads
-
导航到 Operators
OperatorHub 页面。验证是否已选中 openshift-ansible-service-broker
项目。 - 选择 OpenShift Ansible Service Broker Operator。
- 阅读 Operator 的信息并点击 Install。
- 检查默认选择并点击 Subscribe。
接下来,必须启动 OpenShift Ansible Broker,以便能访问它所提供的服务捆绑包。
3.5.3. 启动 OpenShift Ansible Broker
安装 OpenShift Ansible Service Broker Operator 后,可以按照以下流程启动 OpenShift Ansible Broker。
先决条件
- 已安装服务目录。
- 已安装 OpenShift Ansible Service Broker Operator。
流程
-
在 Web 控制台中导航到 Operators
Installed Operators,再选择 openshift-ansible-service-broker
项目。 - 选择 OpenShift Ansible Service Broker Operator。
- 在 Provided APIs 下,点击 Automation Broker 的 Create New。
在提供的默认 YAML 里的
spec
字段中添加以下内容:registry: - name: rhcc type: rhcc url: https://registry.redhat.io auth_type: secret auth_name: asb-registry-auth
这将引用安装 OpenShift Ansible Service Broker Operator 时创建的 secret,该 secret 允许您连接到 Red Hat Container Catalog。
- 设置其他 OpenShift Ansible Broker 配置选项,再点击 Create。
验证 OpenShift Ansible Broker 是否已启动。
在 OpenShift Ansible Broker 启动后,您可以通过导航到 Catalog
Developer Catalog 并选中 Service Class 复选框来查看可用的服务捆绑包。请注意,可能需要等几分钟后 OpenShift Ansible Broker 才会启动,并且服务捆绑包可供使用。 如果还没有看到这些服务类,您可以检查以下项目的状态:
OpenShift Ansible Broker Pod 状态
-
在 openshift-ansible-service-broker 项目的 Workloads
Pods 页面中,验证名称开头为 asb-
的 Pod 的状态是否为 Running 并且就绪状态是否为 Ready。
-
在 openshift-ansible-service-broker 项目的 Workloads
集群服务代理状态
-
在 Catalog
Broker Management Service Brokers 页面中,验证 ansible-service-broker 服务代理的状态是否为 Ready。
-
在 Catalog
服务目录控制器管理器 Pod 日志
-
在 openshift-service-catalog-controller-manager 项目的 Workloads
Pods 页面中,检查各个 Pod 的日志,并验证是否看到一个含有 Successfully fetched catalog entries from broker
消息的日志条目。
-
在 openshift-service-catalog-controller-manager 项目的 Workloads
3.5.3.1. OpenShift Ansible Broker 配置选项
您可以为 OpenShift Ansible Broker 设置以下选项。
YAML 键 | 描述 | 默认值 |
---|---|---|
| 用于标识代理实例的名称。 |
|
| 代理所处的命名空间。 |
|
| 用于代理的完全限定镜像。 |
|
| 用于代理镜像本身的拉取策略。 |
|
| 用于代理部署的节点选择器字符串。 |
|
| 代理 registry 的 yaml 列表,指定允许用户配置的、代理用于从中发现并提供 APB 镜像的 registry。 | 请参阅默认 registries 数组。 |
| 代理日志的日志级别。 |
|
| APB Pod 的拉取策略。 |
|
| 赋予用于执行 APB 的服务帐户的角色。 |
|
| 是否在 APB 完成后(不论结果如何)删除为运行 APB 而创建的临时命名空间。 |
|
| 是否在 APB 完成后(仅当结果为错误时)删除为运行 APB 而创建的临时命名空间。 |
|
| 代理是否应该在启动时运行它的 bootstrap 例程。 |
|
| 代理 bootstrap 刷新其 APB 清单的时间间隔。 |
|
| 试验性:切换对绑定操作执行 APB 的代理。 |
|
|
代理是否应该在运行 APB 时提升用户的权限。这通常保留为 |
|
| 是否输出代理接收的低级 HTTP 请求。 |
|
registries
的默认数组
- type: rhcc name: rhcc url: https://registry.redhat.io white_list: - ".*-apb$" auth_type: secret auth_name: asb-registry-auth