The below requirements are needed on the host that executes this module.
Parameter | Choices/Defaults | Comments |
---|---|---|
account string | Account the template, snapshot or VM is related to. | |
api_http_method string |
| 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. | |
bits integer |
| 32 or 64 bits support. |
checksum string | The MD5 checksum value of this template. If set, we search by checksum instead of name. | |
cross_zones boolean |
| Whether the template should be synced or removed across zones. Only used if state is present or absent . |
details string | Template details in key/value pairs. | |
display_text string | Display text of the template. | |
domain string | Domain the template, snapshot or VM is related to. | |
format string |
| The format for the template. Only considered if state=present. |
hypervisor string | Name the hypervisor to be used for creating the new template. Relevant when using state=present. Possible values are KVM , VMware , BareMetal , XenServer , LXC , HyperV , UCS , OVM , Simulator . | |
is_dynamically_scalable boolean |
| Register the template having XS/VMware tools installed in order to support dynamic scaling of VM CPU/memory. Only used if state is present . |
is_extractable boolean |
| Allows the template or its derivatives to be extractable. |
is_featured boolean |
| Register the template to be featured. Only used if state is present . |
is_public boolean |
| Register the template to be publicly available to all users. Only used if state is present . |
is_ready boolean |
| Note: this flag was not implemented and therefore marked as deprecated. Deprecated, will be removed in version 2.11. |
is_routing boolean |
| Sets the template type to routing, i.e. if template is used to deploy routers. Only considered if url is used. |
mode string |
| Mode for the template extraction. Only used if state=extracted. |
name string / required | Name of the template. | |
os_type string | OS type that best represents the OS of this template. | |
password_enabled boolean |
| Enable template password reset support. |
poll_async boolean |
| Poll async jobs until job has finished. |
project string | Name of the project the template to be registered in. | |
requires_hvm boolean |
| Whether the template requires HVM or not. Only considered while creating the template. |
snapshot string | Name of the snapshot, created from the VM ROOT volume, the template will be created from.
vm is required together with this argument. | |
sshkey_enabled boolean |
| True if the template supports the sshkey upload feature. Only considered if url is used (API limitation). |
state string |
| State of the template. |
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 | |
template_filter string |
| Name of the filter used to search for the template. The filter all was added in 2.7. |
template_find_options list added in 2.7 |
[] | Options to find a template uniquely. More than one allowed. aliases: template_find_option |
template_tag string | The tag for this template. | |
url string | URL of where the template is hosted on state=present. URL to which the template would be extracted on state=extracted. Mutually exclusive with vm. | |
vm string | VM name the template will be created from its volume or alternatively from a snapshot. VM must be in stopped state if created from its volume. Mutually exclusive with url. | |
zone string | Name of the zone you wish the template to be registered or deleted from. If not specified, first found zone will be used. |
Note
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.- name: register a systemvm template cs_template: name: systemvm-vmware-4.5 url: "http://packages.shapeblue.com/systemvmtemplate/4.5/systemvm64template-4.5-vmware.ova" hypervisor: VMware format: OVA cross_zones: yes os_type: Debian GNU/Linux 7(64-bit) delegate_to: localhost - name: Create a template from a stopped virtual machine's volume cs_template: name: Debian 9 (64-bit) 20GB ({{ ansible_date_time.date }}) vm: debian-9-base-vm os_type: Debian GNU/Linux 9 (64-bit) zone: tokio-ix password_enabled: yes is_public: yes delegate_to: localhost # Note: Use template_find_option(s) when a template name is not unique - name: Create a template from a stopped virtual machine's volume cs_template: name: Debian 9 (64-bit) display_text: Debian 9 (64-bit) 20GB ({{ ansible_date_time.date }}) template_find_option: display_text vm: debian-9-base-vm os_type: Debian GNU/Linux 9 (64-bit) zone: tokio-ix password_enabled: yes is_public: yes delegate_to: localhost - name: create a template from a virtual machine's root volume snapshot cs_template: name: Debian 9 (64-bit) Snapshot ROOT-233_2015061509114 snapshot: ROOT-233_2015061509114 os_type: Debian GNU/Linux 9 (64-bit) zone: tokio-ix password_enabled: yes is_public: yes delegate_to: localhost - name: Remove a template cs_template: name: systemvm-4.2 cross_zones: yes state: absent delegate_to: localhost
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
account string | success | Account the template is related to. Sample: example account |
checksum string | if available | MD5 checksum of the template. Sample: 0b31bccccb048d20b551f70830bb7ad0 |
created string | success | Date of registering. Sample: 2015-03-29T14:57:06+0200 |
cross_zones boolean | if available | true if the template is managed across all zones, false otherwise. |
display_text string | if available | Display text of the template. Sample: Debian 7.7 64-bit minimal 2015-03-19 |
domain string | success | Domain the template is related to. Sample: example domain |
format string | if available | Format of the template. Sample: OVA |
hypervisor string | if available | Hypervisor related to this template. Sample: VMware |
id string | success | UUID of the template or extracted object. Sample: a6f7a5fc-43f8-11e5-a151-feff819cdc9f |
is_extractable boolean | if available | True if the template is extractable. Sample: True |
is_featured boolean | if available | True if the template is featured. Sample: True |
is_public boolean | if available | True if the template is public. Sample: True |
is_ready boolean | if available | True if the template is ready to be deployed from. Sample: True |
mode string | on state=extracted | Mode of extraction Sample: http_download |
name string | success | Name of the template or extracted object. Sample: Debian 7 64-bit |
os_type string | if available | Type of the OS. Sample: CentOS 6.5 (64-bit) |
password_enabled boolean | if available | True if the reset password feature is enabled, false otherwise. |
project string | success | Name of project the template is related to. Sample: Production |
sshkey_enabled boolean | if available | true if template is sshkey enabled, false otherwise. |
state string | on state=extracted | State of the extracted template Sample: DOWNLOAD_URL_CREATED |
status string | success | Status of the template or extracted object. Sample: Download Complete |
tags list | if available | List of resource tags associated with the template. Sample: [ { "key": "foo", "value": "bar" } ] |
template_tag string | if available | Template tag related to this template. Sample: special |
template_type string | if available | Type of the template. Sample: USER |
url string | on state=extracted | Url to which the template is extracted to Sample: http://1.2.3.4/userdata/eb307f13-4aca-45e8-b157-a414a14e6b04.ova |
zone string | success | Name of zone the template is registered in. Sample: zuerich |
Hint
If you notice any issues in this documentation, you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/cs_template_module.html