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