community.general.lxd_project 模块 – 管理 LXD 项目

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则您可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定: community.general.lxd_project

community.general 4.8.0 中的新增功能

概要

  • LXD 项目的管理。

参数

参数

注释

client_cert

别名:cert_file

路径

客户端证书文件路径。

如果未指定,则默认为 $HOME/.config/lxc/client.crt

client_key

别名:key_file

路径

客户端证书密钥文件路径。

如果未指定,则默认为 $HOME/.config/lxc/client.key

config

字典

项目的配置(例如 {"features.profiles": "true"})。参见 https://documentation.ubuntu.com/lxd/en/latest/api/#/projects/project_get

如果项目已存在,并且从 GET /1.0/projects/<name> https://documentation.ubuntu.com/lxd/en/latest/api/#/projects/project_get 获取的元数据中的“config”值不同,则此模块将尝试应用配置 https://documentation.ubuntu.com/lxd/en/latest/api/#/projects/project_put

description

字符串

项目的描述。

merge_project

布尔值

将现有项目的配置与新的所需配置合并,而不是替换它。如果合并后配置相同,则不会进行任何更改。

选项

  • false ← (默认)

  • true

name

字符串 / 必需

项目名称。

new_name

字符串

项目的新的名称。

如果指定此参数,则项目将重命名为此名称。参见 https://documentation.ubuntu.com/lxd/en/latest/api/#/projects/project_post

snap_url

字符串

通过 snap 包管理器安装 LXD 时使用的 Unix 域套接字路径。

默认值: "unix:/var/snap/lxd/common/lxd/unix.socket"

state

字符串

定义项目的狀態。

选项

  • "present" ← (默认)

  • "absent"

trust_password

字符串

客户端信任密码。

您需要在使用以下命令运行此模块之前,在 LXD 服务器上设置此密码:lxc config set core.trust_password <some random password> 参见 https://www.stgraber.org/2016/04/18/lxd-api-direct-interaction/

如果设置了 trust_password,则此模块会在发送任何请求之前发送身份验证请求。

url

字符串

LXD 服务器的 Unix 域套接字路径或 https URL。

默认值: "unix:/var/lib/lxd/unix.socket"

属性

属性

支持

描述

check_mode

支持:不支持

可以在 check_mode 下运行并返回更改状态预测,而无需修改目标。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。

备注

注意

  • 项目必须具有唯一的名称。如果您尝试创建名称已存在于用户命名空间中的项目,则模块将简单地返回为“未更改”。

示例

# An example for creating a project
- hosts: localhost
  connection: local
  tasks:
    - name: Create a project
      community.general.lxd_project:
        name: ansible-test-project
        state: present
        config: {}
        description: my new project

# An example for renaming a project
- hosts: localhost
  connection: local
  tasks:
    - name: Rename ansible-test-project to ansible-test-project-new-name
      community.general.lxd_project:
        name: ansible-test-project
        new_name: ansible-test-project-new-name
        state: present
        config: {}
        description: my new project

返回值

常见的返回值已在 此处 记录,以下是此模块独有的字段

描述

actions

列表 / 元素=字符串

为项目执行的操作列表。

返回:成功

示例: ["create"]

logs

列表 / 元素=字典

请求和响应的日志。

返回:当使用 -vvvv 调用 ansible-playbook 时。

request

字典

发送到 LXD 服务器的 HTTP 请求。

返回:成功

json

字符串

HTTP请求的JSON正文。

返回:成功

示例: "(内容过长,此处省略)"

method

字符串

HTTP请求的方法。

返回:成功

示例: "GET"

timeout

整数

HTTP请求的超时时间,如果未设置则为null

返回:成功

url

字符串

HTTP请求的URL路径。

返回:成功

示例: "/1.0/projects/test-project"

response

字典

从LXD服务器接收到的HTTP响应。

返回:成功

json

字符串

HTTP响应的JSON。

返回:成功

示例: "(内容过长,此处省略)"

type

字符串

执行的操作类型,目前只有sent request

返回:成功

示例: "sent request"

old_state

字符串

项目的旧状态。

返回:成功

示例: "absent"

作者

  • Raymond Chang (@we10710aa)