Spec-Zone.ru › Ansible 2.11

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, необходимо использовать backend cryptography. Обратите внимание, что 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
строка
    Варианты:
  • OpenSSH
  • PEM ←
Формат открытого ключа.
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
строка
    Варианты:
  • авто ←
  • cryptography
  • pyopenssl
Определяет, какой 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

Spec-Zone.ru

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