AlmaLinux / Hardware-Certification-Suite

2 stars 5 forks source link

Readme

LTS - local testing server SUT - system under tests

Configure LTS

Example SUT IP address: 192.168.244.7

  1. Install Ansible
    yum --enablerepo=epel install ansible

  2. Add key
    ssh-keygen -t rsa

  3. Add a key to SUT, a comma after the IP address is required
    ansible all -i 192.168.244.7, -m authorized_key -a "user=root key='{{ lookup('file', '/root/.ssh/id_rsa.pub') }}' path=/root/.ssh/authorized_keys manage_dir=no" --ask-pass

  4. Check connection with SUT, comma after IP address is required
    ansible all -i 192.168.244.7, -m ping -u root

How to add a new test

Clone repository cd ~ && git clone "https://LOGIN@gerrit.cloudlinux.com/a/hardware-certification"

Create your test directory in the ~/hardware-certification/tests folder, for example example.

Test directory structure for automated tests

|- tests/example
|-- roles
|--- main.yml - Ansible tasks
|-- README.md - instructions for working with the test when manually launched
|-- run_test.sh - script to run the test

Test directory structure for interactive tests

|- tests/example
|-- step1.yml - sub playbook with interactive prompts
|-- step2.yml - sub playbook with interactive prompts
|-- stepx.yml - sub playbook with interactive prompts
|-- README.md - instructions for working with the test when manually launched

Each automated test should store test results and utility output in a file name.log in the root directory of the repository ~/hardware-certification/logs/. You can get the folder path from a variable {{ lts_logs_dir }}.

Add your automated tasks that perform the test to the ~/hardware-certification/automated.yml file and interactive playbook to the ~/hardware-certification/interactive.yml file located in the root of the repository.

Each test must be marked with a tag, for example tags: test_example

Add your test settings to the ~/hardware-certification/vars.yml file if required

All tests are always run on LTS. How to run a test on LTS.

To run all automated tests:

To run all interactive tests: Run tests on the LTS, comma after IP address is required
ansible-playbook -i 192.168.244.7, interactive.yml

How to run locally to test play

Run command:
ansible-playbook -c local -i 127.0.0.1, automated.yml

Variables

Tests can be configured via ~/hardware-certification/vars.yml file.

Test tags

You can run automated tests by tag. For example:
ansible-playbook -i 192.168.244.7, automated.yml --tags cpu

Available tags:

Interactive tests can't be run separately.

Results

The ansible output will display information about each test. If there are errors, the tests will be colored red.

Summary information will display the test result. Notice the ignored=0 value. If it is > 0, the test has failed.
The value of failed is always 0, due to skipping failed tests for further sequential execution.
Example: 127.0.0.1 : ok=9 changed=7 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1

TIPS