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 строка |
| Используемый алгоритм. Доступен только для формата 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 |
| Этот параметр позволяет пользователю явно определить формат контейнера 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