Модуль community.crypto.openssl_privatekey_pipe — создание закрытых ключей OpenSSL без доступа к диску
Примечание
Этот модуль входит в коллекцию community.crypto (версия 3.2.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в состав ansible-core. Чтобы проверить, установлена ли она, выполните команду ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.crypto. Для использования этого модуля требуются дополнительные компоненты. Подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.crypto.openssl_privatekey_pipe.
Добавлено в community.crypto 1.3.0
Краткое описание
- Ключи создаются в формате PEM.
- Не записывайте результат работы этого модуля в журналы или консоль, поскольку он содержит данные закрытого ключа! Для надёжности используйте параметр задачи
no_log. - Обратите внимание, что этот модуль реализован как плагин действия и всегда выполняется на контроллере.
- Можно создавать закрытые ключи RSA, DSA, ECC или EdDSA.
- Это позволяет читать ключи из хранилищ и записывать их в хранилища, не сохраняя промежуточные версии на диск.
- Этот модуль позволяет создавать и повторно создавать закрытые ключи OpenSSL без доступа к диску.
Примечание
Этому модулю соответствует плагин действия.
Требования
На хосте, где выполняется этот модуль, необходимы следующие компоненты.
- cryptography >= 3.3
Параметры
Параметр | Комментарии |
|---|---|
cipher string | Шифр для шифрования закрытого ключа. Используется только при наличии Должно быть По умолчанию: |
content string | Текущие данные закрытого ключа. Необходимо для идемпотентности. Если параметр не указан, модуль всегда будет возвращать состояние «изменено», а все параметры, связанные с идемпотентностью, будут игнорироваться. |
content_base64 boolean | Установите значение Варианты:
|
curve string | Обратите внимание, что не все версии Для максимальной совместимости следует использовать Названия кривых указаны в соответствии с реестром IANA для TLS. Обратите внимание, что все кривые, кроме Варианты:
|
format string | Определяет формат записи закрытого ключа. По умолчанию для всех ключей, которые его поддерживают, используется PKCS1 (традиционный формат OpenSSL). Обратите внимание, что не каждый ключ можно экспортировать в любом формате. Значение Обратите внимание: если формат существующего закрытого ключа не совпадает, по умолчанию ключ создаётся заново. Чтобы изменить это поведение, используйте параметр Варианты:
|
format_mismatch string | Определяет поведение модуля, если формат закрытого ключа не соответствует ожидаемому, но все остальные параметры совпадают с ожидаемыми. Если задано значение Если задано значение Варианты:
|
passphrase string | Парольная фраза для закрытого ключа. |
regenerate string | Позволяет настроить ситуации, в которых модулю разрешено повторно создавать закрытые ключи. Если целевой файл не существует, модуль всегда создаст новый ключ. По умолчанию ключ создаётся заново, если он не соответствует параметрам модуля, за исключением случаев, когда ключ не удаётся прочитать или парольная фраза не подходит. Обратите внимание: в Ansible 2.10 это поведение изменилось. В Ansible 2.9 поведение соответствовало указанному значению Если задано значение Если задано значение Если задано значение Если задано значение Если задано значение Обратите внимание: если для Варианты:
|
return_current_key boolean | Установите значение Обратите внимание: в режиме проверки, если для этого параметра задано значение, отличное от Варианты:
|
select_crypto_backend string | Определяет используемый криптографический механизм. По умолчанию выбрано значение Если задано значение Обратите внимание: в community.crypto 3.0.0 все значения ведут себя одинаково. В более поздней версии этот параметр будет объявлен устаревшим. Рекомендуется не задавать его явно. Варианты:
|
size integer | Размер создаваемого ключа TLS/SSL (в битах). По умолчанию: |
type string | Алгоритм, используемый для создания закрытого ключа TLS/SSL. Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action | Поддержка: полная | Указывает, что модулю соответствует плагин действия, поэтому некоторые части параметров можно выполнить на контроллере. |
async | Поддержка: нет Это действие полностью выполняется на контроллере. | Поддерживает использование с ключевым словом |
check_mode | Поддержка: полная Начиная с community.crypto 3.0.0 модуль игнорирует режим проверки и всегда работает так, как если бы режим проверки был выключен. | Может выполняться в режиме |
diff_mode | Поддержка: полная | В режиме diff возвращает сведения об изменениях (или о возможных изменениях в |
idempotent | Поддержка: частичная Параметр | При повторном запуске с теми же аргументами вне режима проверки второй запуск сообщает, что изменений нет. Предполагается, что система, которой управляет модуль или состояние которой он проверяет, не изменилась существенным образом. |
См. также
См. также
- community.crypto.openssl_privatekey
-
Создание закрытых ключей OpenSSL.
- community.crypto.openssl_privatekey_info
-
Предоставление сведений о закрытых ключах OpenSSL.
- community.crypto.x509_certificate
-
Создание и/или проверка сертификатов OpenSSL.
- community.crypto.x509_certificate_pipe
-
Создание и/или проверка сертификатов OpenSSL.
- community.crypto.openssl_csr
-
Создание запроса на подпись сертификата (CSR) OpenSSL.
- community.crypto.openssl_csr_pipe
-
Создание запроса на подпись сертификата (CSR) OpenSSL.
- community.crypto.openssl_dhparam
-
Создание параметров Диффи — Хеллмана OpenSSL.
- community.crypto.openssl_pkcs12
-
Создание архива PKCS#12 OpenSSL.
- community.crypto.openssl_publickey
-
Создание открытого ключа OpenSSL на основе закрытого ключа.
Примеры
---
- name: Generate an OpenSSL private key with the default values (4096 bits, RSA)
community.crypto.openssl_privatekey_pipe:
register: output
no_log: true # make sure that private key data is not accidentally revealed in logs!
- name: Show generated key
ansible.builtin.debug:
msg: "{{ output.privatekey }}"
# DO NOT OUTPUT KEY MATERIAL TO CONSOLE OR LOGS IN PRODUCTION!
# The following example needs CNCF SOPS (https://github.com/getsops/sops) set up and
# the community.sops collection installed. See also
# https://docs.ansible.com/ansible/latest/collections/community/sops/docsite/guide.html
- name: Generate or update a CNCF SOPS encrypted key
block:
- name: Update SOPS-encrypted key with the community.sops collection
community.crypto.openssl_privatekey_pipe:
content: "{{ lookup('community.sops.sops', 'private_key.pem.sops') }}"
size: 2048
register: output
no_log: true # make sure that private key data is not accidentally revealed in logs!
- name: Update encrypted key when openssl_privatekey_pipe reported a change
community.sops.sops_encrypt:
path: private_key.pem.sops
content_text: "{{ output.privatekey }}"
when: output is changed
always:
- name: Make sure that output (which contains the private key) is overwritten
ansible.builtin.set_fact:
output: ''
Возвращаемые значения
Общие возвращаемые значения описаны здесь. Ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
curve string | Эллиптическая кривая, использованная для создания закрытого ключа TLS/SSL. Возвращается: если состояние изменено или операция выполнена успешно и Пример: |
fingerprint dictionary | Отпечаток открытого ключа. Отпечаток создаётся для каждого доступного Возвращается: если состояние изменено или операция выполнена успешно Пример: |
privatekey string | Содержимое созданного закрытого ключа. Обратите внимание: если результат не изменился, текущий закрытый ключ будет возвращён только в том случае, если для параметра Если ключ представлен в необработанном формате, он будет закодирован в Base64. Возвращается: если состояние изменено или |
size integer | Размер закрытого ключа TLS/SSL (в битах). Возвращается: если состояние изменено или операция выполнена успешно Пример: |
type string | Алгоритм, использованный для создания закрытого ключа TLS/SSL. Возвращается: если состояние изменено или операция выполнена успешно Пример: |
Ссылки на коллекцию
© 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/crypto/openssl_privatekey_pipe_module.html