community.general.lxd_profile module – Manage LXD profiles
Note
This module is part of the community.general collection (version 11.4.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 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 (for example  See https://documentation.ubuntu.com/lxd/en/latest/api/#/profiles/profile_get. If the profile already exists and its  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 (for example  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 is 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:  If  | |
| 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 | Returns 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 simply returns 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:  | 
