lxd_profile - Manage LXD profiles
New in version 2.2.
Synopsis
- Management of LXD profiles
Options
parameter | required | default | choices | comments |
---|---|---|---|---|
cert_file | no | "{}/.config/lxc/client.crt" .format(os.environ["HOME"]) | The client certificate file path. | |
config | no | The config for the container (e.g. {"limits.memory": "4GB"}). See https://github.com/lxc/lxd/blob/master/doc/rest-api.md#patch-3
If the profile already exists and its "config" value in metadata obtained from GET /1.0/profiles/<name> https://github.com/lxc/lxd/blob/master/doc/rest-api.md#get-19 are different, they this module tries to apply the configurations. Not all config values are supported to apply the existing profile. Maybe you need to delete and recreate a profile. | ||
devices | no | The devices for the profile (e.g. {"rootfs": {"path": "/dev/kvm", "type": "unix-char"}). See https://github.com/lxc/lxd/blob/master/doc/rest-api.md#patch-3
| ||
key_file | no | "{}/.config/lxc/client.key" .format(os.environ["HOME"]) | The client certificate key file path. | |
name | yes | Name of a profile. | ||
new_name | no | A new name of a profile. If this parameter is specified a profile will be renamed to this name. See https://github.com/lxc/lxd/blob/master/doc/rest-api.md#post-11
| ||
state | no | present |
| Define the state of a profile. |
trust_password | no | The client trusted password. You need to set this password on the LXD server before running this module using the following command. lxc config set core.trust_password <some random password> See https://www.stgraber.org/2016/04/18/lxd-api-direct-interaction/
If trust_password is set, this module send a request for authentication before sending any requests. | ||
url | no | unix:/var/lib/lxd/unix.socket | The unix domain socket path or the https URL for the LXD server. |
Examples
# An example for creating a profile - hosts: localhost connection: local tasks: - name: Create a profile lxd_profile: name: macvlan state: present config: {} description: my macvlan profile devices: eth0: nictype: macvlan parent: br0 type: nic # An example for creating a profile via http connection - hosts: localhost connection: local tasks: - name: create macvlan profile lxd_profile: url: https://127.0.0.1:8443 # These cert_file and key_file values are equal to the default values. #cert_file: "{{ lookup('env', 'HOME') }}/.config/lxc/client.crt" #key_file: "{{ lookup('env', 'HOME') }}/.config/lxc/client.key" trust_password: mypassword name: macvlan state: present config: {} description: my macvlan profile devices: eth0: nictype: macvlan parent: br0 type: nic # An example for deleting a profile - hosts: localhost connection: local tasks: - name: Delete a profile lxd_profile: name: macvlan state: absent # An example for renaming a profile - hosts: localhost connection: local tasks: - name: Rename a profile lxd_profile: name: macvlan new_name: macvlan2 state: present
Return Values
Common return values are documented here Return Values, the following are the fields unique to this module:
name | description | returned | type | sample |
---|---|---|---|---|
actions | List of actions performed for the profile. | success | list | ["create"] |
logs | The logs of requests and responses. | when ansible-playbook is invoked with -vvvv. | list | (too long to be placed here) |
old_state | The old state of the profile | success | string | absent |
Notes
Note
- Profiles must have a unique name. If you attempt to create a profile with a name that already existed in the users namespace the module will simply return as “unchanged”.
Status
This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.
For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/lxd_profile_module.html