14.3. 对单个容器执行操作
注意
该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
您可以使用 tripleo-container-manage
角色来管理所有容器或特定容器。如果要管理特定容器,您必须找到容器部署步骤和容器配置 JSON 文件的名称,以便可以利用自定义 Ansible playbook 针对特定容器进行管理。
先决条件
- 成功安装 undercloud。更多信息请参阅 第 4 章 在 undercloud 上安装 director。
步骤
-
以
stack
用户的身份登录 undercloud。 查找
overcloudrc
凭证文件:$ source ~/overcloudrc
-
找到容器部署步骤。您可在
/var/lib/tripleo-config/container-startup-config/step_{1,2,3,4,5,6}
目录中找到每个步骤的容器配置。 -
找到容器的 JSON 配置文件。您可以在相关的
step_*
目录中找到容器配置文件。例如,第 1 步中的 HAProxy 容器的配置文件为/var/lib/tripleo-config/container-startup-config/step_1/haproxy.json
。 编写合适的 Ansible playbook。例如,要替换 HAProxy 容器镜像,请使用以下示例 playbook:
- hosts: localhost become: true tasks: - name: Manage step_1 containers using tripleo-ansible block: - name: "Manage HAproxy container at step 1 with tripleo-ansible" include_role: name: tripleo-container-manage vars: tripleo_container_manage_systemd_order: true tripleo_container_manage_config_patterns: 'haproxy.json' tripleo_container_manage_config: "/var/lib/tripleo-config/container-startup-config/step_1" tripleo_container_manage_config_id: "tripleo_step1" tripleo_container_manage_config_overrides: haproxy: image: registry.redhat.io/tripleomaster/<HAProxy-container>:hotfix
有关您可以在
tripleo-container-manage
角色中使用的变量的更多信息,请参阅 第 14.4 节 “tripleo-container-manage 角色变量”。运行 playbook:
(overcloud) [stack@director]$ ansible-playbook <custom_playbook>.yaml
如果要在不应用任何更改的情况下执行 playbook,请在
ansible-playbook
命令中包含--check
选项:(overcloud) [stack@director]$ ansible-playbook <custom_playbook>.yaml --check
如果要在不应用更改的情况下识别 playbook 对容器的更改,请在
ansible-playbook
命令中包含--check
和--diff
选项:(overcloud) [stack@director]$ ansible-playbook <custom_playbook>.yaml --check --diff