community.crypto.openssl_publickey – Генерация открытого ключа OpenSSL из закрытого ключа.
Примечание
Этот плагин является частью коллекции community.crypto (версия 1.4.0).
Для его установки используйте: ansible-galaxy collection install community.crypto.
Для использования в плейбуке укажите: community.crypto.openssl_publickey.
Описание
- Этот модуль позволяет (пере)генерировать открытые ключи OpenSSL из соответствующих закрытых ключей.
- Ключи генерируются в формате PEM или OpenSSH.
- Модуль может использовать библиотеку cryptography Python или библиотеку pyOpenSSL Python. По умолчанию он пытается определить, какая из них доступна. Это можно переопределить с помощью параметра select_crypto_backend. Когда format равен
OpenSSH, необходимо использовать backendcryptography. Обратите внимание, что backend PyOpenSSL устарел в Ansible 2.9 и будет удален в версии community.crypto 2.0.0.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- Библиотека cryptography >= 1.2.3 (могут работать и более старые версии)
- Или библиотека pyOpenSSL >= 16.0.0
- Необходима библиотека cryptography >= 1.4, если format равен
OpenSSH
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка добавлен в версии 2.3 ansible.builtin | Атрибуты, которые должны иметь полученный файл или директория. Чтобы получить поддерживаемые флаги, см. страницу руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. Оператор = предполагается по умолчанию, в противном случае операторы + или - необходимо включить в строку.псевдонимы: attr | |
| backup логическое значение |
| Создать резервную копию файла, включая отметку времени, чтобы вы могли вернуть исходный открытый ключ, если случайно перезаписали его другим ключом. |
| force логическое значение |
| Нужно ли перегенерировать ключ, даже если он уже существует. |
| format строка |
| Формат открытого ключа. |
| group строка | Имя группы, которой должен принадлежать файл/директория, как будет передано в chown. | |
| mode сырой | Разрешения, которые должен иметь результирующий файл или директория. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую нуль, чтобы парсер YAML Ansible понял, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777') Ansible получит строку и сможет выполнить преобразование из строки в число.Если Ansible получит число без одного из этих правил, результат будет десятичным числом, что приведет к неожиданным результатам. Начиная с Ansible 1.8, режим может быть указан в символьной форме (например, u+rwx или u=rw,g=r,o=r).Если mode не указан и целевой файл не существует, по умолчанию будет использоваться значение umask на системе при установке режима для вновь созданного файла.Если mode не указан и целевой файл существует, будет использоваться режим существующего файла.Указание mode — лучший способ гарантировать, что файлы создаются с правильными разрешениями. См. CVE-2020-1736 для получения дополнительной информации. | |
| owner строка | Имя пользователя, которому должен принадлежать файл/директория, как будет передано в chown. | |
| path путь / обязательно | Имя файла, в который будет записан сгенерированный открытый ключ TLS/SSL. | |
| privatekey_content строка добавлен в версии 1.0.0 community.crypto | Содержимое закрытого ключа TLS/SSL, из которого будет сгенерирован открытый ключ. Необходимо указать либо privatekey_path, либо privatekey_content, но не оба. Если state равен present, один из них обязателен. | |
| privatekey_passphrase строка | Пароль к закрытому ключу. | |
| privatekey_path путь | Путь к закрытому ключу TLS/SSL, из которого будет сгенерирован открытый ключ. Необходимо указать либо privatekey_path, либо privatekey_content, но не оба. Если state равен present, один из них обязателен. | |
| return_content логическое значение добавлен в версии 1.0.0 community.crypto |
| Если установлено в yes, вернёт содержимое (текущего или сгенерированного) открытого ключа в виде publickey. |
| select_crypto_backend строка |
| Определяет, какой backend криптографии использовать. По умолчанию выбирается auto, который пытается использовать cryptography если доступен, и переходит к pyopenssl в противном случае.Если установлено в pyopenssl, будет использована библиотека pyOpenSSL.Если установлено в cryptography, будет использована библиотека cryptography. |
| selevel строка | Часть контекста файла SELinux, отвечающая за уровень. Это атрибут MLS/MCS, иногда известный как range.Если установлено в _default, будет использована часть политики level если доступна. | |
| serole строка | Часть контекста файла SELinux, отвечающая за роль. Если установлено в _default, будет использована часть политики role если доступна. | |
| setype строка | Часть контекста файла SELinux, отвечающая за тип. Если установлено в _default, будет использована часть политики type если доступна. | |
| seuser строка | Часть контекста файла SELinux, отвечающая за пользователя. По умолчанию используется политика system, где это применимо.Если установлено в _default, будет использована часть политики user если доступна. | |
| state строка |
| Определяет, должен ли существовать открытый ключ или нет, выполняя действия, если состояние отличается от указанного. |
| unsafe_writes логическое значение добавлен в версии 2.2 ansible.builtin |
| Влияет на использование атомарных операций для предотвращения повреждения данных или несогласованных чтений из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настраиваются или просто работают таким образом, что это не возможно. Одним из примеров являются файлы, смонтированные в docker, которые не могут быть обновлены атомарно внутри контейнера и могут быть записаны только неатомарным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачей (хотя это не принуждает Ansible к выполнению небезопасных записей). ВАЖНО! Небезопасные записи подвержены проблемам гонки и могут привести к повреждению данных. |
См. также
См. также
- community.crypto.x509_certificate
-
Официальная документация по модулю community.crypto.x509_certificate.
- community.crypto.x509_certificate_pipe
-
Официальная документация по модулю community.crypto.x509_certificate_pipe.
- community.crypto.openssl_csr
-
Официальная документация по модулю community.crypto.openssl_csr.
- community.crypto.openssl_csr_pipe
-
Официальная документация по модулю community.crypto.openssl_csr_pipe.
- community.crypto.openssl_dhparam
-
Официальная документация по модулю community.crypto.openssl_dhparam.
- community.crypto.openssl_pkcs12
-
Официальная документация по модулю community.crypto.openssl_pkcs12.
- community.crypto.openssl_privatekey
-
Официальная документация по модулю community.crypto.openssl_privatekey.
- community.crypto.openssl_privatekey_pipe
-
Официальная документация по модулю community.crypto.openssl_privatekey_pipe.
Примеры
- 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: yes
- name: Remove an OpenSSL public key
community.crypto.openssl_publickey:
path: /etc/ssl/public/ansible.com.pem
state: absent
Значения возврата
Общие значения возврата документированы здесь, следующие — поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_file строка | изменено, если backup равно yes
| Имя созданного файла резервной копии. Пример: /path/to/publickey.pem.2019-03-09@11:22~ |
| filename строка | изменено или успех | Путь к сгенерированному файлу открытого ключа TLS/SSL. Пример: /etc/ssl/public/ansible.com.pem |
| fingerprint словарь | изменено или успех | Отпечаток открытого ключа. Отпечаток будет сгенерирован для каждого доступного алгоритма hashlib. Требуется PyOpenSSL >= 16.0 для осмысленного вывода. Пример: {'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 строка добавлен в 1.0.0 community.crypto | если state равно present и return_content равно yes
| Содержание открытого ключа (текущего или сгенерированного). |
Авторы
- Yanis Guenane (@Spredzy)
- Felix Fontein (@felixfontein)
© 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/openssl_publickey_module.html