community.crypto.openssl_publickey – Генерация открытого ключа OpenSSL из закрытого ключа.
Примечание
Этот плагин входит в коллекцию community.crypto (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.crypto.
Для использования в плейбуке укажите: community.crypto.openssl_publickey.
Описание
- Этот модуль позволяет (повторно) генерировать открытые ключи OpenSSL из закрытых ключей.
- Ключи генерируются в формате PEM или OpenSSH.
- Модуль может использовать библиотеку cryptography или pyOpenSSL. По умолчанию он пытается определить, какая из них доступна. Это можно переопределить с помощью опции select_crypto_backend. Когда format равен
OpenSSH, должен использоватьсяcryptographyбэкенд. Обратите внимание, что бэкенд 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). | |
| 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 строка |
| Определяет, какой криптографический бэкенд использовать. Значение по умолчанию — 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 string | изменилось и если backup yes
| Имя созданного файла резервной копии. Пример: /path/to/publickey.pem.2019-03-09@11:22~ |
| filename string | изменилось или успех | Путь к сгенерированному файлу открытого ключа TLS/SSL. Пример: /etc/ssl/public/ansible.com.pem |
| fingerprint dictionary | изменилось или успех | Отпечаток открытого ключа. Отпечаток будет сгенерирован для каждого доступного алгоритма 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 string | изменилось или успех | Формат открытого ключа (PEM, OpenSSH, ...). Пример: PEM |
| privatekey string | изменилось или успех | Путь к закрытому ключу TLS/SSL, из которого был сгенерирован открытый ключ. Будет none если закрытый ключ был предоставлен в privatekey_content.Пример: /etc/ssl/private/ansible.com.pem |
| publickey string добавлено в 1.0.0 community.crypto | если state present и return_content yes
| Содержание открытого ключа (текущего или сгенерированного). |
Авторы
- Yanis Guenane (@Spredzy)
- Felix Fontein (@felixfontein)
© 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/openssl_publickey_module.html