Spec-Zone.ru › Ansible 2.11

community.crypto.luks_device – Управление зашифрованными (LUKS) устройствами

Примечание

Этот плагин входит в коллекцию community.crypto (версия 1.4.0).

Для его установки используйте: ansible-galaxy collection install community.crypto.

Чтобы использовать его в playbook, укажите: community.crypto.luks_device.

  • Обзор
  • Требования
  • Параметры
  • Примеры
  • Возвращаемые значения

Обзор

  • Модуль управляет LUKS на заданном устройстве. Поддерживает создание, уничтожение, открытие и закрытие контейнера LUKS, а также добавление или удаление новых ключей и паролей.

Требования

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

  • cryptsetup
  • wipefs (когда state равен absent)
  • lsblk
  • blkid (при использовании параметров label или uuid)

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
cipher
строка
добавлен в 1.1.0 community.crypto
Этот параметр позволяет пользователю определить строку спецификации шифра для контейнера LUKS.
Будет использоваться только при создании контейнера.
Для ядер до версии 2.6.10 используйте aes-plain, так как они не понимают новые строки спецификаций шифра. Для использования ESSIV, используйте aes-cbc-essiv:sha256.
device
строка
Устройство для работы (например, /dev/sda1). Необходим в большинстве случаев. Может быть опущен только, когда state=closed вместе с name.
force_remove_last_key
логическое значение
    Варианты:
  • нет ←
  • да
Если установлено в yes, разрешает удаление последнего ключа из контейнера.
ОСТОРОЖНО, удаление последнего ключа делает контейнер больше не открываемым!
hash
строка
добавлен в 1.1.0 community.crypto
Этот параметр позволяет пользователю указать функцию хеширования, используемую в схеме настройки ключей LUKS и хэш-сумме ключа тома.
Будет использоваться только при создании контейнера.
keyfile
путь
Используется для разблокировки контейнера. Для большинства операций требуется либо keyfile, либо passphrase. Значение параметра — путь к файлу ключа с паролем.
ОСТОРОЖНО, работа с файлами ключей в открытом виде опасна. Убедитесь, что они защищены.
keysize
целое число
добавлен в 1.0.0 community.crypto
Устанавливает размер ключа только если контейнер LUKS не существует.
label
строка
добавлен в 1.0.0 community.crypto
Этот параметр позволяет пользователю создать контейнер LUKS2 с поддержкой меток, соответственно, для идентификации контейнера по метке при последующих использования.
Будет использоваться только при создании контейнера или когда device не указан.
Не может быть указан, если type установлен на luks1.
name
строка
Устанавливает имя контейнера при state=opened. Может использоваться вместо device при закрытии существующего контейнера (т.е. при state=closed).
new_keyfile
путь
Добавляет дополнительный ключ к заданному контейнеру на device. Требует параметр keyfile или passphrase для авторизации. Контейнер LUKS поддерживает до 8 слотов ключей. Значение параметра — путь к файлу ключа с паролем.
ЗАМЕЧАНИЕ: добавление дополнительных ключей идемпотентно только начиная с community.crypto 1.4.0. Для более ранних версий, новый слот ключа будет использован, даже если другой слот уже существует для этого файла ключа.
ОСТОРОЖНО, работа с файлами ключей в открытом виде опасна. Убедитесь, что они защищены.
new_passphrase
строка
добавлен в 1.0.0 community.crypto
Добавляет дополнительный пароль к заданному контейнеру на device. Требует параметр keyfile или passphrase для авторизации. Контейнер LUKS поддерживает до 8 слотов ключей. Значение параметра — строка с новым паролем.
ЗАМЕЧАНИЕ: добавление дополнительных паролей идемпотентно только начиная с community.crypto 1.4.0. Для более ранних версий, новый слот будет использован, даже если другой слот уже существует для этого пароля.
passphrase
строка
добавлен в 1.0.0 community.crypto
Используется для разблокировки контейнера. Для большинства операций требуется либо passphrase, либо keyfile. Значение параметра — строка с паролем.
pbkdf
словарь
добавлен в 1.4.0 community.crypto
Этот параметр позволяет пользователю настроить функцию вывода ключа на основе пароля (PBKDF), используемую.
Будет использоваться только при создании контейнера и при добавлении ключей в существующий контейнер.
algorithm
строка
    Варианты:
  • argon2i
  • argon2id
  • pbkdf2
Используемый алгоритм.
Доступен только для формата LUKS 2.
iteration_count
целое число
Укажите количество итераций, используемых для PBKDF.
Взаимоисключающее с iteration_time.
iteration_time
вещественное число
Укажите время итераций, используемых для PBKDF.
Обратите внимание, что это в секундах, а не в миллисекундах, как в командной строке.
Взаимоисключающее с iteration_count.
memory
целое число
Предел затрат памяти в килобайтах для PBKDF.
Не используется для PBKDF2, но только для Argon PBKDF.
parallel
целое число
Стоимость параллелизма для PBKDF. Это количество потоков, работающих параллельно.
Не используется для PBKDF2, но только для Argon PBKDF.
remove_keyfile
путь
Удаляет заданный ключ из контейнера на device. Не удаляет файл ключа из файловой системы. Значение параметра — путь к файлу ключа с паролем.
ЗАМЕЧАНИЕ: удаление ключей идемпотентно только начиная с community.crypto 1.4.0. Для более ранних версий попытка удалить несуществующий ключ приводит к ошибке.
ЗАМЕЧАНИЕ: для удаления последнего ключа из контейнера LUKS необходимо установить параметр force_remove_last_key в yes.
ОСТОРОЖНО, работа с файлами ключей в открытом виде опасна. Убедитесь, что они защищены.
remove_passphrase
строка
добавлен в 1.0.0 community.crypto
Удаляет заданный пароль из контейнера на device. Значение параметра — строка с паролем для удаления.
ЗАМЕЧАНИЕ: удаление паролей идемпотентно только начиная с community.crypto 1.4.0. Для более ранних версий попытка удалить несуществующий пароль приводит к ошибке.
ЗАМЕЧАНИЕ: для удаления последнего слота ключа из контейнера LUKS необходимо установить параметр force_remove_last_key в yes.
state
строка
    Варианты:
  • присутствует ←
  • отсутствует
  • открыт
  • закрыт
Желаемое состояние контейнера LUKS. В зависимости от его значения создает, уничтожает, открывает или закрывает контейнер LUKS на заданном устройстве.
присутствует создаст контейнер LUKS, если он еще не существует. Требует параметры device и либо keyfile, либо passphrase.
отсутствует удалит существующий контейнер LUKS, если он существует. Требуется указать device или name.
открыт разблокирует контейнер LUKS. Если он не существует, он будет создан. Требуются параметры device и либо keyfile, либо passphrase. Используйте параметр name для установки имени открытого контейнера. В противном случае имя будет сгенерировано автоматически и возвращено как часть результата.
закрыт заблокирует контейнер LUKS. Однако, если контейнер не существует, он будет создан. Требуются параметры device и либо keyfile, либо passphrase. Если контейнер уже существует, достаточно device или name.
type
строка
добавлен в 1.0.0 community.crypto
    Варианты:
  • luks1
  • luks2
Этот параметр позволяет пользователю явно определить формат контейнера LUKS, с которым он хочет работать. Доступны варианты luks1 или luks2.
uuid
строка
добавлен в 1.0.0 community.crypto
С помощью этого параметра пользователь может идентифицировать контейнер LUKS по UUID.
Будет использоваться только при отсутствии параметров device и label.

Примеры

- name: Create LUKS container (remains unchanged if it already exists)
  community.crypto.luks_device:
    device: "/dev/loop0"
    state: "present"
    keyfile: "/vault/keyfile"

- name: Create LUKS container with a passphrase
  community.crypto.luks_device:
    device: "/dev/loop0"
    state: "present"
    passphrase: "foo"

- name: Create LUKS container with specific encryption
  community.crypto.luks_device:
    device: "/dev/loop0"
    state: "present"
    cipher: "aes"
    hash: "sha256"

- name: (Create and) open the LUKS container; name it "mycrypt"
  community.crypto.luks_device:
    device: "/dev/loop0"
    state: "opened"
    name: "mycrypt"
    keyfile: "/vault/keyfile"

- name: Close the existing LUKS container "mycrypt"
  community.crypto.luks_device:
    state: "closed"
    name: "mycrypt"

- name: Make sure LUKS container exists and is closed
  community.crypto.luks_device:
    device: "/dev/loop0"
    state: "closed"
    keyfile: "/vault/keyfile"

- name: Create container if it does not exist and add new key to it
  community.crypto.luks_device:
    device: "/dev/loop0"
    state: "present"
    keyfile: "/vault/keyfile"
    new_keyfile: "/vault/keyfile2"

- name: Add new key to the LUKS container (container has to exist)
  community.crypto.luks_device:
    device: "/dev/loop0"
    keyfile: "/vault/keyfile"
    new_keyfile: "/vault/keyfile2"

- name: Add new passphrase to the LUKS container
  community.crypto.luks_device:
    device: "/dev/loop0"
    keyfile: "/vault/keyfile"
    new_passphrase: "foo"

- name: Remove existing keyfile from the LUKS container
  community.crypto.luks_device:
    device: "/dev/loop0"
    remove_keyfile: "/vault/keyfile2"

- name: Remove existing passphrase from the LUKS container
  community.crypto.luks_device:
    device: "/dev/loop0"
    remove_passphrase: "foo"

- name: Completely remove the LUKS container and its contents
  community.crypto.luks_device:
    device: "/dev/loop0"
    state: "absent"

- name: Create a container with label
  community.crypto.luks_device:
    device: "/dev/loop0"
    state: "present"
    keyfile: "/vault/keyfile"
    label: personalLabelName

- name: Open the LUKS container based on label without device; name it "mycrypt"
  community.crypto.luks_device:
    label: "personalLabelName"
    state: "opened"
    name: "mycrypt"
    keyfile: "/vault/keyfile"

- name: Close container based on UUID
  community.crypto.luks_device:
    uuid: 03ecd578-fad4-4e6c-9348-842e3e8fa340
    state: "closed"
    name: "mycrypt"

- name: Create a container using luks2 format
  community.crypto.luks_device:
    device: "/dev/loop0"
    state: "present"
    keyfile: "/vault/keyfile"
    type: luks2

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

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

Ключ Возвращаемое значение Описание
name
строка
успех
Когда state=opened возвращает (сгенерированное или заданное) имя контейнера LUKS. Возвращает None, если имя не указано.

Пример:
luks-c1da9a58-2fde-4256-9d9f-6ab008b4dd1b


Авторы

  • Jan Pokorny (@japokorn)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/crypto/luks_device_module.html

Spec-Zone.ru

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