community.crypto.openssl_privatekey_pipe 模块 – 无需磁盘访问即可生成 OpenSSL 私钥
注意
此模块是 community.crypto 集合 (版本 2.22.3) 的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.crypto
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定:community.crypto.openssl_privatekey_pipe
。
community.crypto 1.3.0 中的新增功能
概要
密钥以 PEM 格式生成。
确保不要将此模块的结果写入日志或控制台,因为它包含私钥数据!使用
no_log
任务选项以确保安全。请注意,此模块实现为 action 插件,并且始终在控制器上执行。
这允许在无需将中间版本写入磁盘的情况下读取和写入密钥到保管库。
此模块允许用户无需磁盘访问即可(重新)生成 OpenSSL 私钥。
注意
此模块具有相应的 action 插件。
要求
以下要求是在执行此模块的主机上需要的。
cryptography >= 1.2.3(较旧的版本也可能有效)
参数
参数 |
注释 |
---|---|
当前的私钥数据。 幂等性所需。如果未提供,模块将始终返回更改,并且所有与幂等性相关的选项都将被忽略。 |
|
如果内容是 base64 编码的,则设置为 选项
|
|
请注意,并非所有曲线都受所有版本的 为了最大限度地提高互操作性,应使用 我们使用在 IANA TLS 注册表 中定义的曲线名称。 请注意,除了 选项
|
|
确定私钥的写入格式。默认情况下,PKCS1(传统的 OpenSSL 格式)用于所有支持它的密钥。请注意,并非每个密钥都可以导出为任何格式。 值 请注意,如果现有私钥的格式不匹配,则默认情况下会 **重新生成** 密钥。要更改此行为,请使用 选项
|
|
如果私钥的格式与预期格式不匹配,但所有其他参数都符合预期,则确定模块的行为。 如果设置为 如果设置为 仅受 选项
|
|
私钥的密码。 |
|
允许配置模块允许在哪些情况下重新生成私钥。如果目标文件不存在,模块将始终生成一个新密钥。 默认情况下,如果密钥与模块选项不匹配,则会重新生成密钥,但密钥无法读取或密码不匹配的情况除外。请注意,这在 Ansible 2.10 中已更改。对于 Ansible 2.9,其行为如同指定了 如果设置为 如果设置为 如果设置为 如果设置为 如果设置为 请注意,如果 选项
|
|
设置为 请注意,在检查模式下,如果此选项未设置为 选项
|
|
确定要使用的加密后端。 默认选择是 如果设置为 选项
|
|
要生成的 TLS/SSL 密钥的大小(以位为单位)。 默认值: |
|
用于生成 TLS/SSL 私钥的算法。 请注意, 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
表明这具有相应的 action 插件,因此可以在控制器上执行某些选项。 |
|
支持:不支持 此操作完全在控制器上运行。 |
支持与 |
|
支持:完全支持 目前在检查模式下,私钥不会被(重新)生成,只会设置更改状态。这将在 community.crypto 3.0.0 中更改。 从 community.crypto 3.0.0 开始,模块将忽略检查模式,并始终表现得好像检查模式未激活一样。如果您认为这破坏了您对此模块的使用案例,请在 community.crypto 存储库中创建一个问题。 |
可以在 |
|
支持:完全支持 |
在差异模式下,将返回有关已更改内容(或可能需要在 |
另请参见
另请参见
- community.crypto.openssl_privatekey
生成 OpenSSL 私钥。
- community.crypto.openssl_privatekey_info
提供 OpenSSL 私钥的信息。
- community.crypto.x509_certificate
生成和/或检查 OpenSSL 证书。
- community.crypto.x509_certificate_pipe
生成和/或检查 OpenSSL 证书。
- community.crypto.openssl_csr
生成 OpenSSL 证书签名请求 (CSR)。
- community.crypto.openssl_csr_pipe
生成 OpenSSL 证书签名请求 (CSR)。
- community.crypto.openssl_dhparam
生成 OpenSSL Diffie-Hellman 参数。
- community.crypto.openssl_pkcs12
生成 OpenSSL PKCS#12 存档。
- community.crypto.openssl_publickey
从其私钥生成 OpenSSL 公钥。
示例
- name: Generate an OpenSSL private key with the default values (4096 bits, RSA)
community.crypto.openssl_privatekey_pipe:
register: output
no_log: true # make sure that private key data is not accidentally revealed in logs!
- name: Show generated key
ansible.builtin.debug:
msg: "{{ output.privatekey }}"
# DO NOT OUTPUT KEY MATERIAL TO CONSOLE OR LOGS IN PRODUCTION!
# The following example needs CNCF SOPS (https://github.com/getsops/sops) set up and
# the community.sops collection installed. See also
# https://docs.ansible.org.cn/ansible/latest/collections/community/sops/docsite/guide.html
- name: Generate or update a CNCF SOPS encrypted key
block:
- name: Update SOPS-encrypted key with the community.sops collection
community.crypto.openssl_privatekey_pipe:
content: "{{ lookup('community.sops.sops', 'private_key.pem.sops') }}"
size: 2048
register: output
no_log: true # make sure that private key data is not accidentally revealed in logs!
- name: Update encrypted key when openssl_privatekey_pipe reported a change
community.sops.sops_encrypt:
path: private_key.pem.sops
content_text: "{{ output.privatekey }}"
when: output is changed
always:
- name: Make sure that output (which contains the private key) is overwritten
ansible.builtin.set_fact:
output: ''
返回值
常用返回值已在此处记录,以下是此模块特有的字段
Key |
描述 |
---|---|
公钥的指纹。将为每个可用的 返回:已更改或成功 示例: |
|
生成的私钥的内容。 请注意,如果结果未更改,则只有在 如果密钥为原始格式,则将进行 Base64 编码。 返回:已更改,或 |
|
TLS/SSL 私钥的大小(以位为单位)。 返回:已更改或成功 示例: |
|
用于生成 TLS/SSL 私钥的算法。 返回:已更改或成功 示例: |