4.0 KiB
layout | title | nav_order |
---|---|---|
home | Introduction | 1 |
Proxmox Provider
This provider for Terraform is used to interact with resources supported by Proxmox. The provider needs to be configured with the proper endpoints and credentials before it can be used.
Use the navigation to the left to read about the available resources.
Example Usage
provider "proxmox" {
virtual_environment {
endpoint = "https://10.0.0.2"
username = "root@pam"
password = "the-password-set-during-installation-of-proxmox-ve"
insecure = true
}
}
Installation
You can install the latest release of the provider using either Git Bash or regular Bash:
$ export PROVIDER_PLATFORM="$([[ "$OSTYPE" =~ ^msys|cygwin$ ]] && echo "windows" || ([[ "$OSTYPE" == "darwin"* ]] && echo "darwin" || ([[ "$OSTYPE" == "linux"* ]] && echo "linux" || echo "unsupported")))"
$ export PROVIDER_VERSION="$(curl -L -s -H 'Accept: application/json' https://github.com/danitso/terraform-provider-proxmox/releases/latest | sed -e 's/.*"tag_name":"\([^"]*\)".*/\1/')"
$ export PLUGINS_PATH="$([[ "$PROVIDER_PLATFORM" == "windows" ]] && cygpath -u "$APPDATA" || echo "$HOME")/terraform.d/plugins"
$ mkdir -p "$PLUGINS_PATH"
$ curl -o "${PLUGINS_PATH}/terraform-provider-proxmox_v${PROVIDER_VERSION}.zip" -sL "https://github.com/danitso/terraform-provider-proxmox/releases/download/${PROVIDER_VERSION}/terraform-provider-proxmox_v${PROVIDER_VERSION}-custom_${PROVIDER_PLATFORM}_amd64.zip"
$ unzip -o -d "$PLUGINS_PATH" "${PLUGINS_PATH}/terraform-provider-proxmox_v${PROVIDER_VERSION}.zip"
$ rm "${PLUGINS_PATH}/terraform-provider-proxmox_v${PROVIDER_VERSION}.zip"
You can also install it manually by following the instructions to install it as a plugin. You can download the latest release from the releases page.
Authentication
The Proxmox provider offers a flexible means of providing credentials for authentication. The following methods are supported, in this order, and explained below:
- Static credentials
- Environment variables
Static credentials
Warning: Hard-coding credentials into any Terraform configuration is not recommended, and risks secret leakage should this file ever be committed to a public version control system. {: .label .label-red }
Static credentials can be provided by adding a username
and password
in-line in the Proxmox provider block:
provider "proxmox" {
virtual_environment {
username = "username@realm"
password = "a-strong-password"
}
}
Environment variables
You can provide your credentials via the PROXMOX_VE_USERNAME
and PROXMOX_VE_PASSWORD
, environment variables, representing your Proxmox username, realm and password, respectively:
provider "proxmox" {
virtual_environment {}
}
Usage:
$ export PROXMOX_VE_USERNAME="username@realm"
$ export PROXMOX_VE_PASSWORD="a-strong-password"
$ terraform plan
Arguments Reference
In addition to generic provider arguments (e.g. alias
and version
), the following arguments are supported in the Proxmox provider
block:
virtual_environment
- (Optional) Avirtual_environment
block (documented below). Only onevirtual_environment
block may be in the configuration.
The nested virtual_environment
block supports the following:
endpoint
- (Required) The endpoint for the Proxmox Virtual Environment API (can also be sourced fromPROXMOX_VE_ENDPOINT
).insecure
- (Optional) Whether to skip the TLS verification step (can also be sourced fromPROXMOX_VE_INSECURE
). If omitted, defaults tofalse
.password
- (Required) The password for the Proxmox Virtual Environment API (can also be sourced fromPROXMOX_VE_PASSWORD
).username
- (Required) The username and realm for the Proxmox Virtual Environment API (can also be sourced fromPROXMOX_VE_USERNAME
).