openSUSE:OpenQA:Setup

跳转到:导航搜索

在 leap 下为本地 openQA 引导 openQA

本指南遵循 openSUSE 下的快速引导,但请记住还有其他方法,例如基于 容器的设置或使用 GitHub Code Spaces。

重要提示:所有这些命令必须以 root 用户身份运行 - openQA 资源存储在 /var/lib/openqa 下,所有者是 geekotest

 zypper in openQA-bootstrap
 ## skip_suse_specifics=1 skip_suse_tests=1 /usr/share/openqa/script/openqa-bootstrap
 /usr/share/openqa/script/openqa-bootstrap

或者,如果需要,可以直接克隆一个作业

 /usr/share/openqa/script/openqa-bootstrap https://openqa.opensuse.org/tests/5110517


引导脚本将安装 openQA 及其所有依赖项,包括 测试发行版的依赖项,如果您想贡献,则需要创建自己的 fork

使用 suse skips 运行引导程序将不会下载测试发行版 (osado),因此您需要自己克隆它,同样对于 needles,您应该 fork https://github.com/os-autoinst/os-autoinst-distri-opensuse/https://github.com/os-autoinst/os-autoinst-needles-opensuse

 cd /var/lib/openqa/share/tests
 git clone https://github.com/<yourfork>/os-autoinst-distri-opensuse/ opensuse
 
 cd /var/lib/openqa/share/tests/opensuse/products/opensuse
 git clone https://github.com/<yourfork>/os-autoinst-needles-opensuse needles

MicroOS 测试设置

MicroOS 和其他发行版使用符号链接,因此我们可以重用很多测试代码

 cd /var/lib/openqa/share/tests
 ln -s opensuse microos
 cd /var/lib/openqa/share/tests/opensuse/products/microos
 ln -s ../opensuse/needles .

防火墙设置

如果您使用不同的主机连接到 openQA 实例,或者希望向其他人提供对 openQA 实例的访问权限,请打开防火墙端口

 firewall-cmd --zone=public --add-service=http --permanent

如果您计划拥有多个 openQA worker(例如两个),并打算使用开发者模式,您还需要打开端口

 ## for VNC when using developer mode
 firewall-cmd --add-port=5991/tcp --permanent
 firewall-cmd --add-port=5992/tcp --permanent

重新加载 firewalld 以应用更改

 firewall-cmd --reload

此时,您应该能够克隆 opensuse 发行版(测试发行版)的作业,一个很好的候选者是 Tumbleweed 的 启动到快照 测试 - 它应该在没有任何问题的情况下通过

 openqa-clone-job --skip-chained-deps https://openqa.opensuse.org/tests/4916400

一旦测试通过,您就可以开始使用 openQA 测试了。

多机器设置

如果您想在双节点机器配置中运行或开发测试,您需要进行一些网络更改,如 openQA 文档中所述

使用以下脚本

 instances=2 ethernet=<your main interface or bridge> bash -x $(which os-autoinst-setup-multi-machine)

将 worker 标记为 tap 兼容(通过添加 tap worker 类)

 cat >> /etc/openqa/workers.ini <<EOF
 [global]
 WORKER_CLASS = qemu_x86_64,tap
 EOF

启用两个 openQA worker 实例

 systemctl enable --now openqa-worker-plain@{1..2}

如果第一个 openQA worker 实例已经运行,则需要重新启动它才能从 workers.ini 中获取新的 tap 功能设置

 systemctl restart openqa-worker-plain@1.service

克隆一个作业,例如 rsync 测试套件,同样以 root 用户身份

 openqa-clone-job --skip-chained-deps https://openqa.opensuse.org/tests/4921097