- 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.logwhich contains testbed information, VM information and test case resultsfull_debug.logwhich contains testing debug logsfailed_tasks.logwhich contains failed tasks logsknown_issues.logwhich 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 Desktop 15 SP3 and later | ✔️ | ✔️ | |
| SUSE Linux Enterprise Server 15 SP3 and later | ✔️ | ✔️ | |
| SUSE Linux Enterprise Server 16.0 | ✔️ | ✔️ | |
| 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, 2025 | ✔️ | ✔️ | |
| 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 | ✔️ | ✔️ | |
| openSUSE Leap 16.0 | ✔️ | ✔️ | |
| 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 Broadcom Compatibility Guide.
- Latest (Release v3.2):
- projects.packages.broadcom.com/gos_cert/ansible-vsphere-gos-validation:latest
- Release v3.2:
- projects.packages.broadcom.com/gos_cert/ansible-vsphere-gos-validation:v3.2
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