# cs_configuration – Manages configuration on Apache CloudStack based clouds

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

## Synopsis

- Manages global, zone, account, storage and cluster configurations.

## 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
--- | --- | ---
account string |  | Ensure the value for corresponding account.

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 |  | Ensure the value for corresponding cluster.
domain string | Default: "ROOT" | Domain the account is related to. Only considered if account is used.
name string / required |  | Name of the configuration.
storage string |  | Ensure the value for corresponding storage pool.
value string / required |  | Value of the configuration.
zone string |  | Ensure the value for corresponding 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 global configuration
      cs_configuration:
        name: router.reboot.when.outofband.migrated
        value: false
      delegate_to: localhost

    - name: Ensure zone configuration
      cs_configuration:
        name: router.reboot.when.outofband.migrated
        zone: ch-gva-01
        value: true
      delegate_to: localhost

    - name: Ensure storage configuration
      cs_configuration:
        name: storage.overprovisioning.factor
        storage: storage01
        value: 2.0
      delegate_to: localhost

    - name: Ensure account configuration
      cs_configuration:
        name: allow.public.user.templates
        value: false
        account: acme inc
        domain: customers
      delegate_to: localhost

## Return Values

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

Key | Returned | Description
--- | --- | ---
account string | success | Account of the configuration. Sample: admin
category string | success | Category of the configuration. Sample: Advanced
cluster string | success | Cluster of the configuration. Sample: cluster01
description string | success | Description of the configuration. Sample: Setup the host to do multipath
Domain string | success | Domain of account of the configuration. Sample: ROOT
name string | success | Name of the configuration. Sample: zone.vlan.capacity.notificationthreshold
scope string | success | Scope (zone/cluster/storagepool/account) of the parameter that needs to be updated. Sample: storagepool
storage string | success | Storage of the configuration. Sample: storage01
value string | success | Value of the configuration. Sample: 0.75
zone string | success | Zone of the configuration. Sample: ch-gva-01

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