Upload files to 'docs/guidelines' #3

Merged
alangm merged 10 commits from alangm-openqa-manual-install into main 2024-05-02 14:50:01 +00:00
Showing only changes of commit 70021c8c5f - Show all commits

View File

@ -1,10 +1,11 @@
--- ---
title: Manual Install of OpenQA for rockylinux title: Manual Install of OpenQA for rockylinux
author: Alan Marshall author: Alan Marshall
revision_date: 2024-04-27 version: v1.0
revision_date: 2024-04-28
rc: rc:
prod: Rocky Linux prod: Rocky Linux
level: Draft level: Issue
--- ---
@ -27,7 +28,7 @@ Some pages use queries to select what should be shown. The query parameters are
## Step-by-step Install Guide ## Step-by-step Install Guide
OpenQA can be installed only on a Fedora (or OpenSUSE) server or workstation. The following install procedure was tested on Fedora 40 Server. OpenQA can be installed only on a Fedora (or OpenSUSE) server or workstation. The following install procedure was tested on Fedora 40 Server. You can use either a local terminal or an ssh login from another host on the lan.
``` ```
# install Packages # install Packages
@ -129,18 +130,35 @@ sudo init 6
# post tests and view progress on webui # post tests and view progress on webui
cd /var/lib/openqa/tests/rocky/ cd /var/lib/openqa/tests/rocky/
sudo ./fifloader.py -c -l templates.fif.json
sudo openqa-cli api -X POST isos ISO=Rocky-9.3-x86_64-minimal.iso ARCH=x86_64 DISTRI=rocky FLAVOR=minimal-iso VERSION=9.3 BUILD="$(date +%Y%m%d.%H%M%S).0"-minimal sudo openqa-cli api -X POST isos ISO=Rocky-9.3-x86_64-minimal.iso ARCH=x86_64 DISTRI=rocky FLAVOR=minimal-iso VERSION=9.3 BUILD="$(date +%Y%m%d.%H%M%S).0"-minimal
sudo openqa-cli api -X POST isos ISO=Rocky-9.3-x86_64-boot.iso ARCH=x86_64 DISTRI=rocky FLAVOR=boot-iso VERSION=9.3 BUILD="$(date +%Y%m%d.%H%M%S).0"-boot sudo openqa-cli api -X POST isos ISO=Rocky-9.3-x86_64-boot.iso ARCH=x86_64 DISTRI=rocky FLAVOR=boot-iso VERSION=9.3 BUILD="$(date +%Y%m%d.%H%M%S).0"-boot
and for a full build (this will post 95 jobs)
alangm marked this conversation as resolved Outdated

Could you make this a Markdown link?

Could you make this a Markdown link?

Done, see below.
Thanks Lukas!

Done, see below. Thanks Lukas!
sudo openqa-cli api -X POST isos ISO=Rocky-9.3-x86_64-dvd.iso ARCH=x86_64 DISTRI=rocky FLAVOR=dvd-iso VERSION=9.3 BUILD="$(date +%Y%m%d.%H%M%S).0"-dvd-iso
sudo openqa-cli api -X POST isos ISO=Rocky-9.3-x86_64-dvd.iso ARCH=x86_64 DISTRI=rocky FLAVOR=universal VERSION=9.3 BUILD="$(date +%Y%m%d.%H%M%S).0"-universal
``` ```
At this point your system is configured for single vm deployment and it can be used as such. Pause here if you wish to get some practice using openqa before progressing further (recommended). You can watch progress of these tests on the webui on any browser on the same lan as the test host at
```http://<ip_addr_of_test_host>/tests```
If you click "login" in the top right corner you will be able to control tests from the webui.
At this point the multi-vm tests will fail or be skipped. This is because at the moment your system is configured for single vm deployment and it can be used as such. Pause your installation here if you wish to get some practice using openqa before progressing further (recommended).
Installation of facilities for multi-vm testing, which is substantially more complicated, will be described in this document in a later revision (watch this space). Installation of facilities for multi-vm testing, which is substantially more complicated, will be described in this document in a later revision (watch this space).
### Helper Scripts ### Helpers
[see here](https://github.com/rocky-linux/os-autoinst-distri-rocky/tree/develop/scripts) #### Createhdds
Createhdds is used to prepare .img and .qcow2 files for some of the Rocky tests. If you ran the above procedure you will have noticed that it produces a number of files in /var/lib/openqa/factory/hdd/fixed determined by the files provided [here](https://github.com/rocky-linux/createhdds).
#### openqa-cli
Tests are normally posted using openqa-cli as you have already used above. Test parameters are listed and explained [here](https://github.com/rocky-linux/os-autoinst-distri-rocky/blob/develop/VARIABLES.md)
#### Scripts
see [here](https://github.com/rocky-linux/os-autoinst-distri-rocky/tree/develop/scripts) -
cancel-build.sh is especially useful when you discover that you have initiated a large build and got it wrong... d'oh. cancel-build.sh is especially useful when you discover that you have initiated a large build and got it wrong... d'oh.
### Using Templates ### Using Templates
@ -156,10 +174,12 @@ This section describes how an instance of OpenQA *could* be configured using the
1. Define job groups in 'Job groups' menu for groups of tests 1. Define job groups in 'Job groups' menu for groups of tests
1. Select individual 'Job groups' and decide what combinations make sense and need to be tested 1. Select individual 'Job groups' and decide what combinations make sense and need to be tested
If you followed the install guide above then the cloned Rocky tests from [os-autoinst-distri-rocky](https://github.com/rocky-linux/os-autoinst-distri-rocky) will have pre-configured the admin area of the webUI. You may find it useful when reading the following sections. If you followed the install guide above then the cloned Rocky tests from [os-autoinst-distri-rocky](https://github.com/rocky-linux/os-autoinst-distri-rocky) will have pre-configured the admin area of the webUI. You may find it useful to consult when reading the following sections.
Machines, mediums, test suites and job templates can all set various configuration variables. The job templates within the job groups define how the test suites, mediums and machines should be combined in various ways to produce individual 'jobs'. All the variables from the test suite, medium, machine and job template are combined and made available to the actual test code run by the 'job', along with variables specified as part of the job creation request. Certain variables also influence OpenQAs and/or os-autoinsts own behavior in terms of how it configures the environment for the job. Machines, mediums, test suites and job templates can all set various configuration variables. The job templates within the job groups define how the test suites, mediums and machines should be combined in various ways to produce individual 'jobs'. All the variables from the test suite, medium, machine and job template are combined and made available to the actual test code run by the 'job', along with variables specified as part of the job creation request. Certain variables also influence OpenQAs and/or os-autoinsts own behavior in terms of how it configures the environment for the job.
The configuration is set up from /var/lib/openqa/tests/rocky/templates.fif.json
#### Machines #### Machines
You need to have at least one machine set up to be able to run any tests. Those machines represent virtual machine types that you want to test. Realistically to make tests actually happen, you have to have a number of 'OpenQA workers' connected that can fulfill these specifications. You need to have at least one machine set up to be able to run any tests. Those machines represent virtual machine types that you want to test. Realistically to make tests actually happen, you have to have a number of 'OpenQA workers' connected that can fulfill these specifications.
@ -210,6 +230,8 @@ The scenario definitions within the job groups can be created and configured by
### Needles ### Needles
Needles are very precise and the slightest deviation from the specified display will be detected. This means that every time there is a new release, very small changes occur in layout of displays resulting in many new or modified needles being required. There is always a significant amount of work needed by the Test Team to produce the automatic tests for a new version. Needles are very precise and the slightest deviation from the specified display will be detected. This means that every time there is a new release, very small changes occur in layout of displays resulting in many new or modified needles being required. There is always a significant amount of work needed by the Test Team to produce the automatic tests for a new version.
A very useful feature of the webui is the online needle editor. When a test fails for a missing needle, the needle editor can be activated by clicking the icon and a new needle can be created, usually by copying a similar needle together with the current screenshot. The needle files are saved in the /var/lib/openqa/tests/rocky/needles directory.
### Upstream Documentation ### Upstream Documentation
[Upstream documentation](https://github.com/os-autoinst/openQA/blob/master/docs/Installing.asciidoc) is useful for reference but since it is a mixture of advice and instructions relating to openSUSE and Fedora which have substantial differences between them it is not always clear which are significant for Rocky. However, as an rpm based distribution, Rocky Linux use is loosely related to the [Fedora](https://fedoraproject.org/wiki/OpenQA) version. [Upstream documentation](https://github.com/os-autoinst/openQA/blob/master/docs/Installing.asciidoc) is useful for reference but since it is a mixture of advice and instructions relating to openSUSE and Fedora which have substantial differences between them it is not always clear which are significant for Rocky. However, as an rpm based distribution, Rocky Linux use is loosely related to the [Fedora](https://fedoraproject.org/wiki/OpenQA) version.
@ -258,17 +280,20 @@ scenario
build build
* Different versions of a product as tested, can be considered a "sub-version" of version, e.g. "Build1234"; CAUTION: ambiguity: either with the prefix "Build" included or not * Different versions of a product as tested, can be considered a "sub-version" of version, e.g. "Build1234"; CAUTION: ambiguity: either with the prefix "Build" included or not
#### History (briefly) ### History (briefly)
Openqa started with OS-autoinst: automated testing of Operating Systems Openqa started with OS-autoinst: automated testing of Operating Systems
The OS-autoinst project aims at providing a means to run fully automated tests, especially to run tests of basic and low-level operating system components such as bootloader, kernel, installer and upgrade, which can not easily be tested with other automated testing frameworks. However, it can just as well be used to test firefox and openoffice operation on top of a newly installed OS. The OS-autoinst project aims at providing a means to run fully automated tests, especially to run tests of basic and low-level operating system components such as bootloader, kernel, installer and upgrade, which can not easily be tested with other automated testing frameworks. However, it can just as well be used to test firefox and openoffice operation on top of a newly installed OS.
OpenQA is a test-scheduler and web-front for openSUSE and Fedora using OS-autoinst as a backend. OpenQA is a test-scheduler and web-front for openSUSE and Fedora using OS-autoinst as a backend.
OpenQA originated at openSuse and was adopted by Fedora as the automated test system for their frequent distribution updates. Maintenance activity is fairly intense and is ongoing at various levels of users. OpenQA was adopted by Rocky Linux Test Team as the preferred automated testing system for the ongoing releases of it's distribution. OpenQA originated at openSuse and was adopted by Fedora as the automated test system for their frequent distribution updates. Maintenance activity is fairly intense and is ongoing at various levels of users. OpenQA was adopted by Rocky Linux Test Team as the preferred automated testing system for the ongoing releases of it's distribution.
OpenQA is free software released under the GPLv2 license. OpenQA is free software released under the GPLv2 license.
#### Attribution ### Attribution
This guide is heavily inspired by the numerous upstream documents in which installation and usage of OS-autoinst and OpenQA are described. This guide is heavily inspired by the numerous upstream documents in which installation and usage of OS-autoinst and OpenQA are described.
#### References ### References
Since Rocky Linux use of OpenQA is drawn from upstream Fedora and hence openSUSE this document contains **many** passages which are edited versions of upstream documentation and that use is hereby gratefully acknowledged. As with many open source projects, we build on previous work. Since Rocky Linux use of OpenQA is drawn from upstream Fedora and hence openSUSE this document contains **many** passages which are edited versions of upstream documentation and that use is hereby gratefully acknowledged. As with many open source projects, we build on previous work.
### Revision History
v1.0 - 2024/04/28 - First Issue