14.3. 对单个容器执行操作

注意

该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

您可以使用 tripleo-container-manage 角色来管理所有容器或特定容器。如果要管理特定容器,您必须找到容器部署步骤和容器配置 JSON 文件的名称,以便可以利用自定义 Ansible playbook 针对特定容器进行管理。

先决条件

步骤

  1. stack 用户的身份登录 undercloud。
  2. 查找 overcloudrc 凭证文件:

    $ source ~/overcloudrc
  3. 找到容器部署步骤。您可在 /var/lib/tripleo-config/container-startup-config/step_{1,2,3,4,5,6} 目录中找到每个步骤的容器配置。
  4. 找到容器的 JSON 配置文件。您可以在相关的 step_* 目录中找到容器配置文件。例如,第 1 步中的 HAProxy 容器的配置文件为 /var/lib/tripleo-config/container-startup-config/step_1/haproxy.json
  5. 编写合适的 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 角色变量”

  6. 运行 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