Spec-Zone.ru › Ansible

Модуль community.libvirt.virt_secret – управление секретами libvirt и их значениями

Примечание

Этот модуль входит в коллекцию community.libvirt (версия 2.2.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.libvirt. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.libvirt.virt_secret.

Добавлено в community.libvirt 2.1.0

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Управление секретами libvirt. Модуль может добавлять, удалять и обновлять секреты в libvirt.
  • Модуль можно использовать для задания значения секрета.

Требования

На хосте, на котором выполняется этот модуль, должны быть установлены следующие компоненты.

  • libvirt
  • lxml
  • PyYAML

Параметры

Параметр

Комментарии

command

string

Выполняет команды для управления секретом.

Если задано create, создаёт секрет, описанный с помощью xml или (secret). Это аналог state=present.

Если задано delete, удаляет секрет, определённый с помощью uuid, state, xml. Это аналог state=absent.

Если задано list_secrets, возвращает list_secrets со всеми существующими секретами в формате XML.

Если задано get_xml, модуль попытается получить определение секрета из libvirt. Если секрет найден, возвращается secret_xml. В противном случае возвращается None.

Если задано set_value, модуль задаст значение секрета. Эта команда не является идемпотентной и всегда будет сообщать об изменении. Требуется, чтобы был задан параметр password.

Варианты:

  • "create"
  • "delete"
  • "list_secrets"
  • "get_xml"
  • "set_value"

password

string

Значение секрета, которое будет сохранено в секрете libvirt.

Поскольку в большинстве случаев секреты являются конфиденциальными, пароль задаётся только при создании секрета или выполнении command=set_value. Если секрет уже существует и задан параметр password, модуль не будет пытаться задать его повторно, даже если указан другой пароль.

secret

dictionary

Задаёт секрет в виде набора полей, а не необработанного XML.

Это свойство несовместимо с xml.

Если не задано uuid, необходимо задать secret.usage и secret.usage_id.

description

string

Задаёт описание секрета.

ephemeral

boolean

Если задано True, секрет будет храниться только в памяти.

Значение по умолчанию: False.

Варианты:

  • false ← (по умолчанию)
  • true

private

boolean

Если задано True, значение нельзя будет получить из libvirt.

Значение по умолчанию: False.

Варианты:

  • false
  • true ← (по умолчанию)

usage

string

Указывает, для чего используется этот секрет.

Возможные значения: none, volume, ceph, iscsi, tls, vtpm.

Варианты:

  • "none"
  • "volume"
  • "ceph"
  • "iscsi"
  • "tls"
  • "vtpm"

usage_id

string

Задаёт уникальный secret_ID. Значение должно быть уникальным для каждого secret.usage.

state

string

Альтернатива параметру command.

Если задано present, создаёт том, описанный с помощью xml или secret.

Можно использовать для обновления свойств существующих секретов.

Если задано absent, удаляет секрет, определённый с помощью uuid, state или xml.

Если задано present и UUID не указан ни в uuid, ни в xml, модуль попытается найти существующий секрет с помощью secret.usage и secret.usage_id

Несовместимо с command.

Варианты:

  • "present"
  • "absent"

uri

string

URI подключения к libvirt.

По умолчанию: "qemu:///system"

uuid

string

UUID секрета. Значение уникально для всех типов секретов.

Если UUID также задан в xml, этот параметр игнорируется.

xml

string

XML-документ, используемый командой define.

Должно быть указано содержимое XML в исходном виде с использованием lookup. В качестве XML нельзя указывать ссылку на файл.

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

В режиме проверки секреты фактически не создаются, не обновляются и не удаляются.

Модуль сравнивает текущее состояние секрета в libvirt и проверяет, требуются ли изменения.

При использовании command=set_value всегда будет сообщаться об изменении.

Режим проверки поддерживается полностью.

diff_mode

Поддержка: полная

Для всех внесённых изменений, кроме command=set_value, модуль возвращает различия в виде словаря, показывая, что было изменено.

В режиме check_mode сведения о различиях будут содержать тот же результат, что и при обычном выполнении.

Модуль предоставляет сведения об изменении состояния в виде словаря.

idempotent

Поддержка: частичная

Если задано command=set_value, модуль не является идемпотентным, поскольку не пытается получить секреты из libvirt и всегда сообщает об изменении.

В большинстве случаев секреты являются конфиденциальными, поэтому получить их значения из libvirt невозможно.

В большинстве случаев этот модуль идемпотентен.

Примеры

---
- name: Create new secret using xml option and command
  community.libvirt.virt_secret:
    command: create
    xml: |
      <secret ephemeral='no' private='yes'>
        <uuid>e4b5978c-ba37-5605-97c1-4a20413d0fc9</uuid>
        <description>test ceph pool secret</description>
        <usage type='ceph'>
        <name>test_secret</name>
        </usage>
      </secret>

- name: Get secret XML by uuid
  community.libvirt.virt_secret:
    uuid: e4b5978c-ba37-5605-97c1-4a20413d0fc9
    command: get_xml
  register: result

- name: Get XML by secret usage and usage_id
  community.libvirt.virt_secret:
    secret:
      usage: ceph
      usage_id: test_secret
    command: get_xml
  register: result

- name: Print found XML
  ansible.builtin.debug:
    var: result.secret_xml

- name: Define secret using options secret and uuid
  community.libvirt.virt_secret:
    uuid: e4b5978c-ba37-5605-97c1-4a20413d0fc9
    secret:
      usage: tls
      usage_id: test_secret
      description: Test TLS secret
    state: present

- name: List all currently defined secrets
  community.libvirt.virt_secret:
    command: list_secrets
  register: result

- name: Print found secrets list
  ansible.builtin.debug:
    var: result.secrets_list

- name: Set value of the secret
  community.libvirt.virt_secret:
    uuid: e4b5978c-ba37-5605-97c1-4a20413d0fc9
    command: set_value
    password: somesecureandrandomsecret1234

- name: Remove secret
  community.libvirt.virt_secret:
    uuid: 57ea8fd0-9b82-4e54-9d16-df7d2765844d
    state: absent

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

list_secrets

list / elements=string

При выполнении (command=list_secrets) возвращает список секретов в формате XML.

Возвращается: при успехе

Пример: ["<secret ephemeral='no' private='yes'>\n  <uuid>fce0c61a-f0fc-5727-90b2-56c92534070f</uuid>\n  <description>sample vTPM secret</description>\n  <usage type='vtpm'><name>VTPM_example</name></usage></secret>\n", "<secret ephemeral='no' private='yes'>\n  <uuid>e4b5978c-ba37-5605-97c1-4a20413d0fc9</uuid>\n  <description>changed_test pool secret</description>\n  <usage type='ceph'><name>test_secret</name></usage>\n</secret>\n", "<secret ephemeral='no' private='yes'>\n  <uuid>edfa6124-eb0e-4449-a680-66f5fa7aedeb</uuid>\n  <description>Secret puppy name</description>\n  <usage type='volume'><volume>/var/lib/libvirt/images/puppyname.img</volume></usage>\n</secret>\n"]

secret_xml

string

При выполнении command=get_xml возвращает XML-описание секрета.

Возвращается: при успехе

Пример: "<secret ephemeral=\"no\" private=\"yes\">\n  <uuid>e4b5978c-ba37-5605-97c1-4a20413d0fc9</uuid>\n  <description>test_secret pool secret</description>\n  <usage type=\"ceph\">\n    <name>test_secret</name>\n  </usage>\n</secret>\"\n"

Авторы

  • Denys Mishchenko (@arddennis)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/libvirt/virt_secret_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API