Automated Installations

The Proxmox Datacenter Manager provides integration with the automated installer for all Proxmox products.

A detailed documentation of all available options can be found on our dedicated wiki page.

Overview

The overview shows all past and ongoing installations done using the Proxmox Datacenter Manager. It allows access to the raw system information data as sent by the automated installer before the actual installation, and (if configured) post-installation notification hook data, containing extensive information about the newly installed system.

Prepared Answers

This view provides an overview over all defined answer files and allows editing, copying into new answers and deleting them. For a quick overview, it shows whether an answer is the default and what target filters have been defined for that particular configuration.

Target filter

Target filter allow you to control what systems should match.

Filters are key-value pairs in the format key=format, with keys being JSON Pointers, and match systems based the identifying information sent by the installer as JSON document. An example of such a document is provided on the wiki.

JSON Pointers allow for identifying specific values within a JSON document. For example, to match only Proxmox VE installations by the product name, a filter entry like /product/product=pve can be used.

Values are globs and use the same syntax as the automated installer itself. The following special characters can be used in filters:

  • ? -- matches any single character

  • * -- matches any number of characters, can be none

  • [a], [abc], [0-9] -- matches any single character inside the brackets, ranges are possible

  • [!a] -- negate the filter, any single character but the ones specified

A prepared answer can be also set as default, in which case it will be used if no other more specific answer matches based on its configured target filters.

Templating

Certain fields support templating via MiniJinja (a Jinja2-inspired templating engine) and sequential counters. Counters are automatically incremented each time an answer file is served to a client, allowing for easy provisioning of unique fields, such as per-system hostnames.

The following counter is automatically defined when creating a new prepared answer configuration:

  • installation_nr - Counter of the number of installations done with this particular answer configuration.

This mechanism allows templating on the following fields for prepared answer configurations:

  • Administrator email address

  • Hostname/FQDN

  • Network IP address (CIDR)

  • Network gateway

  • DNS Server address

The templating context provided for each field contains the system information data as sent by the automated installer on answer retrieval, as well as all template counters.

For example, to provide a unique hostname to each target system, the following template can be used for the Hostname/FQDN field:

{{ product.product }}{{ installation_nr }}.example.com

MiniJinja features a wide range of built-in filters, which are enabled by default, similar to Jinja2.

Authentication token management

To use the automated installer integration of Proxmox Datacenter Manager, an installation process must authenticate itself. This also provides for an additional scoping mechanism for prepared answer configurations.

The automated installer integration uses a dedicated token mechanism, separate from the normal API tokens. See the example under Preparing an ISO on how to include such a token in the ISO when preparing it.

Preparing an ISO

To use an installation ISO of a Proxmox product with the Proxmox Datacenter Manager functionality, the ISO must be appropriately prepared to fetch an answer via HTTP from the Proxmox Datacenter Manager using the proxmox-auto-install-assistant tool, available from the Proxmox VE package repositories.

The target URL for the automated installer must point to https://<pdm>/api2/json/auto-install/answer, where <pdm> is the address under which the Proxmox Datacenter Manager is reachable from the systems to be installed.

For example:

proxmox-auto-install-assistant prepare-iso /path/to/source.iso \
  --fetch-from http \
  --url 'https://datacenter.example.com/api2/json/auto-install/answer' \
  --cert-fingerprint 'ab:cd:ef:12:34:56:78:90:a1:b2:c3:d4:e5:f6:7a:8b:9c:0d:aa:bb:cc:dd:ee:ff:21:43:65:87:09:af:bd:ce' \
  --answer-auth-token 'mytoken:ee2a5901-1910-4eb0-b0a2-c914f4adbb75'