# cs_cluster – Manages host clusters on Apache CloudStack based clouds

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Return Values

- Status

## Synopsis

- Create, update and remove clusters.

## Requirements

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

- python >= 2.6

- cs >= 0.6.10

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---

api_http_method
string

Choices:
- get
- post

HTTP method used to query the API endpoint.
If not given, the `CLOUDSTACK_METHOD` env variable is considered.
As the last option, the value is taken from the ini config file, also see the notes.
Fallback value is `get` if not specified.

api_key string |  | API key of the CloudStack API. If not given, the `CLOUDSTACK_KEY` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes.
api_region string | Default: "cloudstack" | Name of the ini section in the `cloustack.ini` file. If not given, the `CLOUDSTACK_REGION` env variable is considered.
api_secret string |  | Secret key of the CloudStack API. If not set, the `CLOUDSTACK_SECRET` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes.
api_timeout integer |  | HTTP timeout in seconds. If not given, the `CLOUDSTACK_TIMEOUT` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes. Fallback value is 10 seconds if not specified.
api_url string |  | URL of the CloudStack API e.g. https://cloud.example.com/client/api. If not given, the `CLOUDSTACK_ENDPOINT` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes.

cluster_type
string

Choices:
- CloudManaged
- ExternalManaged

Type of the cluster.
Required if state=present

guest_vswitch_name string |  | Name of virtual switch used for guest traffic in the cluster. This would override zone wide traffic label setting.

guest_vswitch_type
string

Choices:
- vmwaresvs
- vmwaredvs

Type of virtual switch used for guest traffic in the cluster.
Allowed values are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware distributed vSwitch)

hypervisor string |  | Name the hypervisor to be used. Required if state=present. Possible values are `KVM`, `VMware`, `BareMetal`, `XenServer`, `LXC`, `HyperV`, `UCS`, `OVM`, `Simulator`.
name string / required |  | name of the cluster.
ovm3_cluster string |  | Ovm3 native OCFS2 clustering enabled for cluster.
ovm3_pool string |  | Ovm3 native pooling enabled for cluster.
ovm3_vip string |  | Ovm3 vip to use for pool (and cluster).
password string |  | Password for the cluster.
pod string |  | Name of the pod in which the cluster belongs to.
public_vswitch_name string |  | Name of virtual switch used for public traffic in the cluster. This would override zone wide traffic label setting.

public_vswitch_type
string

Choices:
- vmwaresvs
- vmwaredvs

Type of virtual switch used for public traffic in the cluster.
Allowed values are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware distributed vSwitch)

state
string

Choices:
- present ←
- absent
- disabled
- enabled

State of the cluster.

url string |  | URL for the cluster
username string |  | Username for the cluster.
vms_ip_address string |  | IP address of the VSM associated with this cluster.
vms_password string |  | Password for the VSM associated with this cluster.
vms_username string |  | Username for the VSM associated with this cluster.
zone string |  | Name of the zone in which the cluster belongs to. If not set, default zone is used.

## Notes

Note

- Ansible uses the `cs` library’s configuration method if credentials are not provided by the arguments `api_url`, `api_key`, `api_secret`. Configuration is read from several locations, in the following order. The `CLOUDSTACK_ENDPOINT`, `CLOUDSTACK_KEY`, `CLOUDSTACK_SECRET` and `CLOUDSTACK_METHOD`. `CLOUDSTACK_TIMEOUT` environment variables. A `CLOUDSTACK_CONFIG` environment variable pointing to an `.ini` file. A `cloudstack.ini` file in the current working directory. A `.cloudstack.ini` file in the users home directory. Optionally multiple credentials and endpoints can be specified using ini sections in `cloudstack.ini`. Use the argument `api_region` to select the section name, default section is `cloudstack`. See https://github.com/exoscale/cs for more information.

- A detailed guide about cloudstack modules can be found in the CloudStack Cloud Guide.

- This module supports check mode.

## Examples

    - name: Ensure a cluster is present
      cs_cluster:
        name: kvm-cluster-01
        zone: ch-zrh-ix-01
        hypervisor: KVM
        cluster_type: CloudManaged
      delegate_to: localhost

    - name: Ensure a cluster is disabled
      cs_cluster:
        name: kvm-cluster-01
        zone: ch-zrh-ix-01
        state: disabled
      delegate_to: localhost

    - name: Ensure a cluster is enabled
      cs_cluster:
        name: kvm-cluster-01
        zone: ch-zrh-ix-01
        state: enabled
      delegate_to: localhost

    - name: Ensure a cluster is absent
      cs_cluster:
        name: kvm-cluster-01
        zone: ch-zrh-ix-01
        state: absent
      delegate_to: localhost

## Return Values

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

Key | Returned | Description
--- | --- | ---
allocation_state string | success | State of the cluster. Sample: Enabled
cluster_type string | success | Type of the cluster. Sample: ExternalManaged
cpu_overcommit_ratio string | success | The CPU overcommit ratio of the cluster. Sample: 1.0
hypervisor string | success | Hypervisor of the cluster Sample: VMware
id string | success | UUID of the cluster. Sample: 04589590-ac63-4ffc-93f5-b698b8ac38b6
managed_state string | success | Whether this cluster is managed by CloudStack. Sample: Managed
memory_overcommit_ratio string | success | The memory overcommit ratio of the cluster. Sample: 1.0
name string | success | Name of the cluster. Sample: cluster01
ovm3_vip string | success | Ovm3 VIP to use for pooling and/or clustering Sample: 10.10.10.101
pod string | success | Name of pod the cluster is in. Sample: pod01
zone string | success | Name of zone the cluster is in. Sample: ch-gva-2

## Status

- This module is guaranteed to have backward compatible interface changes going forward. [stableinterface]

- This module is maintained by the Ansible Community. [community]

### Authors

- René Moser (@resmo)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.