# cs_host – Manages hosts on Apache CloudStack based clouds

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Return Values
- Status

## Synopsis

- Create, update and remove hosts.

## 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
--- | --- | ---

allocation_state
string

Choices:
- enabled
- disabled
- maintenance

Allocation state of the host.

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 string |  | Name of the cluster.
host_tags list |  | Tags of the host. aliases: host_tag
hypervisor string |  | Name of the cluster. Required if state=present and host does not yet exist. Possible values are `KVM`, `VMware`, `BareMetal`, `XenServer`, `LXC`, `HyperV`, `UCS`, `OVM`, `Simulator`.
name string / required |  | Name of the host. aliases: ip_address
password string |  | Password for the host. Required if state=present and host does not yet exist.
pod string |  | Name of the pod. Required if state=present and host does not yet exist.

state
string

Choices:
- present ←
- absent

State of the host.

url string |  | Url of the host used to create a host. If not provided, `http://` and param name is used as url. Only considered if state=present and host does not yet exist.
username string |  | Username for the host. Required if state=present and host does not yet exist.
zone string |  | Name of the zone in which the host should be deployed. 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 host is present but disabled
      cs_host:
        name: pod01.zone01.example.com
        cluster: vcenter.example.com/zone01/cluster01
        pod: pod01
        zone: zone01
        hypervisor: VMware
        allocation_state: disabled
        host_tags:
        - perf
        - gpu
      delegate_to: localhost

    - name: Ensure an existing host is disabled
      cs_host:
        name: pod01.zone01.example.com
        zone: zone01
        allocation_state: disabled
      delegate_to: localhost

    - name: Ensure an existing host is enabled
      cs_host:
        name: pod01.zone01.example.com
        zone: zone01
        allocation_state: enabled
      delegate_to: localhost

    - name: Ensure a host is absent
      cs_host:
        name: pod01.zone01.example.com
        zone: zone01
        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 | Allocation state of the host. Sample: enabled
capabilities string | success | Capabilities of the host. Sample: hvm
cluster string | success | Cluster of the host. Sample: vcenter.example.com/zone/cluster01
cluster_type string | success | Type of the cluster of the host. Sample: ExternalManaged
cpu_allocated string | success | Amount in percent of the host's CPU currently allocated. Sample: 166.25%
cpu_number string | success | Number of CPUs of the host. Sample: 24
cpu_sockets integer | success | Number of CPU sockets of the host. Sample: 2
cpu_speed integer | success | CPU speed in Mhz Sample: 1999
cpu_used string | success | Amount of the host's CPU currently used. Sample: 33.6%
cpu_with_overprovisioning string | success | Amount of the host's CPU after applying the cpu.overprovisioning.factor. Sample: 959520.0
created string | success | Date when the host was created. Sample: 2015-05-03T15:05:51+0200
disconnected string | success | Date when the host was disconnected. Sample: 2015-05-03T15:05:51+0200
disk_size_allocated integer | success | Host's currently allocated disk size. Sample: 2593
disk_size_total integer | success | Total disk size of the host Sample: 259300
events string | success | Events available for the host Sample: Ping; HostDown; AgentConnected; AgentDisconnected; PingTimeout; ShutdownRequested; Remove; StartAgentRebalance; ManagementServerDown
gpu_group list | success | GPU cards present in the host.
ha_host boolean | success | Whether the host is a HA host.
has_enough_capacity boolean | success | Whether the host has enough CPU and RAM capacity to migrate a VM to it. Sample: True
host_tags string | success | Comma-separated list of tags for the host. Sample: perf
host_type string | success | Type of the host. Sample: Routing
host_version string | success | Version of the host. Sample: 4.5.2
hypervisor string | success | Host's hypervisor. Sample: VMware
hypervisor_version string | success | Hypervisor version. Sample: 5.1
ip_address string | success | IP address of the host Sample: 10.10.10.1
is_local_storage_active boolean | success | Whether the local storage is available or not.
last_pinged string | success | Date and time the host was last pinged. Sample: 1970-01-17T17:27:32+0100
management_server_id integer | success | Management server ID of the host. Sample: 345050593418
memory_allocated integer | success | Amount of the host's memory currently allocated. Sample: 69793218560
memory_total integer | success | Total of memory of the host. Sample: 206085263360
memory_used integer | success | Amount of the host's memory currently used. Sample: 65504776192
name string | success | Name of the host. Sample: esx32.example.com
network_kbs_read integer | success | Incoming network traffic on the host.
network_kbs_write integer | success | Outgoing network traffic on the host.
os_category string | success | OS category name of the host. Sample: ...
out_of_band_management string | success | Host out-of-band management information. Sample: ...
pod string | success | Pod name of the host. Sample: Pod01
removed string | success | Date and time the host was removed. Sample: 1970-01-17T17:27:32+0100
resource_state string | success | Resource state of the host. Sample: Enabled
state string | success | State of the host. Sample: Up
suitable_for_migration string | success | Whether this host is suitable (has enough capacity and satisfies all conditions like hosttags, max guests VM limit, etc) to migrate a VM to it or not. Sample: True
zone string | success | Zone of the host. Sample: zone01

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- 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.