# cs_iso – Manages ISO images on Apache CloudStack based clouds

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

## Synopsis

- Register and remove ISO images.

## 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 |  | Account the ISO is related to.

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.

bootable
boolean

Choices:
- no
- yes

Register the ISO to be bootable. Only used if state is present.

checksum string |  | The MD5 checksum value of this ISO. If set, we search by checksum instead of name.

cross_zones
boolean
added in 2.4

Choices:
- no ←
- yes

Whether the ISO should be synced or removed across zones.
Mutually exclusive with zone.

display_text string added in 2.4 |  | Display text of the ISO. If not specified, name will be used.
domain string |  | Domain the ISO is related to.

is_dynamically_scalable
boolean

Choices:
- no
- yes

Register the ISO having XS/VMware tools installed inorder to support dynamic scaling of VM cpu/memory. Only used if state is present.

is_featured
boolean

Choices:
- no
- yes

Register the ISO to be featured. Only used if state is present.

is_public
boolean

Choices:
- no
- yes

Register the ISO to be publicly available to all users. Only used if state is present.

is_ready
boolean

Choices:
- no ←
- yes

This flag is used for searching existing ISOs. If set to `yes`, it will only list ISO ready for deployment e.g. successfully downloaded and installed. Recommended to set it to `no`.

iso_filter
string

Choices:
- featured
- self ←
- selfexecutable
- sharedexecutable
- executable
- community

Name of the filter used to search for the ISO.

name string / required |  | Name of the ISO.
os_type string |  | Name of the OS that best represents the OS of this ISO. If the iso is bootable this parameter needs to be passed. Required if state is present.

poll_async
boolean

Choices:
- no
- yes ←

Poll async jobs until job has finished.

project string |  | Name of the project the ISO to be registered in.

state
string

Choices:
- present ←
- absent

State of the ISO.

tags list added in 2.4 |  | List of tags. Tags are a list of dictionaries having keys key and value. To delete all tags, set a empty list e.g. tags: []. aliases: tag
url string |  | URL where the ISO can be downloaded from. Required if state is present.
zone string |  | Name of the zone you wish the ISO to be registered or deleted from. If not specified, first zone found will be 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: Register an ISO if ISO name does not already exist
      cs_iso:
        name: Debian 7 64-bit
        url: http://mirror.switch.ch/ftp/mirror/debian-cd/current/amd64/iso-cd/debian-7.7.0-amd64-netinst.iso
        os_type: Debian GNU/Linux 7(64-bit)
      delegate_to: localhost

    - name: Register an ISO with given name if ISO md5 checksum does not already exist
      cs_iso:
        name: Debian 7 64-bit
        url: http://mirror.switch.ch/ftp/mirror/debian-cd/current/amd64/iso-cd/debian-7.7.0-amd64-netinst.iso
        os_type: Debian GNU/Linux 7(64-bit)
        checksum: 0b31bccccb048d20b551f70830bb7ad0
      delegate_to: localhost

    - name: Remove an ISO by name
      cs_iso:
        name: Debian 7 64-bit
        state: absent
      delegate_to: localhost

    - name: Remove an ISO by checksum
      cs_iso:
        name: Debian 7 64-bit
        checksum: 0b31bccccb048d20b551f70830bb7ad0
        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
--- | --- | ---
account string | success | Account the ISO is related to. Sample: example account
bootable boolean added in 2.4 | success | True if the ISO is bootable. Sample: True
checksum string | success | MD5 checksum of the ISO. Sample: 0b31bccccb048d20b551f70830bb7ad0
created string | success | Date of registering. Sample: 2015-03-29T14:57:06+0200
cross_zones boolean added in 2.4 | success | true if the ISO is managed across all zones, false otherwise.
display_text string | success | Text to be displayed of the ISO. Sample: Debian 7.7 64-bit minimal 2015-03-19
domain string | success | Domain the ISO is related to. Sample: example domain
format string added in 2.4 | success | Format of the ISO. Sample: ISO
id string | success | UUID of the ISO. Sample: a6f7a5fc-43f8-11e5-a151-feff819cdc9f
is_featured boolean added in 2.4 | success | True if the ISO is featured. Sample: True
is_public boolean added in 2.4 | success | True if the ISO is public. Sample: True
is_ready boolean | success | True if the ISO is ready to be deployed from. Sample: True
name string | success | Name of the ISO. Sample: Debian 7 64-bit
os_type string added in 2.4 | success | Typo of the OS. Sample: CentOS 6.5 (64-bit)
project string | success | Project the ISO is related to. Sample: example project
status string | success | Status of the ISO. Sample: Successfully Installed
tags dictionary added in 2.4 | success | List of resource tags associated with the ISO. Sample: [ { "key": "foo", "value": "bar" } ]
zone string | success | Name of zone the ISO is registered in. Sample: zuerich

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