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.2.2).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
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 |
Comments |
---|---|
Account the template, snapshot or VM is related to. |
|
HTTP method used to query the API endpoint. If not given, the Choices:
|
|
API key of the CloudStack API. If not given, the |
|
Secret key of the CloudStack API. If not set, the |
|
HTTP timeout in seconds. If not given, the Default: 10 |
|
URL of the CloudStack API e.g. https://cloud.example.com/client/api. If not given, the |
|
Verify CA authority cert file. If not given, the |
|
32 or 64 bits support. Choices:
Default: 64 |
|
The MD5 checksum value of this template. If set, we search by checksum instead of name. |
|
Whether the template should be synced or removed across zones. Only used if state is Choices:
|
|
Template details in key/value pairs. |
|
Display text of the template. |
|
Domain the template, snapshot or VM is related to. |
|
The format for the template. Only considered if state=present. Choices:
|
|
Name the hypervisor to be used for creating the new template. Relevant when using state=present. Possible values are |
|
Register the template having XS/VMware tools installed in order to support dynamic scaling of VM CPU/memory. Only used if state is Choices:
|
|
Allows the template or its derivatives to be extractable. Choices:
|
|
Register the template to be featured. Only used if state is Choices:
|
|
Register the template to be publicly available to all users. Only used if state is Choices:
|
|
Sets the template type to routing, i.e. if template is used to deploy routers. Only considered if url is used. Choices:
|
|
Mode for the template extraction. Only used if state=extracted. Choices:
|
|
Name of the template. |
|
OS type that best represents the OS of this template. |
|
Enable template password reset support. Choices:
|
|
Poll async jobs until job has finished. Choices:
|
|
Name of the project the template to be registered in. |
|
Whether the template requires HVM or not. Only considered while creating the template. Choices:
|
|
Name of the snapshot, created from the VM ROOT volume, the template will be created from. vm is required together with this argument. |
|
True if the template supports the sshkey upload feature. Only considered if url is used (API limitation). Choices:
|
|
State of the template. Choices:
|
|
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: []. |
|
Name of the filter used to search for the template. The filter Choices:
|
|
Options to find a template uniquely. More than one allowed. Choices:
Default: [] |
|
The tag for this template. |
|
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 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. |
|
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 |
Description |
---|---|
Account the template is related to. Returned: success Sample: “example account” |
|
MD5 checksum of the template. Returned: if available Sample: “0b31bccccb048d20b551f70830bb7ad0” |
|
Date of registering. Returned: success Sample: “2015-03-29T14:57:06+0200” |
|
true if the template is managed across all zones, false otherwise. Returned: if available Sample: false |
|
Display text of the template. Returned: if available Sample: “Debian 7.7 64-bit minimal 2015-03-19” |
|
Domain the template is related to. Returned: success Sample: “example domain” |
|
Format of the template. Returned: if available Sample: “OVA” |
|
Hypervisor related to this template. Returned: if available Sample: “VMware” |
|
UUID of the template or extracted object. Returned: success Sample: “a6f7a5fc-43f8-11e5-a151-feff819cdc9f” |
|
True if the template is extractable. Returned: if available Sample: true |
|
True if the template is featured. Returned: if available Sample: true |
|
True if the template is public. Returned: if available Sample: true |
|
True if the template is ready to be deployed from. Returned: if available Sample: true |
|
Mode of extraction Returned: on state=extracted Sample: “http_download” |
|
Name of the template or extracted object. Returned: success Sample: “Debian 7 64-bit” |
|
Type of the OS. Returned: if available Sample: “CentOS 6.5 (64-bit)” |
|
True if the reset password feature is enabled, false otherwise. Returned: if available Sample: false |
|
Name of project the template is related to. Returned: success Sample: “Production” |
|
true if template is sshkey enabled, false otherwise. Returned: if available Sample: false |
|
State of the extracted template Returned: on state=extracted Sample: “DOWNLOAD_URL_CREATED” |
|
Status of the template or extracted object. Returned: success Sample: “Download Complete” |
|
List of resource tags associated with the template. Returned: if available Sample: “[ { \”key\”: \”foo\”, \”value\”: \”bar\” } ]” |
|
Template tag related to this template. Returned: if available Sample: “special” |
|
Type of the template. Returned: if available Sample: “USER” |
|
Url to which the template is extracted to Returned: on state=extracted Sample: “http://1.2.3.4/userdata/eb307f13-4aca-45e8-b157-a414a14e6b04.ova” |
|
Name of zone the template is registered in. Returned: success Sample: “zuerich” |
Authors
René Moser (@resmo)