Note
This plugin is part of the community.general collection (version 3.8.1).
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 community.general
.
To use it in a playbook, specify: community.general.lxd_profile
.
Parameter | Choices/Defaults | Comments |
---|---|---|
client_cert path | The client certificate file path. If not specified, it defaults to $HOME/.config/lxc/client.crt .aliases: cert_file | |
client_key path | The client certificate key file path. If not specified, it defaults to $HOME/.config/lxc/client.key .aliases: key_file | |
config dictionary | 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. | |
description string | Description of the profile. | |
devices dictionary | 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
| |
merge_profile boolean added in 2.1.0 of community.general |
| Merge the configuration of the present profile with the new desired configuration, instead of replacing it. |
name string / required | Name of a profile. | |
new_name string | 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
| |
snap_url string | Default: "unix:/var/snap/lxd/common/lxd/unix.socket" | The unix domain socket path when LXD is installed by snap package manager. |
state string |
| Define the state of a profile. |
trust_password string | 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 string | Default: "unix:/var/lib/lxd/unix.socket" | The unix domain socket path or the https URL for the LXD server. |
Note
# 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 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
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
actions list / elements=string | success | List of actions performed for the profile. Sample: ["create"] |
logs list / elements=string | when ansible-playbook is invoked with -vvvv. | The logs of requests and responses. Sample: (too long to be placed here) |
old_state string | success | The old state of the profile Sample: absent |
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/lxd_profile_module.html