Spec-Zone.ru › Ansible

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

Примечание

Этот модуль входит в коллекцию community.crypto (версия 2.22.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 для работы с ними.
  • Модуль использует библиотеку cryptography Python.

Требования

Ниже перечислены требования, необходимые на хосте, который выполняет этот модуль.

  • cryptography >= 1.2.3 (более старые версии также могут работать)
  • Требуется cryptography >= 1.4, если format — OpenSSH.

Параметры

Параметр

Комментарии

attributes

aliases: 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.

Варианты:

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

selevel

строка

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

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

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

serole

строка

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

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

END_OF_DOCUMENT_MARKER

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), когда используется режим сравнения.

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

Генерация параметров Diffie-Hellman OpenSSL.

community.crypto.openssl_pkcs12

Генерация архива OpenSSL PKCS#12.

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

строка

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

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

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

filename

строка

Путь к сгенерированному файлу открытого ключа TLS/SSL.

Возвращается: changed или success

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

fingerprint

словарь

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

Возвращается: changed или success

Пример: {"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, …).

Возвращается: changed или success

Пример: "PEM"

privatekey

строка

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

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

Возвращается: changed или success

Пример: "/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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/crypto/openssl_publickey_module.html

Spec-Zone.ru

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