On this page
lxd_profile – Manage LXD profiles
New in version 2.2.
Synopsis
- Management of LXD profiles
 
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
| client_cert
        
        -
         | 
      Default: 
        "\"{}/.config/lxc/client.crt\" .format(os.environ[\"HOME\"])"
         | 
      
        
        The client certificate file path.
        
       aliases: cert_file  | 
     
| client_key
        
        -
         | 
      Default: 
        "\"{}/.config/lxc/client.key\" .format(os.environ[\"HOME\"])"
         | 
      
        
        The client certificate key file path.
        
       aliases: key_file  | 
     
| config
        
        -
         | 
      
        
        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
        
        -
        
       
        added in 2.5
         | 
      
        
        Description of the profile.
         | 
     |
| devices
        
        -
         | 
      
        
        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
         | 
     |
| name
        
        - / required
         | 
      
        
        Name of a profile.
         | 
     |
| new_name
        
        -
         | 
      
        
        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
        
        -
        
       
        added in 2.8
         | 
      Default: 
        "unix:/var/snap/lxd/common/lxd/unix.socket"
         | 
      
        
        The unix domain socket path when LXD is installed by snap package manager.
         | 
     
| state
        
        -
         | 
      
       
  | 
      
        
        Define the state of a profile.
         | 
     
| trust_password
        
        -
         | 
      
        
        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
        
        -
         | 
      Default: 
        "unix:/var/lib/lxd/unix.socket"
         | 
      
        
        The unix domain socket path or the https URL for the LXD server.
         | 
     
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
      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 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 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, the following are the fields unique to this module:
| Key | Returned | Description | 
|---|---|---|
| actions
        
        list
         | 
      success | 
        
        List of actions performed for the profile.
         Sample:
        
       
        ["create"]
         | 
     
| logs
        
        list
         | 
      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
         | 
     
Status
- This module is not guaranteed to have a backwards compatible interface. [preview]
 - This module is maintained by the Ansible Community. [community]
 
Authors
- Hiroaki Nakamura (@hnakamur)
 
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/2.8/modules/lxd_profile_module.html