community.general.java_keystore 模块 – 以 JKS 格式创建 Java 密钥库
注意
此模块是 community.general 集合(版本 10.1.0)的一部分。
如果您使用的是 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.general
。您需要其他要求才能使用此模块,请参阅 要求 了解详细信息。
要在 playbook 中使用它,请指定:community.general.java_keystore
。
概要
将 x509 证书及其私钥捆绑到 JKS 格式的 Java 密钥库中。
要求
在执行此模块的主机上需要以下要求。
PATH 中的 openssl (当
ssl_backend=openssl
时)PATH 中的 keytool
cryptography >= 3.0 (当
ssl_backend=cryptography
时)
参数
参数 |
注释 |
---|---|
生成的 文件系统对象应具有的属性。 要获取支持的标志,请查看目标系统上 此字符串应包含与 默认情况下假定为 |
|
生成的密钥库的绝对路径。 |
|
即使密钥库已存在也会创建密钥库。 选项
|
|
应该拥有 jks 文件的组的名称。 |
|
Java 密钥库的类型。 当省略此选项且密钥库尚不存在时,该行为遵循 当省略此选项且密钥库已存在时,当前类型将保持不变,除非另一个选项导致覆盖密钥库(在这种情况下,此选项的行为与创建密钥库时相同)。 当设置 选项
|
|
文件应具有的模式。 |
|
密钥库中证书的名称。 如果提供的名称在密钥库中不存在,模块将重新创建密钥库。此行为在 community.general 3.0.0 中发生了更改,在此之前,当名称不匹配时,模块会失败。 |
|
应该拥有 jks 文件的用户名称。 |
|
用于保护密钥库的密码。 如果提供的密码无法解锁密钥库,模块将使用新的密码重新创建密钥库。此行为在 community.general 3.0.0 中发生了更改,在此之前,当密码不匹配时,模块会失败。 |
|
用于创建密钥库的私钥内容。 必须提供 |
|
读取私钥时使用的密码(如果需要)。 |
|
用于创建密钥库的私钥的位置。 必须提供 |
|
SELinux 文件系统对象上下文的 level 部分。 这是 MLS/MCS 属性,有时称为 当设置为 |
|
SELinux 文件系统对象上下文的 role 部分。 当设置为 |
|
SELinux 文件系统对象上下文的 type 部分。 当设置为 |
|
SELinux 文件系统对象上下文的 user 部分。 默认情况下,它使用 当设置为 |
|
用于加载私钥和证书的后端。 选项
|
|
影响何时使用原子操作来防止数据损坏或从目标文件系统对象读取不一致的数据。 默认情况下,此模块使用原子操作来防止数据损坏或从目标文件系统对象读取不一致的数据,但有时系统的配置方式或只是损坏的方式会阻止这种情况。一个例子是 docker 挂载的文件系统对象,这些对象无法从容器内部进行原子更新,并且只能以不安全的方式写入。 当原子操作失败时,此选项允许 Ansible 回退到更新文件系统对象的不安全方法(但是,它不会强制 Ansible 执行不安全的写入)。 重要提示!不安全的写入会受到竞争条件的影响,并可能导致数据损坏。 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 完全 |
可以在 |
|
支持: 无 |
在 diff 模式下,将返回已更改的详细信息(或者在 |
备注
注意
certificate
和private_key
要求其内容在控制器上可用(可以直接在 playbook 中内联,或者使用 ansible.builtin.file 查找),而certificate_path
和private_key_path
要求这些文件在目标主机上可用。按照设计,更改选项
keystore_type
、name
或password
的值,以及更改密钥或证书材料将导致覆盖现有的dest
。
另请参阅
另请参阅
- community.crypto.openssl_pkcs12
生成 OpenSSL PKCS#12 存档。
- community.general.java_cert
使用 keytool 从 Java 密钥库 (cacerts) 导入/删除证书。
示例
- name: Create a keystore for the given certificate/private key pair (inline)
community.general.java_keystore:
name: example
certificate: |
-----BEGIN CERTIFICATE-----
h19dUZ2co2f...
-----END CERTIFICATE-----
private_key: |
-----BEGIN RSA PRIVATE KEY-----
DBVFTEVDVFJ...
-----END RSA PRIVATE KEY-----
password: changeit
dest: /etc/security/keystore.jks
- name: Create a keystore for the given certificate/private key pair (with files on controller)
community.general.java_keystore:
name: example
certificate: "{{ lookup('file', '/path/to/certificate.crt') }}"
private_key: "{{ lookup('file', '/path/to/private.key') }}"
password: changeit
dest: /etc/security/keystore.jks
- name: Create a keystore for the given certificate/private key pair (with files on target host)
community.general.java_keystore:
name: snakeoil
certificate_path: /etc/ssl/certs/ssl-cert-snakeoil.pem
private_key_path: /etc/ssl/private/ssl-cert-snakeoil.key
password: changeit
dest: /etc/security/keystore.jks
返回值
通用返回值在此处 文档化,以下是此模块特有的字段
键 |
描述 |
---|---|
为完成操作而执行的命令 返回: 已更改和失败 示例: |
|
给定命令出错后,keytool/openssl 命令的 stderr 输出。 返回: 失败 示例: |
|
执行给定命令后,keytool/openssl 命令的 stdout 输出或错误。 返回: 已更改和失败 示例: |
|
keytool/openssl 命令执行返回值 返回: 已更改和失败 示例: |