23.35. proxmox - Proxmox Install and Configure

The following documentation is for Proxmox Install and Configure (proxmox) content package at version v4.6.0-beta01.97+g1e33864277dc9bbb839f71f1eff994a0c4f05c23.

This content pack manages deployment of Proxmox nodes and configuration for student training labs. At some point in the future, this will likely be broken out in to two content packs.

This content pack utilizes the Debian 10 (Buster) bootenv as a baseline for the Proxmox installation. The Proxmox released “appliance ISO” is not network installable by default, and requires a fair amount of work to rip apart the ISO and rebuild it to make it network installable.

23.35.1. Installation of Proxmox

Installation is performed with the proxmox-buster-install Workflow. This workflow requires the drp-community-content to install Debian 10 (Buster) on the target systems. Configuration of Proxmox is performed via RackN Workflow stages. Please start by reviewing the provided workflow before attempting to rework the workflows for your use case.

The goal of the workflow is to perform initial installation and setup of Proxmox with a basic Virtualized network configuration on top of Proxmox. More advanced operational (i.e. day two) workflow patterns have not been developed yet.

There are some “destroy” workflows or stages that are designed to remove the virtualized infrastructure on top of Proxmox.

Debian 10 prerequisites require human input to the packaging system. To get around this, we utilize the debconf-set-selections mechanism to preseed the answers to those packages (eg Samba and Postfix). Currently the preseed answers are hard coded but future implementations should allow injection of specific override answers.

If you need to rely on Postfix or Samba mechanisms, you may still need to reconfigure these packages to be correct for your use case.

23.35.2. Object Specific Documentation

23.35.2.1. tasks

The content package provides the following tasks.

23.35.2.1.1. proxmox-drp-provision-drp

Provisions the OS for the DRP VMs on the Proxmox host, via the DRP installed on the hypervisor.

23.35.2.1.2. proxmox-lab-accounts

Adds the operator account and group operators, with PVEVMUser role and rights to the /vms resources.

23.35.2.1.3. proxmox-lab-createnodes

Set up the proxmox based lab virtual machines.

23.35.2.1.4. network-convert-interface-to-bridge

This task converts the systems Boot Interface to an bridge enslaved connection.

The DRP Endpoint VMs attach to the Bridge, and they will obtain an IP address either from DCHP or Static IP assignment from the same Layer 3 network that the Hypervisor utilizes.

The template defined in the Param network-convert-interface-to-bridge-template will be expanded in place in this script then rendered to the Hypervisor. This allows for in the field custom configurations that may not have been encompassed in the default Template configuration of this content pack.

23.35.2.1.5. proxmox-debconf-set-selections

This task provides the Debian Package preset configuration input values needed to ensure automated installation of the samba and postfix packages. It also allows the operator to pre-seed and package configurations for any installed value.

Set the proxmox/debconf-selections-template template to the name of your custom settings, which must conform to the debconf-set-selections structure.

The template will be saved on the Machine under /root/proxmox-debconf-set-selections and read in prior to package installation.

23.35.2.1.6. proxmox-iso-modify

The Proxmox ISO is not installable via PXE by default. However, with a relatively simple modification, it can be PXE deployed. This task rebuilds the ISO as a Tar GZ (.tgz) which stages the unmodified ISO image as /proxmox.iso in the boot/ directory, along with the Kernel and InitRD pieces for PXE bootstrap.

23.35.2.1.7. network-simple-bridge-with-addressing

This network configuration creates a bridge device on the hypervisor (typically vmbr0), which the DRP Endpoint Virtual Machines will be attached to.

An IP Subnet must be defined via the proxmox/lab-drp-external-subnet Param, and it will be allocated on the interface defined in the Param proxmox/lab-drp-external-bridge.

IF this method is used, you generally will have to either SSH forward to the Proxmox Hypervisor, install a VPN service of some sort on the Hypervisor, or arrange for your external Networking devices (routers/switches) to route this IP block to the addressable interface of the Proxmox Hypervisor.

The template defined in the Param network-simple-bridge-with-addressing-template will be expanded in place in this script then rendered to the Hypervisor. This allows for in the field custom configurations that may not have been encompassed in the default Template configuration of this content pack.

23.35.2.1.8. proxmox-drp-destroy-drp

Provisions the OS for the DRP VMs on the Proxmox host, via the DRP installed on the hypervisor.

23.35.2.1.9. proxmox-buster-installer

This task sets up and installs latest stable Proxmox VE on top of an already installed Debian 10 (Buster) system. This can be run betweent the finsish-install and complete stage of the RackN provided debian-base` workflow.

This is also used in the proxmox-buster-installer Workflow which installs Debian 10 (Buster) first.

23.35.2.1.10. proxmox-generate-ssh-key

This is a very opinionated and quick SSH Key generation task. It will build ed25519 elyptical curve Public and Private key halves.

The keys will be stored on the the profile specified by the Param proxmox/data-profile.

Once the lab is built, the operator can retrieve the Private Key half and use that in their ssh-agent, or as an ssh -i keyfile ... command line argument.

Warning

This task will overwrite the Param values, possibly losing the keys.

23.35.2.1.11. proxmox-lab-destroy-all-vms

Completely nukes all found Virtual Machines on a proxmox node.

23.35.2.1.12. proxmox-lab-drp-network

Set up DRP endpoint as an ip forwarding/masquerading gateway for the student lab machines. Internal network is also set up, which the student virtual machines will be connected to, that the DRP endpoint provides the IP Forwarding services for.

This is done using the cloud-inite per_once process.

Warning

This task requires/assumes CentOS as the base OS for the DRP Endpoints.

23.35.2.1.13. kvm-enable-nested

Determines if the machine is running Intel or AMD processors and sets up the nested virtualization capability for hypervisors to work inside virtual machines.

23.35.2.1.14. network-add-nat-bridge

This task creates a NAT bridge that will be attached to the proxmox/lab-drp-external-bridge defined bridge.

The NAT bridge will Masquerade for proxmox/lab-nat-subnet.

The template defined in the Param network-add-nat-bridge-template will be expanded in place in this script then rendered to the Hypervisor. This allows for in the field custom configurations that may not have been encompassed in the default Template configuration of this content pack.

Warning

This method appears to not correctly NAT Masquerade traffic correctly. Verify the DRP Endpoints have external network connectivity with this method before relying on it. The post-up/down settings may need to be adjusted.

23.35.2.1.15. proxmox-drp-install

This is a very opinionated and quick DRP install on the Proxmox Hypervisor. Future iterations should utilize the Multi Site Manager to control the DRP endpoint.

23.35.2.1.16. proxmox-lab-destroy-networks

Completely nukes all found bridge networks in the interfaces.d directory. Used as a cleanup task before re-running a build.

23.35.2.1.17. proxmox-lab-destroy-users

Nukes the installed users.

23.35.2.1.18. proxmox-lab-network

Set up the proxmox based lab network enviornment for the target VMs systems.

23.35.2.1.19. proxmox-admin-account

Adds the amdin account with Administrator role and rights to the / resources.

23.35.2.1.20. proxmox-create-storage

Create the local-lvm storage to an existing Proxmox VE server if it doesn’t yet exist.

23.35.2.2. workflows

The content package provides the following workflows.

23.35.2.2.1. proxmox-lab-create

Sets up the bridge networks and creates virtual machine nodes on a proxmox host.

Creates the Proxmox Accounts.

Installs DRP on the Hypervisor if proxmox/install-drp-on-hypervisor is set to true. If DRP is not installed, it is assumed that the DRP VMs will be bootstrapped from an external DRP endpoint, or manually installed with an OS.

23.35.2.2.2. proxmox-lab-destroy

Destroyes the built lab of Virtual Machiens on the Proxmox hypervisor host.

23.35.2.2.3. proxmox-only-install

Starts the Proxmox install. Assumes that the install is on an existing/already built Debian 10 (Buster) system, update the system, add the Proxmox repositories, provide a minimal preseed set of answers (for Samba and Postfix packages), and then do a Proxmox install of the latest stable version.

The special stage flexiflow-buster-install is added to this workflow. By setting the Param proxmox/flexiflow-buster-install to your target machine, the individually listed Tasks will be injected in to the Workflow dynamically.

This is used to flexibly inject network config/reconfig Tasks to allow for dynamic use of the workflow. For example, setting the Param proxmox/flexiflow-buster-install as follow (in JSON example):

["network-convert-interface-to-bridge"]

Will inject that named task to modify the network by converting the Boot interface to be enslaved by the Bridge for Virtual Machines.

Another example (again, in JSON format):

["network-convert-interface-to-bridge","network-add-nat-bridge"]

This will perform the primary boot interface conversion to be enslaved by the bridge, but also bring up a NAT Masquerade bridge to attach machines to.

23.35.2.2.4. proxmox-setup-lab

Sets up the bridge networks and creates virtual machine nodes on a proxmox host.

Creates the Proxmox Accounts.

Installs DRP on the Hypervisor if proxmox/install-drp-on-hypervisor is set to true. If DRP is not installed, it is assumed that the DRP VMs will be bootstrapped from an external DRP endpoint, or manually installed with an OS.

23.35.2.2.5. proxmox-buster-install

Installs Debian 10 (Buster) via standard RackN BootEnv install, using preseed/package based (Debian Installer, d-i) method.

Once install completes, while still inside Debian Installer, update the system, add the Proxmox repositories, provide a minimal preseed set of answers (for Samba and Postfix packages), and then do a Proxmox install of the latest stable version.

The special stage flexiflow-buster-install is added to this workflow. By setting the Param proxmox/flexiflow-buster-install to your target machine, the individually listed Tasks will be injected in to the Workflow dynamically.

This is used to flexibly inject network config/reconfig Tasks to allow for dynamic use of the workflow. For example, setting the Param proxmox/flexiflow-buster-install as follow (in JSON example):

["network-convert-interface-to-bridge"]

Will inject that named task to modify the network by converting the Boot interface to be enslaved by the Bridge for Virtual Machines.

Another example (again, in JSON format):

["network-convert-interface-to-bridge","network-add-nat-bridge"]

This will perform the primary boot interface conversion to be enslaved by the bridge, but also bring up a NAT Masquerade bridge to attach machines to.

23.35.2.2.6. proxmox-install-and-setup

Installs Debian 10 (Buster) via standard RackN BootEnv install, using preseed/package based (Debian Installer, d-i) method.

Once install completes, while still inside Debian Installer, update the system, add the Proxmox repositories, provide a minimal preseed set of answers (for Samba and Postfix packages), and then do a Proxmox install of the latest stable version.

The special stage flexiflow-buster-install is added to this workflow. By setting the Param proxmox/flexiflow-buster-install to your target machine, the individually listed Tasks will be injected in to the Workflow dynamically.

This is used to flexibly inject network config/reconfig Tasks to allow for dynamic use of the workflow. For example, setting the Param proxmox/flexiflow-buster-install as follow (in JSON example):

["network-convert-interface-to-bridge"]

Will inject that named task to modify the network by converting the Boot interface to be enslaved by the Bridge for Virtual Machines.

Another example (again, in JSON format):

["network-convert-interface-to-bridge","network-add-nat-bridge"]

This will perform the primary boot interface conversion to be enslaved by the bridge, but also bring up a NAT Masquerade bridge to attach machines to.

After the base install is completed, the the Lab setup will be performed. This includes (optionally) installing DRP on the Hypervisor, setting up the Lab target machine hypervisor bridges and network, creating Lab accouints, and finally - creating the Virtual Machines within Proxmox.

23.35.2.3. bootenvs

The content package provides the following bootenvs.

23.35.2.3.1. proxmox-6-install

This BootEnv installs the CentOS 7 Minimal operating system. Both x86_64 and aarch64 architectures are supported.

23.35.2.3.2. proxmox-6-rackn-install

This BootEnv installs the Proxmox system. This is a rebuilt image from the stock ISO to support PXE installation process, as the community released ISO does not support PXE by default.

23.35.2.4. params

The content package provides the following params.

23.35.2.4.1. proxmox/vm-machine-storage

Must select one of the Proxmox supported Storage models from the list. The default is megasas.

Additional documentation and details can be found on the Proxmox Wiki, at:

There are 3 types of controllers - ide, sata, and scsi. IDE and Sata do not have any additional configuration options. Anything else listed is a SCSI controller.

23.35.2.4.2. proxmox/data-profile

This parameter defines the Profile name for the profile that will carry dynamic data generated through the install process. For example, the generates SSH key halves will be saved to this profile.

Warning

It is critical that this is set to a unique value if you are maintaining multiple separate Proxmox deployments.

23.35.2.4.3. proxmox/lab-drp-disk

This param is used to define the value of the configuration for type drp virtual machines.

23.35.2.4.4. proxmox/lab-drp-external-interface

The DRP Endpoint virtual machine external interface that should be publically accessible to the operators. This interface should ultimately obtain an IP address that is routable to for the DRP operators.

23.35.2.4.5. proxmox/lab-drp-internal-interface

The virtual machine internal interface that target machines will be connected to. The DRP Endpoint will attach a private interface to this interface as well.

23.35.2.4.6. proxmox/lab-drp-memory

This param is used to define the value of the configuration for type drp virtual machines.

23.35.2.4.7. proxmox/lab-nat-bridge

This param is used to define the name of the Bridge that will be created for attaching Virtual Machines which should be NAT (Masqueraded). It will be attached to the primary bridge defined by proxmox/lab-drp-external-bridge Param.

NAT Masquerading will be set up for proxmox/lab-nat-subnet. There are no DHCP services setup automatically. Either statically assign IP addresses from that range, or enable a DRP Subnet for that range on the proxmox/lab-nat-bridge interface.

The default is vmnat0.

23.35.2.4.8. proxmox/lab-student-vms

This param is used to define the number of student vms to add to each Proxmox host.

23.35.2.4.9. proxmox/strip-kernel

Setting this Param value to true will cause the installer to remove the packages specified by the proxmox/strip-kernel-packages param. This is an optional step and not required for Proxmox installation.

The default value is false (do NOT strip the kernel packages off of the system).

23.35.2.4.10. network-simple-bridge-with-addressing-template

The name of the template to utilize to configure the Network Simple Bridge with Addressing (network-simple-bridge-with-addressing) network configuration.

The default is network-simple-bridge-with-addressing.cfg.tmpl

This will be written to /etc/network/interfaces.d/$BRIDGE where BRIDGE is defined by the Param proxmox/lab-drp-external-bridge.

23.35.2.4.11. proxmox/drp-timeout-kill-switch

This is an emergency control outlet. If this parameter is set to true, and if the machine is in the proxmox-drp-provision-drp task … and in the timeout wait loop in the Shell execution… it will evalute this Param, and exit from the loop with an error code.

This param will be attempted to be removed from the machine prior to exiting with an error message.

23.35.2.4.12. proxmox/lab-drp-cores

This param is used to define the value of the configuration for type drp virtual machines.

23.35.2.4.13. proxmox/lab-drp-external-bridge

This param is used to define the value of the configuration for type drp virtual machines.

23.35.2.4.14. proxmox/lab-machines-memory

This param is used to define the value of the configuration for type machines virtual machines.

23.35.2.4.15. proxmox/strip-kernel-packages

The default package list to remove from the final installed system. The Proxmox install guides optional suggests removing the stock kernel packages. By default, this installer workflow does NOT strip these packages. To strip them, set proxmox/strip-kernel to true, and ensure this Param has the correct set of values for your installation.

The default value is linux-image-amd64 linux-image-4.19*.

Note

If a regex is used, you must single quote protect the regex from the shell interpretting it as a wildcard. See the default value setting for this param as a valid example.

23.35.2.4.16. proxmox/vm-machine-nic

Must select one of the Proxmox supported NIC models from the list. The default is e1000. If you are running ESXi on top of Proxmox, you may need to change this (eg to vmxnet3 - especially for ESXi 7.x).

Additional documentation and details can be found on the Proxmox Wiki, at:

23.35.2.4.17. proxmox/vm-machine-os-type

Must select one of the Proxmox supported OS Type models from the list. The default is l26 (Linux 2.6 or newer kernel).

Additional documentation and details can be found on the Proxmox Wiki, at (search for ‘ostype: <l24’ to find them):

The list of supported OS Types is as follows:

  • other = unspecified OS
  • wxp = Microsoft Windows XP
  • w2k = Microsoft Windows 2000
  • w2k3 = Microsoft Windows 2003
  • w2k8 = Microsoft Windows 2008
  • wvista = Microsoft Windows Vista
  • win7 = Microsoft Windows 7
  • win8 = Microsoft Windows 8/2012/2012r2
  • win10 = Microsoft Windows 10/2016
  • l24 = Linux 2.4 Kernel
  • l26 = Linux 2.6 - 5.X Kernel
  • solaris = Solaris/OpenSolaris/OpenIndiania kernel

23.35.2.4.18. proxmox/storage-name

This param is used to define the Thin Pool and LVM Logical Volume name that will be created on the PVE node.

It defaults to local-lvm, which is used when creating VMs. Ensure these values match.

23.35.2.4.19. proxmox/vm-drp-storage

Must select one of the Proxmox supported Storage models from the list. The default is SCSI megasas.

Additional documentation and details can be found on the Proxmox Wiki, at:

There are 3 types of controllers - ide, sata, and scsi. IDE and Sata do not have any additional configuration options. Anything else listed is a SCSI controller.

23.35.2.4.20. proxmox/flexiflow-buster-install

This Param contains an Array of Strings that will define which tasks to dynamically add to the flexiflow-buster-install workflow on first boot.

This is generally used to specify the network setup stages in the base Hypervisor, before creating any target DRP or Machine VMs. For example, the following tasks set network configuration up:

  • network-simple-bridge-with-external-addressing

To create a simple bridge, with an IP address assigned block to allocate to the “external” interfaces of the DRP Endpoint Virtual Machines. IP addressing for the DRP Endpoints must be provided by the external network (external to the Hypervisor), either via DHCP, or static assignment. The DRP endpoints are essentially bridged to the Hypervisors physical external network.

Another example:

  • network-convert-interface-to-bridge

The above migrates the IP Address on the base interface on the Proxmox Hypervisor to a bridge (identified by the Param proxmox/lab-network-external-interface), the DRP Endpoint VMs external interface are then attached to this bridge.

  • network-add-nat-bridge

The above creates an additional bridge to abstract the connection from the Hypervisors main NIC and Bridge, connecting the DPR Endpoints to this bridge. NAT Masquerading or similar constructs must be used to provide outbound network connectivity to the DRP Endpoints.

Warning

The network-add-nat-bridge current NAT Masquerading mechanisms do not appear to correctly work reliably. This method requires additional testing and development.

23.35.2.4.21. proxmox/iso

The URL that the ISO of the Proxmox install can be found at. This ISO will be modified to include the ISO as /proxmox.iso to enable network install of Proxmox. By default the ISO is not capable of installing via HTTP network path.

23.35.2.4.22. proxmox/lab-machines-boot-order

This param is used to define the value of the configuration for type machines virtual machines.

23.35.2.4.23. proxmox/lab-machines-disk

This param is used to define the value of the configuration for type machines virtual machines.

23.35.2.4.24. proxmox/lab-student-count

This param is used to define the number of students to add to each Proxmox host.

23.35.2.4.25. proxmox/drp-wait-timeout

Changes the timeout wait for all DRP VMs to be created. Some particularly slow hardware may make this process longer than expected. The default value is 600 seconds.

23.35.2.4.26. proxmox/lab-drp-external-domainname

The DNS Domain Name to be used in the Subnet specification for the DRP Endpoints externally accesisble network interface.

Defaults to pve-lab.local

23.35.2.4.27. proxmox/lab-drp-external-subnet

This is an IP address that MUST BE routable inside your organization, to reach the DRP Endpoints allcoated on the Hypervisor. The Subnet will be added on the Hypervisor and each DRP endpoint will be provisioned with an IP address from this network.

IF this method is used, you generally will have to either SSH forward to the Proxmox Hypervisor, install a VPN service of some sort on the Hypervisor, or arrange for your external Networking devices (routers/switches) to route this IP block to the addressable interface of the Proxmox Hypervisor.

The default is 192.168.1.0/24.

If you wish to assign IP addresses to your VMs via a bridged interface on the Proxmox Hypervisor, DO NOT use this method, instead, use the Network configuration task named network-simple-bridge-with-addressing.

The subnet must be in CIDR Notation (eg 1.2.3.0/24), and the Network address set in the CIDR (eg the “.0” part). The Hypervisor will be assigned the first IP address in the network, and used as the Default Route for the DRP Endpoint Virtual Machines.

23.35.2.4.28. proxmox/lab-drp-internal-subnet

The default is 192.168.2.0/24.

23.35.2.4.29. proxmox/vm-drp-os-type

Must select one of the Proxmox supported OS Type models from the list. The default is l26 (Linux 2.6 or newer kernel).

Additional documentation and details can be found on the Proxmox Wiki, at (search for ‘ostype: <l24’ to find them):

The list of supported OS Types is as follows:

  • other = unspecified OS
  • wxp = Microsoft Windows XP
  • w2k = Microsoft Windows 2000
  • w2k3 = Microsoft Windows 2003
  • w2k8 = Microsoft Windows 2008
  • wvista = Microsoft Windows Vista
  • win7 = Microsoft Windows 7
  • win8 = Microsoft Windows 8/2012/2012r2
  • win10 = Microsoft Windows 10/2016
  • l24 = Linux 2.4 Kernel
  • l26 = Linux 2.6 - 5.X Kernel
  • solaris = Solaris/OpenSolaris/OpenIndiania kernel

23.35.2.4.30. proxmox/debconf-selections-template

Defines the template to use during installation for the debconf-set-selections process. To customize, create a new template with the correctly formatted debconf-set-selections values, and set this Param to the name of your custom template.

By defaul the template named proxmox-debconf-set-selections.tmpl will be used.

23.35.2.4.31. proxmox/lab-drp-sshkey-private

This param is used to define lab DRP systems private key.

23.35.2.4.32. proxmox/lab-pvesh-extra-config-drp

Allows an operator to inject extra configuration directives in to the pvesh command that builds the DRP virtual machine.

23.35.2.4.33. proxmox/vm-drp-nic

Must select one of the Proxmox supported NIC models from the list. The default is e1000. If you are running ESXi on top of Proxmox, you may need to change this (eg to vmxnet3 - especially for ESXi 7.x).

Additional documentation and details can be found on the Proxmox Wiki, at:

23.35.2.4.34. proxmox/lab-machines-cores

This param is used to define the value of the configuration for type machines virtual machines.

23.35.2.4.35. proxmox/lab-pvesh-extra-config-machines

Allows an operator to inject extra configuration directives in to the pvesh command that builds the target virtual machines.

23.35.2.4.36. proxmox/storage-device

This param is used to define the disk that the base storage volume will be created on. It defaults to /dev/sdb if not otherwise defined.

23.35.2.4.37. proxmox/install-drp-on-hypervisor

Depending on the network configuration used on the Hypervisors, the DRP Endpoint VMs may or may not need to be provisioned from the Hypervisor.

In the event that the DPR Virtual Machines do not obtain DHCP and PXE from outside of the Hypervisor, then the operator will have to arrange to install an OS on the DRP VMs. The main workflows include a DRP Install on the Hypervisor task.

If this Param is set to true (NOT the default), then DRP will be installed in a very opinionated configuration.

23.35.2.4.38. proxmox/lab-drp-boot-order

This param is used to define the value of the configuration for type drp virtual machines.

23.35.2.4.39. proxmox/lab-drp-external-dns

The DNS servers to be assigned to the DRP Endpoints on the Hypervisor.

Defaults to 1.1.1.1,1.0.0.1. Comma separated list, no spaces.

23.35.2.4.40. proxmox/lab-drp-install-packages

A space separated list of packages to install on the remote DRP endpoint.

23.35.2.4.41. proxmox/lab-drp-sshkey-public

This param is used to define the ssh public key half that should be installed in the DRP systems for student access.

23.35.2.4.42. network-convert-interface-to-bridge-template

The name of the template to utilize to configure the NAT Add Bridge network with Addressing (network-convert-interface-to-bridge) network configuration.

The default is network-convert-interface-to-bridge.cfg.tmpl

This will be written to /etc/network/interfaces.d/$BRIDGE where BRIDGE is defined by the Param proxmox/lab-drp-external-bridge.

23.35.2.4.43. proxmox/lab-base-tag

The base tag that is assigned to various resources used in the content pack when configuring the student lab. For example, network bridge devices.

This is also used when tearing things down.

Note

Do not add a trailing dash, one will be inserted between the prefix and the numerical designator for the resource.

The default value is student, which will produce bridge devices like br-student-1.

23.35.2.4.44. proxmox/package-selections

This parameter defines the Package selection list to install initially. This list should contain at least proxmox-ve and any necessary supporting packages.

If the operator overrides the Default values specified in this Param, all packages must be specified in the updated Param values.

The list is a space separated string that must contain valid Debian package names. These packages must be available in the default repos unless additional apt repos have been setup and initialized prior to this task run.

Note

The default workflows assume postfix and samba packages are installed (as specified by proxmox requirements). There are special tasks for staging apt-set-selections to automate these package installation successfully. If additional packages requiring input are added, the operator must implement a set of apt-set-selections appropriate to that package.

23.35.2.4.45. network-add-nat-bridge-template

The name of the template to utilize to configure the NAT Add Bridge network with Addressing (network-nat-add-bridge) network configuration.

The default is network-add-nat-bridge.cfg.tmpl

This will be written to /etc/network/interfaces.d/$BRIDGE where BRIDGE is defined by the Param proxmox/lab-nat-bridge.

23.35.2.4.46. proxmox/lab-nat-subnet

The IP Subnet to NAT Masquerade for on proxmox/lab-nat-bridge (defautls to vmnat0). There are no DHCP services setup automatically. Either statically assign IP addresses from that range, or enable a DRP Subnet for that range on the proxmox/lab-nat-bridge interface.

The default is 192.168.1.0/24.

23.35.2.5. profiles

The content package provides the following profiles.

23.35.2.5.1. EXAMPLE-lab-profile

This profile provides examples of the various Params that can be set to configure the Lab environment. These are the (generally) default configuration values as defined by each Param.

Clone this Profile, and set appropriate values for your environment, with your customizations.

The default lab install/setup workflow (proxmox-buster-install) utilizes the Flexiflow Stage that allows it to be dynamically customized, based on the values of the flexiflow/list-parameter Param. Adding one or more existing tasks to this Param will inject those tasks to be run during that stage.

23.35.2.5.2. EXAMPLE-pkt-profile

This profile provides examples for PKT environment of various Params that can be set to configure the Lab environment. These are the (generally) default configuration values as defined by each Param.

Clone this Profile, and set appropriate values for your environment, with your customizations.

The default lab install/setup workflow (proxmox-buster-install) utilizes the Flexiflow Stage that allows it to be dynamically customized, based on the values of the flexiflow/list-parameter Param. Adding one or more existing tasks to this Param will inject those tasks to be run during that stage.

23.35.2.6. stages

The content package provides the following stages.

23.35.2.6.1. proxmox-buster-installer

This Stage does basic setup of the Proxmox VE repositories, sets some debconf selections for the Samba and Postfix packages, and then performs the Proxmox VE lateest stable version.

23.35.2.6.2. proxmox-create-storage

Sets up the Proxmox VE local storage to back VMs from. Type is Thin Pool, and defined by the following Params:

  • proxmox/storage-device - Disk device to use (defaults to /dev/sdb)
  • proxmox/storage-name - Name of the Storage Pool to create (defaults to thin-lvm)

Note

The proxmox/storage-name must match the backing Storage name to used in the VM Creation steps. Ensure these two places are set to use the same value.

23.35.2.6.3. flexiflow-buster-install

Allows for injecting custom tasks in to the proxmox-buster-install workflow before finishing the install.

Set the Param proxmox/flexiflow-buster-install on the machine to a String array list of Tasks to execute. This gets set on the target Proxmox hypervisor(s) you are building.

23.35.2.6.4. proxmox-drp-destroy-drp

Destroys DRP service installed on the Hypervisor.

23.35.2.6.5. proxmox-drp-install

Installs DRP with an opinionated configuration on a DRP Endpoint.

23.35.2.6.6. proxmox-generate-ssh-key

Creates SSH keys and stores them in the proxmox/data-profile named profile.

23.35.2.6.7. proxmox-admin-account

Sets up the admin account in the PVE Realm with Admiministrator ACLs.

23.35.2.6.8. proxmox-drp-provision-drp

Provisions the OS on the DRP VMs, from the installed DRP on the Hypervisor.

23.35.2.6.9. proxmox-lab-drp-network

Sets up the DRP for external IP Forwarding and masquerading (nat), and the internal network for the virtual machines to connect to.

The initial setup is done using cloud-init per-once directive, as the DRP Endpoint is built using the image-deploy service with the embedded cloud-init.