17.2. tripleo-container-manage molecule 场景
molecule 用于测试 tripleo_container_manage 角色。下面显示了一个 molecule 默认清单:
使用方法
Red Hat OpenStack 17.0 仅支持此角色中的 Podman。Docker 支持是路线图。
Molecule Ansible 角色执行以下任务:
-
收集由 TripleO Heat 模板生成的容器配置数据。此数据用作数据源。如果容器已经由
Molecule管理,无论其 present 状态如何,配置数据将根据需要重新配置容器。 -
管理
systemd关闭文件。它创建TripleO 容器 systemd服务,在关闭或启动节点时需要服务排序。它还管理netns-placeholder服务。 删除需要或需要重新配置的容器。它使用名为
needs_delete ()的自定义过滤器,它有一组规则来确定是否需要删除容器。-
如果容器不由
tripleo_ansible管理,则容器不会被删除,或者容器config_id与输入 ID 不匹配。 -
如果容器没有
config_data,或者容器具有与输入中不匹配数据的config_data,则容器将被删除。请注意,当容器被删除时,角色还会禁用并删除systemd服务和 healtchecks。
-
如果容器不由
按照
start_order容器配置定义的特定顺序创建容器,默认值为 0。-
如果容器是
exec,则运行一个专用的playbook,使用execsasync以便可以同时运行多个 exec。 -
否则,在 async 中使用
podman_container来创建容器。如果容器有一个重启策略,则会配置systemd服务。如果容器有健康检查脚本,则会配置systemd healthcheck服务。
-
如果容器是
注意
tripleo_container_manage_concurrency 参数默认设置为 1,而值高于 2 的值可能会公开 Podman 锁定的问题。
playbook 示例: