17.2. tripleo-container-manage molecule 场景
molecule
用于测试 tripleo_container_manage
角色。以下显示了一个 移动的
默认清单:
hosts: all: hosts: instance: ansible_host: localhost ansible_connection: local ansible_distribution: centos8
使用方法
Red Hat OpenStack 17.0 仅支持此角色中的 Podman。Docker 支持是参与的。
Molecule
Ansible 角色执行以下任务:
-
收集由 TripleO Heat 模板生成的容器配置数据。这些数据用作数据源。如果容器已经由
Molecule
管理,无论其存在状态,配置数据将根据需要重新配置容器。 -
管理
systemd
关闭文件。它创建TripleO Container systemd
服务,以便在关闭或启动节点时排序服务。它还管理netns-placeholder
服务。 删除未伪造所需的容器或需要重新配置的容器。它使用名为 need
_delete ()
的自定义过滤器,它具有一组规则来确定是否需要删除容器。-
如果容器不是由
tripleo_ansible
管理,或者容器config_id
与输入 ID 不匹配,则不会删除容器。 -
如果容器没有
config_data
,或者容器具有与输入中数据不匹配的config_data
,则容器将被删除。请注意,当删除容器时,该角色还会禁用和删除systemd
服务和 healtchecks。
-
如果容器不是由
按照
start_order
容器配置定义的特定顺序创建容器,其默认值为 0。-
如果容器是一个
exec
,则运行用于execs
的专用 playbook,使用async
来同时运行多个execs
。 -
否则,
podman_container
被用来创建容器。如果容器有一个重启策略
,则会配置systemd
服务。如果容器有一个健康检查脚本,则会配置systemd healthcheck
服务。
-
如果容器是一个
注意
tripleo_container_manage_concurrency
参数默认设置为 1,而设置大于 2 的值可能会公开 Podman 锁定的问题。
playbook 示例:
- name: Manage step_1 containers using tripleo-ansible block: - name: "Manage containers for step 1 with tripleo-ansible" include_role: name: tripleo_container_manage vars: tripleo_container_manage_config: "/var/lib/tripleo-config/container-startup-config/step_1" tripleo_container_manage_config_id: "tripleo_step1"