ngine_io.cloudstack.user_data module – Manages user data on Apache CloudStack based clouds.

Note

This module is part of the ngine_io.cloudstack collection (version 3.3.0).

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. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: ngine_io.cloudstack.user_data.

New in ngine_io.cloudstack 3.1.0

Synopsis

  • Create and remove user data records.

  • Updating existing user data is not supported by the CloudStack API.

  • When the requested values differ from an existing record, the module keeps the existing record and shows a warning.

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 2.6

  • cs >= 0.9.0

Parameters

Parameter

Comments

account

string

Account the user data 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.

Choices:

  • "get" ← (default)

  • "post"

api_key

string / required

API key of the CloudStack API.

If not given, the CLOUDSTACK_KEY env variable is considered.

api_secret

string / required

Secret key of the CloudStack API.

If not set, the CLOUDSTACK_SECRET env variable is considered.

api_timeout

integer

HTTP timeout in seconds.

If not given, the CLOUDSTACK_TIMEOUT env variable is considered.

Default: 10

api_url

string / required

URL of the CloudStack API e.g. https://cloud.example.com/client/api.

If not given, the CLOUDSTACK_ENDPOINT env variable is considered.

api_verify_ssl_cert

string

Verify CA authority cert file.

If not given, the CLOUDSTACK_VERIFY env variable is considered.

domain

string

Domain the user data is related to.

name

string / required

Name of the user data record.

params

list / elements=string

List of variables declared in the user data content.

Only considered on creation and will not be updated if the user data record already exists.

project

string

Project the user data is related to.

state

string

State of the user data record.

Choices:

  • "present" ← (default)

  • "absent"

user_data

aliases: userdata

string

User data content to register.

Required on state=present.

Only considered on creation and will not be updated if the user data record already exists.

validate_certs

boolean

added in ngine_io.cloudstack 2.4.0

If false, SSL certificates will not be validated.

If not given, the CLOUDSTACK_DANGEROUS_NO_TLS_VERIFY env variable is considered.

This should only be used on personally controlled sites using self-signed certificates.

Choices:

  • false

  • true ← (default)

Notes

Note

  • A detailed guide about cloudstack modules can be found in the CloudStack Cloud Guide.

  • This module supports check mode.

Examples

- name: Create registered user data
  ngine_io.cloudstack.user_data:
    name: cloud-init-basic
    user_data: |
      #cloud-config
      package_upgrade: true
      packages:
        - tmux

- name: Create registered user data with declared variables
  ngine_io.cloudstack.user_data:
    name: bootstrap-template
    user_data: |
      #!/bin/sh
      echo ${hostname} >/etc/hostname
    params:
      - hostname

- name: Remove registered user data
  ngine_io.cloudstack.user_data:
    name: cloud-init-basic
    state: absent

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

account

string

Account that owns the user data record.

Returned: success

Sample: "admin"

domain

string

Domain that owns the user data record.

Returned: success

Sample: "ROOT"

id

string

UUID of the user data record.

Returned: success

Sample: "119aa0be-67bc-41d5-9e3f-3660c44f90f0"

name

string

Name of the user data record.

Returned: success

Sample: "cloud-init-basic"

params

list / elements=string

Declared variables for the registered user data.

Returned: success

Sample: ["hostname"]

project

string

Project that owns the user data record.

Returned: success

Sample: "sample-project"

user_data

string

Decoded user data content.

Returned: success

Sample: "#cloud-config\npackage_upgrade: true\n"

Authors

  • René Moser (@resmo)