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