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 OSwxp
= Microsoft Windows XPw2k
= Microsoft Windows 2000w2k3
= Microsoft Windows 2003w2k8
= Microsoft Windows 2008wvista
= Microsoft Windows Vistawin7
= Microsoft Windows 7win8
= Microsoft Windows 8/2012/2012r2win10
= Microsoft Windows 10/2016l24
= Linux 2.4 Kernell26
= Linux 2.6 - 5.X Kernelsolaris
= 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 OSwxp
= Microsoft Windows XPw2k
= Microsoft Windows 2000w2k3
= Microsoft Windows 2003w2k8
= Microsoft Windows 2008wvista
= Microsoft Windows Vistawin7
= Microsoft Windows 7win8
= Microsoft Windows 8/2012/2012r2win10
= Microsoft Windows 10/2016l24
= Linux 2.4 Kernell26
= Linux 2.6 - 5.X Kernelsolaris
= 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 tothin-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.