Spec-Zone.ru › Ansible

Модуль community.crypto.openssl_publickey — создание открытого ключа OpenSSL на основе закрытого ключа

Примечание

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

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

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

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

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

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

  • Этот модуль позволяет создавать или повторно создавать открытые ключи на основе соответствующих закрытых ключей.
  • Открытые ключи создаются в формате PEM или OpenSSH. Закрытые ключи должны быть ключами OpenSSL в формате PEM. Закрытые ключи OpenSSH не поддерживаются; для управления ими используйте модуль community.crypto.openssh_keypair.
  • Модуль использует библиотеку Python cryptography.

Требования

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

  • cryptography >= 3.3

Параметры

Параметр

Комментарии

attributes

псевдонимы: attr

строка

Атрибуты, которые должен иметь итоговый объект файловой системы.

Список поддерживаемых флагов см. на странице руководства для chattr в целевой системе.

Эта строка должна содержать атрибуты в том же порядке, в котором они отображаются командой lsattr.

По умолчанию предполагается оператор =; в противном случае в строку необходимо включить операторы + или -.

backup

логическое значение

Создать резервную копию с меткой времени, чтобы можно было восстановить исходный открытый ключ, если вы случайно заменили его другим.

Варианты:

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

force

логическое значение

Следует ли повторно создать ключ, даже если он уже существует.

Варианты:

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

format

строка

Формат открытого ключа.

Варианты:

  • "OpenSSH"
  • "PEM" ← (по умолчанию)

group

строка

Имя группы, которой должен принадлежать объект файловой системы; оно передаётся команде chown.

Если значение не указано, используется текущая группа текущего пользователя, а если вы работаете от имени root — может сохраниться прежний владелец.

mode

любое значение

Права доступа, которые должен иметь итоговый объект файловой системы.

Если вы привыкли к /usr/bin/chmod, помните, что режимы доступа на самом деле являются восьмеричными числами. Ansible необходимо предоставить достаточно информации, чтобы правильно их разобрать. Для единообразия заключайте восьмеричные числа в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и мог самостоятельно преобразовать её в число. Добавление нуля в начале (например, 0755) иногда работает, но может привести к сбою в циклах и некоторых других ситуациях.

Если передать Ansible число, не соблюдая ни одно из этих правил, оно будет интерпретировано как десятичное, что приведёт к неожиданным результатам.

Начиная с Ansible 1.8, режим можно задавать в символьном виде (например, u+rwx или u=rw,g=r,o=r).

Если mode не задан и целевой объект файловой системы не существует, для нового объекта будет использоваться значение umask по умолчанию в системе.

Если mode не задан и целевой объект файловой системы существует, будет использоваться режим доступа существующего объекта.

Указание mode — лучший способ обеспечить создание объектов файловой системы с правильными правами доступа. Подробности см. в CVE-2020-1736.

owner

строка

Имя пользователя, которому должен принадлежать объект файловой системы; оно передаётся команде chown.

Если значение не указано, используется текущий пользователь, а если вы работаете от имени root — может сохраниться прежний владелец.

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

path

путь / обязательный

Имя файла, в который будет записан созданный открытый ключ TLS/SSL.

privatekey_content

строка

добавлено в community.crypto 1.0.0

Содержимое закрытого ключа TLS/SSL, на основе которого нужно создать открытый ключ.

Необходимо указать privatekey_path или privatekey_content, но не оба параметра. Если state равно present, необходимо указать один из них.

privatekey_passphrase

строка

Парольная фраза для закрытого ключа.

privatekey_path

путь

Путь к закрытому ключу TLS/SSL, на основе которого нужно создать открытый ключ.

Необходимо указать privatekey_path или privatekey_content, но не оба параметра. Если state равно present, необходимо указать один из них.

return_content

логическое значение

добавлено в community.crypto 1.0.0

Если задано значение true, содержимое открытого ключа (текущего или созданного) будет возвращено как publickey.

Варианты:

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

select_crypto_backend

строка

Определяет, какую криптографическую серверную часть использовать.

По умолчанию выбирается auto; при наличии она пытается использовать cryptography.

Если задано значение cryptography, модуль попытается использовать библиотеку cryptography.

Обратите внимание: в community.crypto 3.0.0 все значения работают одинаково. В более поздней версии этот параметр будет объявлен устаревшим. Рекомендуется не задавать его явно.

Варианты:

  • "auto" ← (по умолчанию)
  • "cryptography"

selevel

строка

Уровень в контексте объекта файловой системы SELinux.

Это атрибут MLS/MCS, иногда называемый range.

Если задано значение _default, будет использоваться часть политики level, если она доступна.

serole

строка

Роль в контексте объекта файловой системы SELinux.

Если задано значение _default, будет использоваться часть политики role, если она доступна.

setype

строка

Тип в контексте объекта файловой системы SELinux.

Если задано значение _default, будет использоваться часть политики type, если она доступна.

seuser

строка

Пользователь в контексте объекта файловой системы SELinux.

По умолчанию используется политика system, если применимо.

Если задано значение _default, будет использоваться часть политики user, если она доступна.

state

строка

Определяет, должен ли открытый ключ существовать; если его состояние отличается от указанного, выполняются соответствующие действия.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

unsafe_writes

логическое значение

Определяет, когда использовать атомарные операции для предотвращения повреждения данных или несогласованного чтения целевого объекта файловой системы.

По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения целевых объектов файловой системы, однако иногда конфигурация систем или их неисправности делают это невозможным. Например, объекты файловой системы, подключённые в Docker, нельзя атомарно обновить из контейнера — их можно записывать только небезопасным способом.

Этот параметр позволяет Ansible переключаться на небезопасные методы обновления объектов файловой системы, если атомарные операции завершаются ошибкой (однако он не заставляет Ansible выполнять небезопасную запись).

ВАЖНО! Небезопасная запись подвержена состояниям гонки и может привести к повреждению данных.

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

Модуль может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевую систему.

diff_mode

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

В режиме сравнения будут возвращены сведения об изменениях (или о возможных изменениях в check_mode).

idempotent

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

Модуль не является идемпотентным, если force=true.

При повторном запуске с теми же аргументами вне режима проверки второй вызов сообщает об отсутствии изменений.

Предполагается, что система, контролируемая или запрашиваемая модулем, не изменилась существенным образом.

safe_file_operations

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

Используются строгие функции Ansible для работы с файлами, обеспечивающие правильные права доступа и предотвращающие повреждение данных.

См. также

См. также

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_privatekey

Создание закрытых ключей OpenSSL.

community.crypto.openssl_privatekey_pipe

Создание закрытых ключей OpenSSL без доступа к диску.

Примеры

---
- name: Generate an OpenSSL public key in PEM format
  community.crypto.openssl_publickey:
    path: /etc/ssl/public/ansible.com.pem
    privatekey_path: /etc/ssl/private/ansible.com.pem

- name: Generate an OpenSSL public key in PEM format from an inline key
  community.crypto.openssl_publickey:
    path: /etc/ssl/public/ansible.com.pem
    privatekey_content: "{{ private_key_content }}"

- name: Generate an OpenSSL public key in OpenSSH v2 format
  community.crypto.openssl_publickey:
    path: /etc/ssl/public/ansible.com.pem
    privatekey_path: /etc/ssl/private/ansible.com.pem
    format: OpenSSH

- name: Generate an OpenSSL public key with a passphrase protected private key
  community.crypto.openssl_publickey:
    path: /etc/ssl/public/ansible.com.pem
    privatekey_path: /etc/ssl/private/ansible.com.pem
    privatekey_passphrase: ansible

- name: Force regenerate an OpenSSL public key if it already exists
  community.crypto.openssl_publickey:
    path: /etc/ssl/public/ansible.com.pem
    privatekey_path: /etc/ssl/private/ansible.com.pem
    force: true

- name: Remove an OpenSSL public key
  community.crypto.openssl_publickey:
    path: /etc/ssl/public/ansible.com.pem
    state: absent

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

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

Ключ

Описание

backup_file

строка

Имя созданного файла резервной копии.

Возвращается: при изменении и если backup равно true

Пример: "/path/to/publickey.pem.2019-03-09@11:22~"

filename

строка

Путь к файлу созданного открытого ключа TLS/SSL.

Возвращается: при изменении или успешном выполнении

Пример: "/etc/ssl/public/ansible.com.pem"

fingerprint

словарь

Отпечаток открытого ключа. Отпечаток будет создан для каждого доступного алгоритма hashlib.algorithms.

Возвращается: при изменении или успешном выполнении

Пример: {"md5": "84:75:71:72:8d:04:b5:6c:4d:37:6d:66:83:f5:4c:29", "sha1": "51:cc:7c:68:5d:eb:41:43:88:7e:1a:ae:c7:f8:24:72:ee:71:f6:10", "sha224": "b1:19:a6:6c:14:ac:33:1d:ed:18:50:d3:06:5c:b2:32:91:f1:f1:52:8c:cb:d5:75:e9:f5:9b:46", "sha256": "41:ab:c7:cb:d5:5f:30:60:46:99:ac:d4:00:70:cf:a1:76:4f:24:5d:10:24:57:5d:51:6e:09:97:df:2f:de:c7", "sha384": "85:39:50:4e:de:d9:19:33:40:70:ae:10:ab:59:24:19:51:c3:a2:e4:0b:1c:b1:6e:dd:b3:0c:d9:9e:6a:46:af:da:18:f8:ef:ae:2e:c0:9a:75:2c:9b:b3:0f:3a:5f:3d", "sha512": "fd:ed:5e:39:48:5f:9f:fe:7f:25:06:3f:79:08:cd:ee:a5:e7:b3:3d:13:82:87:1f:84:e1:f5:c7:28:77:53:94:86:56:38:69:f0:d9:35:22:01:1e:a6:60:...:0f:9b"}

format

строка

Формат открытого ключа (PEM, OpenSSH и т. д.).

Возвращается: при изменении или успешном выполнении

Пример: "PEM"

privatekey

строка

Путь к закрытому ключу TLS/SSL, на основе которого был создан открытый ключ.

Значение будет none, если закрытый ключ был передан в privatekey_content.

Возвращается: при изменении или успешном выполнении

Пример: "/etc/ssl/private/ansible.com.pem"

publickey

строка

добавлено в community.crypto 1.0.0

Содержимое открытого ключа (текущего или созданного).

Возвращается: если state равно present и return_content равно true

Авторы

  • Yanis Guenane (@Spredzy)
  • Felix Fontein (@felixfontein)

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

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь (crypto)
  • Запросить помощь (ACME)
  • Сообщить об ошибке
  • Запросить новую функцию
  • Связь

© 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_publickey_module.html

Spec-Zone.ru

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