- Install Ansible on your control machine, please refer to Installing Ansible
- Install Tesseract Open Source OCR Engine for extracting text from screenshots, please refer to Installing Tesseract
- Install required Python libraries in requirements.txt
$ pip install -r requirements.txt
- Install required Ansible collections with latest version in requirements.yml
$ ansible-galaxy install -r requirements.yml
- Log in to local control machine as root or a user in sudoers, which must enable NOPASSWD for all commands
- Git clone project from github to your workspace on control machine.
- Set the parameters required for testing in this file:
vars/test.yml
. - Modify the test cases in test case list file in below default path.
- For Linux testing:
linux/gosv_testcase_list.yml
- For Windows testing:
windows/gosv_testcase_list.yml
- For Linux testing:
- Launch testing using below commands from the same path of
main.yml
.
# For Linux testing:
# you can use below command to use the default variables file "vars/test.yml",
# and default test case list file "linux/gosv_testcase_list.yml"
$ ansible-playbook main.yml
# For Linux or Windows testing:
# you can use below command to set the path of a customized variables file and
# test case list file
$ ansible-playbook main.yml -e "testing_vars_file=/path_to/test.yml testing_testcase_file=/path_to/gosv_testcase_list.yml"
- A new log folder will be created for current test run, which will include log files and files collected in test cases, e.g.,
logs/test-vm/2021-07-06-09-27-51/
. You can find log files:
results.log
which contains testbed information, VM information and test case resultsfull_debug.log
which contains testing debug logsfailed_tasks.log
which contains failed tasks logsknown_issues.log
which lists known issues meet in current test run
- main.yml: Main playbook for guest operating system validation test
- ansible.cfg: User customized Ansible configuration file
- autoinstall: Folder for guest operating system unattend install configuration files
- common: Folder for common tasks called in test cases
- docs: Folder for guide file and known issues
- env_setup: Folder for playbooks or tasks which to prepare or cleanup testing environment
- linux: Folder for playbooks to test Linux guest operating system
- windows: Folder for playbooks to test Windows guest operating system
- plugin: Folder for plugin scripts
- tools: Folder for 3rd-party tools used in test cases
- vars: Folder for variable files used in testing
- changelogs: Folder for changelog of each release
This project supports below scenarios for end-to-end guest operating system validation testing
- Deploy VM and install guest operating system from ISO image
- Deploy VM from an OVA template
- Existing VM with installed guest operating system, which should satisfy below requirments.
- VM has only one network adapter and the network adapter is connected.
- SSH and Python are installed and enabled.
- The vm_python variable in vars/test.yml must be set with correct python path. Or user can set PATH in /etc/environment in guest operating system to include the binary directory path to python.
- The root user should be enabled and permitted to log in through SSH in Linux guest operating system.
- Execute ConfigureRemotingForAnsible.ps1 script in Windows guest operating system in advance.
Guest Operating Systems | Automatic Install from ISO Image | Deploy from OVA Template | Existing VM with Guest Operating System Installed |
---|---|---|---|
Red Hat Enterprise Linux 7.x, 8.x, 9.x | ✔️ | ✔️ | |
CentOS 7.x, 8.x | ✔️ | ✔️ | |
CentOS Stream 8, 9, 10 | ✔️ | ✔️ | |
Oracle Linux 7.x, 8.x, 9.x | ✔️ | ✔️ | |
Rocky Linux 8.x, 9.x | ✔️ | ✔️ | |
AlmaLinux 8.x, 9.x | ✔️ | ✔️ | |
SUSE Linux Enterprise 15 SP3 and later | ✔️ | ✔️ | |
VMware Photon OS 3.0, 4.0, 5.0 | ✔️ | ✔️ | ✔️ |
Ubuntu 20.04 and later | ✔️ | ✔️ | ✔️ |
Flatcar 2592.0.0 and later | ✔️ | ✔️ | |
Debian 10.10 and later, 11.x, 12.x | ✔️ | ✔️ | |
Windows 10, 11 | ✔️ | ✔️ | |
Windows Server 2019, 2022 | ✔️ | ✔️ | |
UnionTech OS Server 20 1050a | ✔️ | ✔️ | |
Fedora 36 Server, Workstation and later | ✔️ | ✔️ | |
ProLinux Server 7.9, 8.5 | ✔️ | ✔️ | |
FreeBSD 13 and later | ✔️ | ✔️ | |
Pardus 21.2 Server,XFCE Desktop and later | ✔️ | ✔️ | |
Pardus 23.x Server,XFCE Desktop | ✔️ | ✔️ | |
openSUSE Leap 15.3 and later | ✔️ | ✔️ | |
BCLinux 8.x | ✔️ | ✔️ | |
BCLinux-for-Euler 21.10 | ✔️ | ✔️ | |
Red Hat Enterprise Linux CoreOS (RHCOS) 4.13 and later | ✔️ | ✔️ | |
FusionOS 22 and 23 | ✔️ | ✔️ | |
Miracle Linux 8.x, 9.x | ✔️ | ✔️ | |
Kylin Linux Advanced Server V10 | ✔️ | ✔️ |
Notes This compatible guest operating systems list is used for this project only. For guest operating system support status on ESXi, please refer to VMware Compatibility Guide.
- Latest (Release v3.1):
- projects.packages.broadcom.com/gos_cert/ansible-vsphere-gos-validation:latest
- Release v3.1:
- projects.packages.broadcom.com/gos_cert/ansible-vsphere-gos-validation:v3.1
Launch testing using Docker image
- Execute below commands in your machine
$ docker pull projects.packages.broadcom.com/gos_cert/ansible-vsphere-gos-validation:latest
$ docker run -it --privileged projects.packages.broadcom.com/gos_cert/ansible-vsphere-gos-validation:latest
- Launch testing in the started container following the steps in this section Steps to Launch Testing