community / community.general / 0.1.1 / module / cs_template Manages templates on Apache CloudStack based clouds. Authors: René Moser (@resmo) stableinterface | supported by communitycommunity.general.cs_template (0.1.1) — module
Install with ansible-galaxy collection install community.general:==0.1.1
collections: - name: community.general version: 0.1.1
Register templates from an URL.
Create templates from a ROOT volume of a stopped VM or its snapshot.
Update (since version 2.7), extract and delete templates.
- 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
vm: description: - 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 I(url). type: str url: description: - URL of where the template is hosted on I(state=present). - URL to which the template would be extracted on I(state=extracted). - Mutually exclusive with I(vm). type: str bits: choices: - 32 - 64 default: 64 description: - 32 or 64 bits support. type: int mode: choices: - http_download - ftp_upload default: http_download description: - Mode for the template extraction. - Only used if I(state=extracted). type: str name: description: - Name of the template. required: true type: str tags: aliases: - tag description: - List of tags. Tags are a list of dictionaries having keys I(key) and I(value). - 'To delete all tags, set a empty list e.g. I(tags: []).' type: list zone: description: - Name of the zone you wish the template to be registered or deleted from. - If not specified, first found zone will be used. type: str state: choices: - present - absent - extracted default: present description: - State of the template. type: str domain: description: - Domain the template, snapshot or VM is related to. type: str format: choices: - QCOW2 - RAW - VHD - OVA description: - The format for the template. - Only considered if I(state=present). type: str account: description: - Account the template, snapshot or VM is related to. type: str api_key: description: - API key of the CloudStack API. - If not given, the C(CLOUDSTACK_KEY) env variable is considered. - As the last option, the value is taken from the ini config file, also see the notes. type: str api_url: description: - URL of the CloudStack API e.g. https://cloud.example.com/client/api. - If not given, the C(CLOUDSTACK_ENDPOINT) env variable is considered. - As the last option, the value is taken from the ini config file, also see the notes. type: str details: description: - Template details in key/value pairs. type: str os_type: description: - OS type that best represents the OS of this template. type: str project: description: - Name of the project the template to be registered in. type: str checksum: description: - The MD5 checksum value of this template. - If set, we search by checksum instead of name. type: str is_ready: description: - 'Note: this flag was not implemented and therefore marked as deprecated.' - Deprecated, will be removed in version 2.11. type: bool snapshot: description: - Name of the snapshot, created from the VM ROOT volume, the template will be created from. - I(vm) is required together with this argument. type: str is_public: description: - Register the template to be publicly available to all users. - Only used if I(state) is C(present). type: bool api_region: default: cloudstack description: - Name of the ini section in the C(cloustack.ini) file. - If not given, the C(CLOUDSTACK_REGION) env variable is considered. type: str api_secret: description: - Secret key of the CloudStack API. - If not set, the C(CLOUDSTACK_SECRET) env variable is considered. - As the last option, the value is taken from the ini config file, also see the notes. type: str hypervisor: description: - Name the hypervisor to be used for creating the new template. - Relevant when using I(state=present). - Possible values are C(KVM), C(VMware), C(BareMetal), C(XenServer), C(LXC), C(HyperV), C(UCS), C(OVM), C(Simulator). type: str is_routing: description: - Sets the template type to routing, i.e. if template is used to deploy routers. - Only considered if I(url) is used. type: bool poll_async: default: true description: - Poll async jobs until job has finished. type: bool api_timeout: description: - HTTP timeout in seconds. - If not given, the C(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. type: int cross_zones: default: false description: - Whether the template should be synced or removed across zones. - Only used if I(state) is C(present) or C(absent). type: bool is_featured: description: - Register the template to be featured. - Only used if I(state) is C(present). type: bool display_text: description: - Display text of the template. type: str requires_hvm: description: - Whether the template requires HVM or not. - Only considered while creating the template. type: bool template_tag: description: - The tag for this template. type: str is_extractable: description: - Allows the template or its derivatives to be extractable. type: bool sshkey_enabled: description: - True if the template supports the sshkey upload feature. - Only considered if I(url) is used (API limitation). type: bool api_http_method: choices: - get - post description: - HTTP method used to query the API endpoint. - If not given, the C(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 C(get) if not specified. type: str template_filter: choices: - all - featured - self - selfexecutable - sharedexecutable - executable - community default: self description: - Name of the filter used to search for the template. - The filter C(all) was added in 2.7. type: str password_enabled: description: - Enable template password reset support. type: bool template_find_options: aliases: - template_find_option choices: - display_text - checksum - cross_zones default: [] description: - Options to find a template uniquely. - More than one allowed. type: list is_dynamically_scalable: description: - Register the template having XS/VMware tools installed in order to support dynamic scaling of VM CPU/memory. - Only used if I(state) is C(present). type: bool
account: description: Account the template is related to. returned: success sample: example account type: str checksum: description: MD5 checksum of the template. returned: if available sample: 0b31bccccb048d20b551f70830bb7ad0 type: str created: description: Date of registering. returned: success sample: 2015-03-29T14:57:06+0200 type: str cross_zones: description: true if the template is managed across all zones, false otherwise. returned: if available sample: false type: bool display_text: description: Display text of the template. returned: if available sample: Debian 7.7 64-bit minimal 2015-03-19 type: str domain: description: Domain the template is related to. returned: success sample: example domain type: str format: description: Format of the template. returned: if available sample: OVA type: str hypervisor: description: Hypervisor related to this template. returned: if available sample: VMware type: str id: description: UUID of the template or extracted object. returned: success sample: a6f7a5fc-43f8-11e5-a151-feff819cdc9f type: str is_extractable: description: True if the template is extractable. returned: if available sample: true type: bool is_featured: description: True if the template is featured. returned: if available sample: true type: bool is_public: description: True if the template is public. returned: if available sample: true type: bool is_ready: description: True if the template is ready to be deployed from. returned: if available sample: true type: bool mode: description: Mode of extraction returned: on state=extracted sample: http_download type: str name: description: Name of the template or extracted object. returned: success sample: Debian 7 64-bit type: str os_type: description: Type of the OS. returned: if available sample: CentOS 6.5 (64-bit) type: str password_enabled: description: True if the reset password feature is enabled, false otherwise. returned: if available sample: false type: bool project: description: Name of project the template is related to. returned: success sample: Production type: str sshkey_enabled: description: true if template is sshkey enabled, false otherwise. returned: if available sample: false type: bool state: description: State of the extracted template returned: on state=extracted sample: DOWNLOAD_URL_CREATED type: str status: description: Status of the template or extracted object. returned: success sample: Download Complete type: str tags: description: List of resource tags associated with the template. returned: if available sample: '[ { "key": "foo", "value": "bar" } ]' type: list template_tag: description: Template tag related to this template. returned: if available sample: special type: str template_type: description: Type of the template. returned: if available sample: USER type: str url: description: 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 type: str zone: description: Name of zone the template is registered in. returned: success sample: zuerich type: str