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 插件 实现的,并且始终在控制器上执行。
这允许读取和写入 Vault 中的密钥,而无需将中间版本写入磁盘。
此模块允许您(重新)生成无需磁盘访问的 OpenSSL 私钥。
注意
此模块具有相应的 action 插件。
要求
执行此模块的主机需要满足以下要求。
cryptography >= 1.2.3(旧版本可能也有效)
参数
参数 |
注释 |
---|---|
当前的私钥数据。 用于幂等性。如果未提供,则模块将始终返回更改,并且所有与幂等性相关的选项都将被忽略。 |
|
如果内容是 base64 编码的,则设置为 选择
|
|
请注意,并非所有 为了获得最大的互操作性,应使用 我们使用在 TLS 的 IANA 注册表中定义的曲线名称。 请注意,除了 选择
|
|
确定私钥的写入格式。默认情况下,PKCS1(传统的 OpenSSL 格式)用于所有支持它的密钥。请注意,并非每个密钥都可以以任何格式导出。 值 请注意,如果现有私钥的格式不匹配,则默认情况下会重新生成密钥。要更改此行为,请使用 选择
|
|
如果私钥的格式与预期格式不匹配,但所有其他参数都符合预期,则确定模块的行为。 如果设置为 如果设置为 仅由 选择
|
|
私钥的密码。 |
|
允许配置模块在哪些情况下可以重新生成私钥。如果目标文件不存在,模块将始终生成新的密钥。 默认情况下,当密钥与模块的选项不匹配时,密钥将被重新生成,除非密钥无法读取或密码不匹配。请注意,此行为在 Ansible 2.10 中已更改。对于 Ansible 2.9,其行为如同指定了 如果设置为 如果设置为 如果设置为 如果设置为 如果设置为 请注意,如果 选择
|
|
设置为 请注意,在检查模式下,当此选项未设置为 选择
|
|
确定要使用的加密后端。 默认选择是 如果设置为 选择
|
|
要生成的 TLS/SSL 密钥的大小(以位为单位)。 默认: |
|
用于生成 TLS/SSL 私钥的算法。 请注意, 选择
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 完整 |
表示它有一个对应的 action 插件,因此选项的某些部分可以在控制器上执行。 |
|
支持: 无 此 action 完全在控制器上运行。 |
支持与 |
|
支持: 完整 当前处于检查模式时,不会(重新)生成私钥,只会设置更改状态。这将在 community.crypto 3.0.0 中更改。 从 community.crypto 3.0.0 开始,该模块将忽略检查模式,并且始终表现得好像检查模式未激活。如果您认为这会破坏您对此模块的用例,请在 community.crypto 存储库中创建一个 issue。 |
可以在 |
|
支持: 完整 |
当处于 diff 模式时,将返回有关已更改的内容(或可能需要在 |
另请参阅
另请参阅
- 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 |
描述 |
---|---|
公钥的指纹。将为每个可用的 返回: changed 或 success 示例: |
|
生成的私钥的内容。 请注意,如果结果未更改,则仅当 如果密钥为原始格式,将进行 Base64 编码。 返回: changed,或者 |
|
TLS/SSL 私钥的大小(以位为单位)。 返回: changed 或 success 示例: |
|
用于生成 TLS/SSL 私钥的算法。 返回: changed 或 success 示例: |