A.2. 容器化可组合服务
以下参数适用于所有容器化可组合服务。
puppet_config
本节是嵌套的键值对,利用 puppet 驱动创建配置文件。所需的参数包括:
- puppet_tags
-
用于通过 Puppet 生成配置文件的 Puppet 资源标签名称。仅使用命名的配置资源来生成文件。任何指定标签的服务都会包含文件, concat,file_line,augeas,cron 附加到该设置的默认标签。示例:
keystone_config
- config_volume
- 为该服务生成配置文件的卷名称(目录)。使用此位置将挂载绑定到正在运行的 Kolla 容器中进行配置。
- config_image
- 用于生成配置文件的 docker 镜像的名称。这通常是运行时服务使用的相同容器。有些服务共享一组通用配置文件,这些文件在通用基本容器中生成。
- step_config
- 此设置控制用于通过 Puppet 创建 docker 配置文件的清单。以下 Puppet 标签和此清单一起使用,以便为该容器生成配置目录。
kolla_config
在容器中创建 Kolla 配置的映射。格式从配置文件的绝对路径开始,并将它用于以下子参数:
- 命令
- 容器启动时要运行的命令。
- config_files
-
服务配置文件(
源
)和容器(st )的位置,然后再启动服务之前。另外,还包括在容器中合并或替换这些文件的选项(
合并
),是否要保留文件权限和其他属性(preserve_properties
)。 - 权限
-
为容器上某些目录设置权限。需要
路径
、所有者
和组。您还可以以递归方式应用权限(递归
)。
以下是 keystone 服务的 kolla_config
参数示例:
kolla_config: /var/lib/kolla/config_files/keystone.json: command: /usr/sbin/httpd -DFOREGROUND config_files: - source: "/var/lib/kolla/config_files/src/*" dest: "/" merge: true preserve_properties: true /var/lib/kolla/config_files/keystone_cron.json: command: /usr/sbin/crond -n config_files: - source: "/var/lib/kolla/config_files/src/*" dest: "/" merge: true preserve_properties: true permissions: - path: /var/log/keystone owner: keystone:keystone recurse: true
docker_config
传递给 docker-cmd
hook 的数据,以便在每个步骤中配置容器。
-
step_0
- 按 hiera 设置生成的容器配置文件。 step_1
- Load Balancer configuration- 裸机配置
- 容器配置
step_2
- Core Services (Database/Rabbit/NTP/etc.)- 裸机配置
- 容器配置
step_3
- 早期 OpenStack 服务设置(Ringbuilder 等)- 裸机配置
- 容器配置
step_4
- General OpenStack Services- 裸机配置
- 容器配置
- Keystone 容器发布初始化(租户、服务、端点创建)
step_5
- 服务激活(Pacemaker)- 裸机配置
- 容器配置
YAML 使用一组参数来定义容器容器在每个步骤中运行,以及与每个容器关联的 Docker 设置。例如:
docker_config: step_3: keystone: start_order: 2 image: *keystone_image net: host privileged: false restart: always healthcheck: test: /openstack/healthcheck volumes: *keystone_volumes environment: - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
这会创建一个 keystone
容器,并使用对应的参数来定义详细信息,包括要使用的镜像、网络类型和环境变量。
docker_puppet_tasks
提供直接驱动 docker-puppet.py
工具的数据。该任务仅在集群内(不能在各个节点上)内执行一次,对于初始化 keystone 端点和数据库用户等内容所需的多个 Puppet 代码片段来说也很有用。例如:
docker_puppet_tasks: # Keystone endpoint creation occurs only on single node step_3: config_volume: 'keystone_init_tasks' puppet_tags: 'keystone_config,keystone_domain_config,keystone_endpoint,keystone_identity_provider,keystone_paste_ini,keystone_role,keystone_service,keystone_tenant,keystone_user,keystone_user_role,keystone_domain' step_config: 'include ::tripleo::profile::base::keystone' config_image: *keystone_config_image
host_prep_tasks
这是一个 ansible 代码片段,可在节点主机上执行,为容器化服务准备它。例如,您可能需要在创建期间挂载容器中的特定目录。
fast_forward_upgrade_tasks
Ansible 代码片段,帮助进行快进的升级过程。此片段添加到组合的 playbook 中。每个操作都使用标签来定义 步骤和
发行版本
这些步骤
通常遵循以下阶段:
-
step=0
- Check running services -
step=1
- 停止服务 -
step=2
- 停止集群 -
step=3
- Update repositories -
step=4
- Database backups -
step=5
- Pre-package update commands -
step=6
- Package updates -
第=7 步
- Post-package 更新命令 -
step=8
- Database updates -
step=9
- Verification
标签
与一个发行版本对应:
-
tag=ocata
- OpenStack Platform 11 -
tag=pike
- OpenStack Platform 12 -
tag=queens
- OpenStack Platform 13