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
时)
参数
参数 |
注释 |
---|---|
生成的文件的属性。 要获取支持的标志,请查看目标系统上 chattr 的手册页。 此字符串应包含与 lsattr 显示的顺序相同的属性。
|
|
生成的密钥库的绝对路径。 |
|
即使密钥库已存在,也会创建密钥库。 选项
|
|
应拥有 jks 文件的组的名称。 |
|
Java 密钥库的类型。 省略此选项并且密钥库尚不存在时,行为遵循 省略此选项并且密钥库已存在时,当前类型保持不变,除非另一个选项导致覆盖密钥库(在这种情况下,此选项的行为与创建密钥库相同)。 设置 选项
|
|
文件应有的模式。 |
|
密钥库中证书的名称。 如果提供的名称在密钥库中不存在,则模块将重新创建密钥库。此行为在 community.general 3.0.0 中已更改,在此之前,当名称不匹配时,模块将失败。 |
|
应拥有 jks 文件的用户的名称。 |
|
应用于保护密钥库的密码。 如果提供的密码无法解锁密钥库,模块将使用新密码重新创建密钥库。此行为在 community.general 3.0.0 中发生了更改,在此之前,当密码不匹配时,模块将失败。 |
|
用于创建密钥库的私钥内容。 必须提供 |
|
读取私钥时使用的密码,如果需要。 |
|
用于创建密钥库的私钥的位置。 必须提供 |
|
SELinux 文件系统对象上下文的级别部分。 这是 MLS/MCS 属性,有时称为 当设置为 |
|
SELinux 文件系统对象上下文的角色部分。 当设置为 |
|
SELinux 文件系统对象上下文的类型部分。 当设置为 |
|
SELinux 文件系统对象上下文的用户部分。 默认情况下,它使用 当设置为 |
|
用于加载私钥和证书的后端。 选项
|
|
影响何时使用原子操作来防止数据损坏或从目标文件系统对象读取不一致的数据。 默认情况下,此模块使用原子操作来防止数据损坏或从目标文件系统对象读取不一致的数据,但有时系统的配置方式或损坏方式会阻止这种情况。一个例子是 docker 挂载的文件系统对象,它无法从容器内部以原子方式更新,只能以不安全的方式写入。 当原子操作失败时,此选项允许 Ansible 回退到更新文件系统对象的不安全方法(但是,它不会强制 Ansible 执行不安全写入)。 重要提示!不安全的写入容易发生竞争条件,并可能导致数据损坏。 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全 |
可以在 |
|
支持:无 |
在 diff 模式下,将返回有关已更改内容(或可能需要在 |
说明
注意
certificate
和private_key
要求其内容在控制器上可用(可以直接在 playbook 中,或者使用 ansible.builtin.file lookup),而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 命令执行返回值 返回:更改和失败 示例: |