Related: rhbz#1961087
4.2 KiB
Anaconda installer gating tests.
Additionally to the tests (tests*.yml
) contains also playbooks for runnning the tests from localhost on a remote test runner. The runner can be provisioned by linchpin
. See run_tests_remotely.sh script as an example of the playbooks usage.
Running the tests remotely
Test runner
The remote test runner can be provided in any way. To be used by the playbooks:
- It has to allow ssh access as a remote user which is allowed to become root, using the ssh key configured by
private_key_file
in ansible config. By default theremote_user
for running the tests isroot
. - Test runner host name / IP should be configured for the playbooks in
gating_test_runner
group of remote_config/inventory.
The runner can be provisioned in a cloud by linchpin as in the script:
- The cloud credentials need to be configured in the file and profile reffered by
credentials
variable of topology. So the credentials fileclouds.yml
should contain profileci-rhos
. The file can be placed to~/.config/linchpin
directory or the directory containing the file can be set bylinchpin
--creds-path
option. - The ssh key is set by
keypair
value of linchpin topology file. It should correspond to the key defined in ansible config. The topology file also defines image to be used for test runner. - The script populates the inventory for playbooks with inventory generated by linchpin.
- The script tries to find out which remote user should be used (
root
,fedora
,cloud-user
) and updates ansible config with the value.
Test runner environment
Test runner environment is prepared by prepare-test-runner.yml
playbook:
- It is possible to add repositories to the runner by defining
test_runner_repos
variable. It can be useful for example for adding a repository with scratch build to be tested or adding repositories for test dependencies missing on remote runner. - Empty directory for storing test artifacts is created on test runner based on the
artifacts
variable.
Test playbooks configuration
Running on the remote runner:
Normally the testing system runs all the tests*.yml
playbooks.
WARNING:
The test playbooks are run on localhost
(test runner provided by the testing system). They change the test runner environment (eg install packages) so most probably you don't want to run them as they are - on your local host.
The script updates hosts
value of the test playbooks to use remote host from gating_test_runner
group as test runner (using a playbook).
If you want to run the tests playbooks separately make sure the hosts
variable in the test playbook is set to remote test runner (eg. gating_test_runner
).
The test playbooks need artifacts
variable supplied as can be seen in the script. (Normally testing system takes care of this.)
Installation repositories:
Repositories (base and additional) used for installation test are defined in repos configuration. Their URL can be either defined explicitly or looked up in specified repositories of the test runner.
dirinstall test
There is a text and a vnc variant of dirinstall test. Both will run all the kickstarts found in roles/dirinstall/templates/kickstarts.
The results
The results and logs are fetched from remote host into local host directory defined by artifacts
variable passed to the playbooks. This value can be passed also to the script with -a
option.