...
One or more nodes, typically a wolf/boro node, provisioned with a supported OS snapshot
Code Block [user@wolf-ssh-2 ~]$ nodemgr install --profile daos_ci-el8.35 --nodes=<node>
Verify password-less ssh access between all nodes
Code Block ssh user@<node>
If passwordless ssh is working, you will not be prompted for your password. If you are prompted, please take a review your /wiki/spaces/DCO/pages/9497319397. If you still have an issue please submit a ticket to DCO.
Enable sudo access for your account on each node
Log in to your node(s) as root
Code Block ssh root@<node>
You will be prompted for the root password. If you do not have this password, please contact your team lead to get it.
Create a sudoers file for your user:
Code Block [root@<node> ~]# visudo /etc/sudoers.d/<username>
Include the following in this file (replace <username> w/ your username):
Code Block <username> ALL=(ALL) NOPASSWD:ALL
Once this is finished, you should be able to ssh in as your user, then use sudo, or sudo -i for everything moving forward.
Install avocado (LTS release >= 69) on the node from which you will be running the tests
RPM installation (RECOMMENDED; currently supported on CentOS 8; others coming soon)
Code Block $ sudo dnf install python3-avocado{,-plugins-{output-html,varianter-yaml-to-mux}}
Pip install
code
Info |
---|
If RPMs do not exist for your OS use pip to install avocado
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
Additional steps may be required per OS. See ci/provisioning/post_provision_config_nodes_*.sh for details.
|
RPM Install Steps
Obtain DAOS RPMs - multiple options
Build them from sources
Download them from a PR or recent successful master PR
E.g. https://build.hpdd.intel.com/job/daos-stack/job/daos/job/master/5259/artifact/artifacts/
Replace “5259“ with your PR number
Select the appropriate OS sub-directory
Use the repositories in the snapshot image to find the RPM version
Code Block $ sudo dnf list --showduplicates daos
Install DAOS RPMs on each node
The following command will install the daos, daos-client, daos-server, and daos-tests RPMs on one host (similar to CI).
Code Block $ sudo dnf install ~/rpm/daos{,-{client,server,tests}}-<version>.rpm
Optionally install other RPMs as needed for testing
Latest master builds can be found at https://build.hpdd.intel.com/job/daos-stack/
Can also use the repositories in the snapshot image
Code Block $ sudo dnf list --showduplicates ior
...
Running functional tests with RPMs
Set python environment for avocado modules, e.g.,
Code Block export PYTHONPATH=/usr/lib64/python3.6/site-packages/
Note: /usr/ directory in the above path might be /usr/local, if the python modules were not installed by superuser.
Apply any python test code changes in the RPM install path (owned by root)
Code Block sudo vi /usr/lib/daos/TESTING/ftest/<dir>/<file> sudo cp <modified_file> /usr/lib/daos/TESTING/ftest/<dir>
Run the test
When running with unique server and client nodes
Code Block cd /usr/lib/daos/TESTING/ftest ./launch.py -crispa -ts <server_nodes> -tc <client_nodes> <test_tag_or_file>
When running with nodes that can perform any role
Code Block cd /usr/lib/daos/TESTING/ftest ./launch.py -crispa -ts <all_nodes> <test_tag_or_file>
View results
Code Block less ~/avocado/job-results/latest/job.log
...
Info |
---|
If a test requests more hosts than are available the ‘-d’ o’ launch.py command line option can be used to run the test on less servers/clients w/o modifying the test yaml file. |