# cs_zone – Manages zones on Apache CloudStack based clouds

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Return Values

- Status

## Synopsis

- Create, update and remove zones.

## 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.
dhcp_provider string |  | DHCP provider for the Zone.
dns1 string |  | First DNS for the zone. Required if state=present
dns1_ipv6 string |  | First DNS for IPv6 for the zone.
dns2 string |  | Second DNS for the zone.
dns2_ipv6 string |  | Second DNS for IPv6 for the zone.
domain string |  | Domain the zone is related to. Zone is a public zone if not set.
guest_cidr_address string |  | Guest CIDR address for the zone.
id string |  | uuid of the existing zone.
internal_dns1 string |  | First internal DNS for the zone. If not set dns1 will be used on state=present.
internal_dns2 string |  | Second internal DNS for the zone.

local_storage_enabled
boolean

Choices:
- no
- yes

Whether to enable local storage for the zone or not..

name string / required |  | Name of the zone.
network_domain string |  | Network domain for the zone.

network_type
string

Choices:
- Basic ←
- Advanced

Network type of the zone.

securitygroups_enabled
boolean

Choices:
- no
- yes

Whether the zone is security group enabled or not.

state
string

Choices:
- present ←
- enabled
- disabled
- absent

State of the zone.

## 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 zone is present
      cs_zone:
        name: ch-zrh-ix-01
        dns1: 8.8.8.8
        dns2: 8.8.4.4
        network_type: basic
      delegate_to: localhost

    - name: Ensure a zone is disabled
      cs_zone:
        name: ch-zrh-ix-01
        state: disabled
      delegate_to: localhost

    - name: Ensure a zone is enabled
      cs_zone:
        name: ch-zrh-ix-01
        state: enabled
      delegate_to: localhost

    - name: Ensure a zone is absent
      cs_zone:
        name: 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 zone. Sample: Enabled
dhcp_provider string | success | DHCP provider for the zone Sample: VirtualRouter
dns1 string | success | First DNS for the zone. Sample: 8.8.8.8
dns1_ipv6 string | success | First IPv6 DNS for the zone. Sample: 2001:4860:4860::8888
dns2 string | success | Second DNS for the zone. Sample: 8.8.4.4
dns2_ipv6 string | success | Second IPv6 DNS for the zone. Sample: 2001:4860:4860::8844
domain string | success | Domain the zone is related to. Sample: ROOT
guest_cidr_address string | success | Guest CIDR address for the zone Sample: 10.1.1.0/24
id string | success | UUID of the zone. Sample: 04589590-ac63-4ffc-93f5-b698b8ac38b6
internal_dns1 string | success | First internal DNS for the zone. Sample: 8.8.8.8
internal_dns2 string | success | Second internal DNS for the zone. Sample: 8.8.4.4
local_storage_enabled boolean | success | Local storage offering enabled.
name string | success | Name of the zone. Sample: zone01
network_domain string | success | Network domain for the zone. Sample: example.com
network_type string | success | Network type for the zone. Sample: basic
securitygroups_enabled boolean | success | Security groups support is enabled.
tags dictionary | success | List of resource tags associated with the zone. Sample: [{'key': 'foo', 'value': 'bar'}]
zone_token string | success | Zone token Sample: ccb0a60c-79c8-3230-ab8b-8bdbe8c45bb7

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