community.general.lxd_profile module – Manage LXD profiles
Note
This module is part of the community.general collection (version 9.4.0).
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 community.general
.
To use it in a playbook, specify: community.general.lxd_profile
.
Synopsis
Management of LXD profiles
Parameters
Parameter |
Comments |
---|---|
The client certificate file path. If not specified, it defaults to |
|
The client certificate key file path. If not specified, it defaults to |
|
The config for the instance (e.g. {“limits.memory”: “4GB”}). See https://documentation.ubuntu.com/lxd/en/latest/api/#/profiles/profile_get. If the profile already exists and its “config” value in metadata obtained from GET /1.0/profiles/<name> https://documentation.ubuntu.com/lxd/en/latest/api/#/profiles/profile_get are different, then this module tries to apply the configurations https://documentation.ubuntu.com/lxd/en/latest/api/#/profiles/profile_put. Not all config values are supported to apply the existing profile. Maybe you need to delete and recreate a profile. |
|
Description of the profile. |
|
The devices for the profile (e.g. {“rootfs”: {“path”: “/dev/kvm”, “type”: “unix-char”}). See https://documentation.ubuntu.com/lxd/en/latest/api/#/profiles/profile_get. |
|
Merge the configuration of the present profile with the new desired configuration, instead of replacing it. Choices:
|
|
Name of a profile. |
|
A new name of a profile. If this parameter is specified a profile will be renamed to this name. See https://documentation.ubuntu.com/lxd/en/latest/api/#/profiles/profile_post. |
|
Project of a profile. See https://documentation.ubuntu.com/lxd/en/latest/projects/. |
|
The unix domain socket path when LXD is installed by snap package manager. Default: |
|
Define the state of a profile. Choices:
|
|
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. |
|
The unix domain socket path or the https URL for the LXD server. Default: |
Attributes
Attribute |
Support |
Description |
---|---|---|
Support: none |
Can run in |
|
Support: none |
Will return details on what has changed (or possibly needs changing in |
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”.
Examples
# An example for creating a profile
- hosts: localhost
connection: local
tasks:
- name: Create a profile
community.general.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 in project mytestproject
- hosts: localhost
connection: local
tasks:
- name: Create a profile
community.general.lxd_profile:
name: testprofile
project: mytestproject
state: present
config: {}
description: test profile in project mytestproject
devices: {}
# An example for creating a profile via http connection
- hosts: localhost
connection: local
tasks:
- name: Create macvlan profile
community.general.lxd_profile:
url: https://127.0.0.1:8443
# These client_cert and client_key values are equal to the default values.
#client_cert: "{{ lookup('env', 'HOME') }}/.config/lxc/client.crt"
#client_key: "{{ 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 modify/merge a profile
- hosts: localhost
connection: local
tasks:
- name: Merge a profile
community.general.lxd_profile:
merge_profile: true
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
community.general.lxd_profile:
name: macvlan
state: absent
# An example for renaming a profile
- hosts: localhost
connection: local
tasks:
- name: Rename a profile
community.general.lxd_profile:
name: macvlan
new_name: macvlan2
state: present
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
List of actions performed for the profile. Returned: success Sample: |
|
The logs of requests and responses. Returned: when ansible-playbook is invoked with -vvvv. Sample: |
|
The old state of the profile Returned: success Sample: |