community.proxmox.proxmox_cluster_ha_resources module – Management of HA groups in Proxmox VE Cluster

Note

This module is part of the community.proxmox collection (version 1.3.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.proxmox. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: community.proxmox.proxmox_cluster_ha_resources.

New in community.proxmox 1.1.0

Synopsis

  • Configure HA groups via /cluster/ha/groups.

Requirements

The below requirements are needed on the host that executes this module.

  • proxmoxer >= 2.0

  • requests

Parameters

Parameter

Comments

api_host

string / required

Specify the target host of the Proxmox VE cluster.

Uses the PROXMOX_HOST environment variable if not specified.

api_password

string

Specify the password to authenticate with.

Uses the PROXMOX_PASSWORD environment variable if not specified.

api_port

integer

Specify the target port of the Proxmox VE cluster.

Uses the PROXMOX_PORT environment variable if not specified.

api_token_id

string

Specify the token ID.

Uses the PROXMOX_TOKEN_ID environment variable if not specified.

api_token_secret

string

Specify the token secret.

Uses the PROXMOX_TOKEN_SECRET environment variable if not specified.

api_user

string / required

Specify the user to authenticate with.

Uses the PROXMOX_USER environment variable if not specified.

comment

string

Description

Default: ""

group

string

The HA group identifier.

hastate

string

Requested resource state. The CRM reads this state and acts accordingly. Please note that enabled is just an alias for started.

Choices:

  • "started" ← (default)

  • "stopped"

  • "disabled"

  • "ignored"

max_relocate

integer

Maximal number of service relocate tries when a service failes to start.

Default: 1

max_restart

integer

Maximal number of tries to restart the service on a node after its start failed.

Default: 1

name

string / required

HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100 ). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100). The API documentation refers to this field as \”sid\”.

state

string / required

create or delete

Choices:

  • "present"

  • "absent"

validate_certs

boolean

If false, SSL certificates will not be validated.

This should only be used on personally controlled sites using self-signed certificates.

Uses the PROXMOX_VALIDATE_CERTS environment variable if not specified.

Choices:

  • false ← (default)

  • true

Attributes

Attribute

Support

Description

action_group

Action group: community.proxmox.proxmox

Use group/community.proxmox.proxmox in module_defaults to set defaults for this module.

check_mode

Support: none

Can run in check_mode and return changed status prediction without modifying target.

diff_mode

Support: none

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode.

Examples

- name: Add VM to HA group
  community.proxmox.proxmox_cluster_ha_resources:
    api_host: "{{ ansible_host }}"
    api_password: "{{ proxmox_root_pw | default(lookup('ansible.builtin.env', 'PROXMOX_PASSWORD', default='')) }}"
    api_user: root@pam
    name: vm:100
    state: "present"
    group: ha0
    max_relocate: 2
    max_restart: 2
  delegate_to: localhost

- name: Delete vm from HA group
  community.proxmox.proxmox_cluster_ha_resources:
    api_host: "{{ ansible_host }}"
    api_password: "{{ proxmox_root_pw | default(lookup('ansible.builtin.env', 'PROXMOX_PASSWORD', default='')) }}"
    api_user: root@pam
    state: "absent"
    name: vm:100
  delegate_to: localhost

- name: Add VM to HA group based on 'ha_' tag
  community.proxmox.proxmox_cluster_ha_resources:
    api_host: "{{ ansible_host }}"
    api_password: "{{ proxmox_root_pw | default(lookup('ansible.builtin.env', 'PROXMOX_PASSWORD', default='')) }}"
    api_user: root@pam
    name: "{{ proxmox_type }}:{{ proxmox_vmid }}"
    state: "present"
    group: "{{ proxmox_tags | split(';') | select('match', '^ha_') }}"
    max_relocate: 2
    max_restart: 2
  delegate_to: localhost

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

new_groups

list / elements=string

The output message that the test module generates.

Returned: when changed

old_groups

list / elements=string

The original name param that was passed in.

Returned: always

Authors

  • Markus Kötter (@commonism)