Zuul CI Roles

apache-logs-conf

准备 Apache 配置和日志以进行分阶段处理

确保 Apache 配置文件和日志文件在与 Linux 发行版无关的位置可用。请注意,这依赖于硬链接,分阶段目录必须位于与日志和配置文件相同的分区中。

角色变量

stage_dir
默认值: {{ ansible_user_dir }}

基础分阶段目录。

capture-performance-data

生成用于分阶段处理的性能日志

从 mysql、systemd、Apache 日志和其他系统部分捕获使用信息,并在分阶段目录中生成 performance.json 文件。

角色变量

stage_dir
默认值: {{ ansible_user_dir }}

基础分阶段目录

devstack_conf_dir
默认值: /opt/stack

基础 DevStack 目标目录

debian_suse_apache_deref_logs

在 Debian/Suse 位置找到的 Apache 日志

redhat_apache_deref_logs

在 Red Hat 位置找到的 Apache 日志

capture-system-logs

分阶段处理多种系统类型日志

分阶段处理多种不同的日志/报告:- iptables 的快照 - 可用磁盘空间 - pip[2|3] freeze - 已安装的软件包 (dpkg/rpm) - ceph、openswitch、gluster - 核心转储 - dns 解析器 - listen53 - 服务 - unbound.log - 弃用消息

角色变量

stage_dir
默认值: {{ ansible_user_dir }}

基础分阶段目录。

devstack-ipv6-only-deployments-verification

验证 IPv6-only 部署中的所有地址

此角色需要在运行测试的 playbook 中调用。此角色验证 DevStack 侧的 IPv6 设置,并验证 DevStack 是否使用所有 IPv6 地址进行部署。此角色在运行测试之前调用,以便如果缺少任何 IPv6 设置,部署可以尽早失败。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

devstack-project-conf

准备 OpenStack 项目配置以进行分阶段处理

准备所有相关的配置文件以进行分阶段处理。这有助于避免分阶段处理整个 /etc。

角色变量

stage_dir
默认值: {{ ansible_user_dir }}

基础分阶段目录。

export-devstack-journal

导出 DevStack 服务的日志文件

这执行许多日志收集服务

  • 以本机格式导出 systemd 日志

  • 对于每个 DevStack 服务,将日志导出到文本文件中,文件名为 screen-*,以保持与旧版本的兼容性,因为 DevStack 服务过去在屏幕会话中运行并单独记录。

  • 导出包含内核和 sudo 消息的 syslog 风格的文件,以保持与旧版本的兼容性。

将输出写入 stage_dirlogs/ 子目录。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。它用于获取 log-start-timestamp.txt,用于过滤 systemd 日志。

stage_dir
默认值: {{ ansible_user_dir }}

基础分阶段目录。

fetch-devstack-log-dir

从 DevStack 日志目录获取内容

将日志从每台主机复制回 Zuul 执行器。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

get-devstack-os-environment

读取 DevStack 通过 openrc 为指定用户和项目设置的 OS_* 变量,并将它们导出为 os_env_vars 事实。

警告:此角色旨在用作非统一的 python-<service>client 作业的移植帮助,因为这些客户端不使用 clouds.yaml,就像 openstackclient 一样。当这些客户端及其作业被弃用和删除时,或者当新代码能够直接从 clouds.yaml 读取时,此角色也应被删除。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

openrc_file
默认值: {{ devstack_base_dir }}/devstack/openrc

生成的 openrc 文件的位置。

openrc_user
默认值: admin

应检索其凭据的用户。

openrc_project
默认值: admin

项目(openrc_user 是其一部分),应检索其访问数据。

openrc_enable_export
默认值: false

设置为 true 以导出 os_env_vars。

orchestrate-devstack

编排 DevStack

在多节点场景中运行 DevStack,一个控制器节点和一组子节点。

此角色的原因是,其他存储库中的作业可以在其 playbook 中运行 DevStack,而无需重新实现编排逻辑。

“run-devstack” 角色可用于在没有编排的情况下运行 DevStack。

此角色首先设置控制器和 CA,然后将 CA 数据推送到子节点并在那里运行 DevStack。此角色的唯一要求是控制器 inventory_hostname 为“controller”,并且所有子节点都定义在一个名为“subnode”的组中。

此角色需要从使用“线性”策略的 playbook 调用。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

process-stackviz

生成 stackviz 报告。

使用 subunit 和 dstat 数据生成 stackviz 报告,使用嵌入在测试镜像中的 stackviz 存档。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

stage_dir
默认值: "{{ ansible_user_dir }}"

可以找到输入数据并生成输出的分阶段目录。

zuul_work_dir
默认值: {{ devstack_base_dir }}/tempest

要使用的目录。它必须是完全限定的路径。

run-devstack

运行 DevStack

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

setup-devstack-cache

设置 DevStack 缓存目录

如果节点具有 DevStack 镜像文件的缓存,则将其复制到位。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

devstack_cache_dir
默认值: /opt/cache

包含缓存文件的目录。

setup-devstack-log-dir

设置 DevStack 日志目录

在临时磁盘分区上创建一个日志目录,以节省根设备上的空间。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

setup-devstack-source-dirs

设置 DevStack 源代码目录

确保基础目录存在,然后将源代码仓库移动到其中。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

devstack_sources_branch
默认值: None

要设置的目标分支(如果可用)。

setup-stack-user

设置 stack 用户

创建 stack 用户,设置其主目录,并允许其使用 sudo。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

devstack_stack_home_dir
默认值: {{ devstack_base_dir }}

stack 用户的家目录。

setup-tempest-user

设置 tempest 用户

创建 tempest 用户并允许其使用 sudo。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

start-fresh-logging

在所有主机上重新启动日志记录

重新启动 syslog,以便系统日志仅包含作业的输出。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

sync-controller-ceph-conf-and-keys

同步控制器和子节点之间的 ceph 配置和密钥

只需将 /etc/ceph 的内容从控制器复制到子节点。

sync-devstack-data

同步多节点配置的 DevStack 数据

同步任何数据文件,包括用于启用 TLS 时使用的证书。此角色必须在控制器上执行,并且会将数据推送到所有子节点。

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

devstack_data_base_dir
默认值: {{ devstack_base_dir }}

数据的基础 DevStack 目录/。例如,当多个 DevStack 执行(即 grenade)共享相同的数据目录时,这很有用。

write-devstack-local-conf

写入 DevStack 用于的 local.conf 文件

角色变量

devstack_base_dir
默认值: /opt/stack

DevStack 基础目录。

devstack_local_conf_path
默认值: {{ devstack_base_dir }}/devstack/local.conf

local.conf 文件的路径。

devstack_localrc
类型: dict

一个字典,包含要写入 local.conf 文件的 localrc 部分的变量。这些值(字符串)可能包含 bash shell 变量,并且会按顺序排列,以便后续条目使用的变量先出现。

作为特例,变量 LIBS_FROM_GIT 将根据作业中出现的 required-projects 列表以及正在测试的变更的项目自动构建。要指示 devstack 从源代码而不是 pypi 安装库,只需将该库添加到作业的 required-projects 列表中。要覆盖自动生成的值,请在 devstack_localrc 中将 LIBS_FROM_GIT 设置为所需的值。

devstack_local_conf
类型: dict

一个复杂的参数,由嵌套字典组成,这些字典组合起来形成 local_conf 文件的元部分。顶层是阶段的字典,然后是文件名的字典,再然后是节的字典,最后包含这些节中 INI 文件条目的键值对。

此字典中的键是 devstack 阶段。

devstack_local_conf{}.[phase]
类型: dict

此字典中的键是此阶段的文件名。

devstack_local_conf{}.[phase]{}.[filename]
类型: dict

此字典中的键是此文件中 INI 部分。

devstack_local_conf{}.[phase]{}.[filename]{}.[section]
类型: dict

这是一个键值对字典,它构成 INI 文件的此部分。

devstack_base_services
默认值: {{ base_services | default(omit) }}
类型: list

一个启用的基本服务列表。可以通过 devstack_services 变量添加或删除此列表中的服务。如果 basedevstack_services 中设置为 False,则忽略此设置。

devstack_services
类型: dict

一个字典,将服务名称映射到布尔值。如果布尔值为 false,则将为服务名称发出 disable_service 行。如果为 true,则将发出 enable_service。其他所有值都将被忽略。

特殊键 base 可用于启用或禁用默认启用的基本服务集。如果找到 base,它将在所有其他键之前处理。如果其值为 False,将发出 disable_all_services;如果其值为 True,则将通过 ENABLED_SERVICES 发出 devstack_base_services 中的服务。

devstack_plugins
类型: dict

一个字典,将插件名称映射到 git 仓库位置。如果位置是非空字符串,则将为插件名称发出 enable_plugin 行。

如果插件声明对另一个插件的依赖关系(通过插件设置文件中的 plugin_requires),此角色将自动以正确的顺序发出 enable_plugin 行。

tempest_plugins
类型: list

与 tempest 一起安装的 tempest 插件列表。

将此值列表与基本 devstack 目录结合使用,以填充 TEMPEST_PLUGINS 变量。如果变量已经存在,则其值不会更改。