ngine_io.cloudstack.cs_template – Manages templates on Apache CloudStack based clouds.
ngine_io.cloudstack.cs_template – Manages templates on Apache CloudStack based clouds.
Note
This plugin is part of the ngine_io.cloudstack collection (version 2.0.0).
To install it use: ansible-galaxy collection install ngine_io.cloudstack.
To use it in a playbook, specify: ngine_io.cloudstack.cs_template.
New in version 0.1.0: of ngine_io.cloudstack
Synopsis
- Register templates from an URL.
- Create templates from a ROOT volume of a stopped VM or its snapshot.
- Update, extract and delete templates.
Requirements
The below requirements are needed on the host that executes this module.
- python >= 2.6
- cs >= 0.9.0
Parameters
| 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 |
|
api_key string / required |
API key of the CloudStack API. If not given, the | |
|
api_secret string / required |
Secret key of the CloudStack API. If not set, the | |
|
api_timeout integer |
Default: 10 |
HTTP timeout in seconds. If not given, the |
|
api_url string / required |
URL of the CloudStack API e.g. https://cloud.example.com/client/api. If not given, the | |
|
api_verify_ssl_cert string |
Verify CA authority cert file. If not given, the | |
|
bits integer |
Default: 64 |
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 |
|
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 | |
|
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 |
|
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 |
|
is_public boolean |
|
Register the template to be publicly available to all users. Only used if state is |
|
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 / elements=dictionary |
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: [].
| |
|
template_filter string |
|
Name of the filter used to search for the template. The filter |
|
template_find_options list / elements=string |
Default: [] |
Options to find a template uniquely. More than one allowed.
|
|
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. Required when cross_zones is |
Notes
Note
- A detailed guide about cloudstack modules can be found in the CloudStack Cloud Guide.
- This module supports check mode.
Examples
- name: register a systemvm template
ngine_io.cloudstack.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)
- name: Create a template from a stopped virtual machine's volume
ngine_io.cloudstack.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
# Note: Use template_find_option(s) when a template name is not unique
- name: Create a template from a stopped virtual machine's volume
ngine_io.cloudstack.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
- name: create a template from a virtual machine's root volume snapshot
ngine_io.cloudstack.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
- name: Remove a template
ngine_io.cloudstack.cs_template:
name: systemvm-4.2
cross_zones: yes
state: absent
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 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 / elements=string |
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: |
|
zone string |
success |
Name of zone the template is registered in.
Sample: zuerich |
Authors
- René Moser (@resmo)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ngine_io/cloudstack/cs_template_module.html