Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

Для использования в книге задач укажите: 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 слотов ключей. Значение параметра — путь к файлу ключа с паролем.
Обратите внимание, что добавление дополнительных ключей *не идемпотентно*. Будет использован новый слот ключа, даже если другой слот ключа уже существует для этого файла ключа.
ОСТОРОЖНО, работа с файлами ключей в открытом виде опасна. Убедитесь, что они защищены.
new_passphrase
строка
добавлен в 1.0.0 community.crypto
Добавляет дополнительный пароль к заданному контейнеру на device. Требуется параметр keyfile или passphrase для авторизации. Контейнер LUKS поддерживает до 8 слотов ключей. Значение параметра — строка с новым паролем.
Обратите внимание, что добавление дополнительного пароля *не идемпотентно*. Будет использован новый слот ключа, даже если другой слот ключа уже существует для этого пароля.
passphrase
строка
добавлен в 1.0.0 community.crypto
Используется для разблокировки контейнера. Для большинства операций требуется либо passphrase, либо keyfile. Значение параметра — строка с паролем.
remove_keyfile
путь
Удаляет заданный ключ из контейнера на device. Не удаляет файл ключа из файловой системы. Значение параметра — путь к файлу ключа с паролем.
Обратите внимание, что удаление ключей *не идемпотентно*. Попытка удалить ключ, которого больше нет, приведет к ошибке.
Обратите внимание, что для удаления последнего ключа из контейнера LUKS параметр force_remove_last_key должен быть установлен в yes.
ОСТОРОЖНО, работа с файлами ключей в открытом виде опасна. Убедитесь, что они защищены.
remove_passphrase
строка
добавлен в 1.0.0 community.crypto
Удаляет заданный пароль из контейнера на device. Значение параметра — строка с паролем для удаления.
Обратите внимание, что удаление паролей *не идемпотентно*. Попытка удалить пароль, которого больше нет, приведет к ошибке.
Обратите внимание, что для удаления последнего слота ключа из контейнера 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/crypto/luks_device_module.html

Spec-Zone.ru

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