community.vmware.vmware_cluster_ha – Manage High Availability (HA) on VMware vSphere clusters

Note

This plugin is part of the community.vmware collection.

To install it use: ansible-galaxy collection install community.vmware.

To use it in a playbook, specify: community.vmware.vmware_cluster_ha.

Synopsis

  • Manages HA configuration on VMware vSphere clusters.

  • All values and VMware object names are case sensitive.

Requirements

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

  • Tested on ESXi 5.5 and 6.5.

  • PyVmomi installed.

Parameters

Parameter Choices/Defaults Comments
advanced_settings
dictionary
Default:
{}
A dictionary of advanced HA settings.
cluster_name
string / required
The name of the cluster to be managed.
datacenter
string / required
The name of the datacenter.

aliases: datacenter_name
enable_ha
boolean
    Choices:
  • no ←
  • yes
Whether to enable HA.
failover_host_admission_control
dictionary
Configure dedicated failover hosts.
slot_based_admission_control, reservation_based_admission_control and failover_host_admission_control are mutually exclusive.
failover_hosts
list / elements=string / required
List of dedicated failover hosts.
ha_host_monitoring
string
    Choices:
  • enabled ←
  • disabled
Whether HA restarts virtual machines after a host fails.
If set to enabled, HA restarts virtual machines after a host fails.
If set to disabled, HA does not restart virtual machines after a host fails.
If enable_ha is set to no, then this value is ignored.
ha_restart_priority
string
    Choices:
  • disabled
  • high
  • low
  • medium ←
Priority HA gives to a virtual machine if sufficient capacity is not available to power on all failed virtual machines.
Valid only if ha_vm_monitoring is set to either vmAndAppMonitoring or vmMonitoringOnly.
If set to disabled, then HA is disabled for this virtual machine.
If set to high, then virtual machine with this priority have a higher chance of powering on after a failure, when there is insufficient capacity on hosts to meet all virtual machine needs.
If set to medium, then virtual machine with this priority have an intermediate chance of powering on after a failure, when there is insufficient capacity on hosts to meet all virtual machine needs.
If set to low, then virtual machine with this priority have a lower chance of powering on after a failure, when there is insufficient capacity on hosts to meet all virtual machine needs.
ha_vm_failure_interval
integer
Default:
30
The number of seconds after which virtual machine is declared as failed if no heartbeat has been received.
This setting is only valid if ha_vm_monitoring is set to, either vmAndAppMonitoring or vmMonitoringOnly.
Unit is seconds.
ha_vm_max_failure_window
integer
Default:
-1
The number of seconds for the window during which up to ha_vm_max_failures resets can occur before automated responses stop.
Valid only when ha_vm_monitoring is set to either vmAndAppMonitoring or vmMonitoringOnly.
Unit is seconds.
Default specifies no failure window.
ha_vm_max_failures
integer
Default:
3
Maximum number of failures and automated resets allowed during the time that ha_vm_max_failure_window specifies.
Valid only when ha_vm_monitoring is set to either vmAndAppMonitoring or vmMonitoringOnly.
ha_vm_min_up_time
integer
Default:
120
The number of seconds for the virtual machine's heartbeats to stabilize after the virtual machine has been powered on.
Valid only when ha_vm_monitoring is set to either vmAndAppMonitoring or vmMonitoringOnly.
Unit is seconds.
ha_vm_monitoring
string
    Choices:
  • vmAndAppMonitoring
  • vmMonitoringOnly
  • vmMonitoringDisabled ←
State of virtual machine health monitoring service.
If set to vmAndAppMonitoring, HA response to both virtual machine and application heartbeat failure.
If set to vmMonitoringDisabled, virtual machine health monitoring is disabled.
If set to vmMonitoringOnly, HA response to virtual machine heartbeat failure.
If enable_ha is set to no, then this value is ignored.
host_isolation_response
string
    Choices:
  • none ←
  • powerOff
  • shutdown
Indicates whether or VMs should be powered off if a host determines that it is isolated from the rest of the compute resource.
If set to none, do not power off VMs in the event of a host network isolation.
If set to powerOff, power off VMs in the event of a host network isolation.
If set to shutdown, shut down VMs guest operating system in the event of a host network isolation.
hostname
string
The hostname or IP address of the vSphere vCenter or ESXi server.
If the value is not specified in the task, the value of environment variable VMWARE_HOST will be used instead.
Environment variable support added in Ansible 2.6.
password
string
The password of the vSphere vCenter or ESXi server.
If the value is not specified in the task, the value of environment variable VMWARE_PASSWORD will be used instead.
Environment variable support added in Ansible 2.6.

aliases: pass, pwd
port
integer
Default:
443
The port number of the vSphere vCenter or ESXi server.
If the value is not specified in the task, the value of environment variable VMWARE_PORT will be used instead.
Environment variable support added in Ansible 2.6.
proxy_host
string
Address of a proxy that will receive all HTTPS requests and relay them.
The format is a hostname or a IP.
If the value is not specified in the task, the value of environment variable VMWARE_PROXY_HOST will be used instead.
This feature depends on a version of pyvmomi greater than v6.7.1.2018.12
proxy_port
integer
Port of the HTTP proxy that will receive all HTTPS requests and relay them.
If the value is not specified in the task, the value of environment variable VMWARE_PROXY_PORT will be used instead.
reservation_based_admission_control
dictionary
Configure reservation based admission control policy.
slot_based_admission_control, reservation_based_admission_control and failover_host_admission_control are mutually exclusive.
auto_compute_percentages
boolean
    Choices:
  • no
  • yes ←
By default, failover_level is used to calculate cpu_failover_resources_percent and memory_failover_resources_percent. If a user wants to override the percentage values, he has to set this field to false.
cpu_failover_resources_percent
integer
Default:
50
Percentage of CPU resources in the cluster to reserve for failover. Ignored if auto_compute_percentages is not set to false.
failover_level
integer / required
Number of host failures that should be tolerated.
memory_failover_resources_percent
integer
Default:
50
Percentage of memory resources in the cluster to reserve for failover. Ignored if auto_compute_percentages is not set to false.
slot_based_admission_control
dictionary
Configure slot based admission control policy.
slot_based_admission_control, reservation_based_admission_control and failover_host_admission_control are mutually exclusive.
failover_level
integer / required
Number of host failures that should be tolerated.
username
string
The username of the vSphere vCenter or ESXi server.
If the value is not specified in the task, the value of environment variable VMWARE_USER will be used instead.
Environment variable support added in Ansible 2.6.

aliases: admin, user
validate_certs
boolean
    Choices:
  • no
  • yes ←
Allows connection when SSL certificates are not valid. Set to false when certificates are not trusted.
If the value is not specified in the task, the value of environment variable VMWARE_VALIDATE_CERTS will be used instead.
Environment variable support added in Ansible 2.6.
If set to yes, please make sure Python >= 2.7.9 is installed on the given machine.

Examples

- name: Enable HA without admission control
  community.vmware.vmware_cluster_ha:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter_name: datacenter
    cluster_name: cluster
    enable_ha: yes
  delegate_to: localhost

- name: Enable HA and VM monitoring without admission control
  community.vmware.vmware_cluster_ha:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    validate_certs: no
    datacenter_name: DC0
    cluster_name: "{{ cluster_name }}"
    enable_ha: True
    ha_vm_monitoring: vmMonitoringOnly
  delegate_to: localhost

- name: Enable HA with admission control reserving 50% of resources for HA
  community.vmware.vmware_cluster_ha:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter_name: datacenter
    cluster_name: cluster
    enable_ha: yes
    reservation_based_admission_control:
      auto_compute_percentages: False
      failover_level: 1
      cpu_failover_resources_percent: 50
      memory_failover_resources_percent: 50
  delegate_to: localhost

Authors

  • Joseph Callen (@jcpowermac)

  • Abhijeet Kasurde (@Akasurde)