Skip to content

About

A collection of playbooks and tooling for building labs

Resources

Stars

31 stars

Watchers

6 watching

Forks

Repository files navigation

LabBuilder

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:

  1. build a playbook that calls the roles and tasks to assemble a lab,

  2. build an inventory file that describes a lab and pass it to main.yml

    ansible-playbook -i inventories/lab_mylabblueprint.yml main.yml

requirements

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

Setup

  1. Install ansible, then execute the install-requirements.yml playbook:

    ansible-playbook install-requirements.yml 
    
  2. Configure your virtualization hosting environment variables in the main vars file:

    vars/main.yml
    
  3. Add the ISOs and OVAs for components you intend to deploy to the files folder on the ansible controller

  4. Select or customize a lab blueprint from the inventories folder

  5. 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
    
  6. Run the main.yml playbook to build the lab environment as defined in the blueprint

    ansible-playbook main.yml -i inventories/lab_template.yml
    

using alternate main vars

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

Adding ISO and OVA files

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.

Installation Sources that will be downloaded as needed:

  • pfsense install ISOs
  • Windows Install ISOs
  • Most linux install ISOs

Installation Sources that need to be added manually:

  • 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

PVE Notes

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

Proxmox Compatibility Status

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

About

A collection of playbooks and tooling for building labs

Resources

Stars

31 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages