A collection of playbooks and tooling for building labs
main.yml - provisions labs from inventory files
vars/main.yml - variable related to the lab hosting environment
defaults/ - task level default variables
test_ - playbooks that demonstrate how to use the tasks
2 ways to use this library:
-
build a playbook that calls the roles and tasks to assemble a lab,
-
build an inventory file that describes a lab and pass it to main.yml
ansible-playbook -i inventories/lab_mylabblueprint.yml main.yml
ansible 2.17+ ansible-galaxy collections:
- community.vmware
- community.general
- netapp.ontap
- community.proxmox
python libraries
- pyvmomi
- pycdlib
- pywinrm
- netapp-lib
- proxmoxer
ESXi host(s) vCenter Server
-
Install ansible, then execute the install-requirements.yml playbook:
ansible-playbook install-requirements.yml -
Configure your virtualization hosting environment variables in the main vars file:
vars/main.yml -
Add the ISOs and OVAs for components you intend to deploy to the files folder on the ansible controller
-
Select or customize a lab blueprint from the inventories folder
-
Run the prep.yml playbook to provision any required networking and storage defined in the blueprint
ansible-playbook prep.yml -i inventories/lab_template.yml -
Run the main.yml playbook to build the lab environment as defined in the blueprint
ansible-playbook main.yml -i inventories/lab_template.yml
The default vars related to the lab hosting infrastructure are read from vars/main.yml To load an alternate configuration, store an alternate set of vars in vars/<altconfig>.yml and load it at runtime with:
- -e mainvars=\<altconfig\>.yml
To make this persistent, update this entry in defaults/main.yml:
mainvars: vars/main.yml
The various VM build roles require installation media or OVA files. In some cases these can be downloaded on demand, in other cases they need to be added to the files folder.
ISO files can be prepopulated by copying them into the ISO datastore.
Vendor OVA files need to be staged in the LabBuilder "files" folder.
- pfsense install ISOs
- Windows Install ISOs
- Most linux install ISOs
- RedHat linux ISOs
- VMware ESXi ISO files
- Nested ESXi OVA files
- vCenter OVA files
- NetApp Simulator OVA files
- NetApp ONTAP Select eval OVA files
- NetApp StorageGrid OVA files
- NetApp AIQUM installer files
Most components can now build on PVE hosts, with the following general exceptions:
- Interconnected Serial ports are not configured on PVE hosts
- Shared virtual disks are not built on PVE hosts
| Component | VMware | Proxmox | Notes |
|---|---|---|---|
| centos | YES | YES | |
| windows | YES | YES | |
| pfsense | YES | YES | |
| ESX | YES | YES | |
| Proxmox | YES | YES | |
| Ubuntu | YES | YES | |
| XCP-NG | YES* | NO | experimental: only 8.2.1 on vmware |
| Nested ESXi | YES | NO* | PVE: use ESX (iso) instead |
| AIQUM | YES | YES | Use install_file: (aiqum installer .zip) |
| OTS Eval | YES | YES | |
| SGWS | YES | NO* | PVE: Install StorageGrid on Linux |
| VCENTER | YES | YES* | PVE: requires manual ip/stage2 configuration |
| VSIM | YES | YES* | PVE: HA pairs are rendered as non-ha nodes |
| OVF | YES | No | Generic OVF deployment is not working on PVE |