ansible - 使用 Ansible java_cert 从站点导入证书
问题描述
我正在考虑使用 Ansible java_cert模块从受信任的站点导入证书。
使用 bash 可以使用以下命令来完成
echo -n | openssl s_client -connect sh.1.1.1.3.nip.io:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/nipio.pem
/usr/lib/jvm/jdk-8u192/jre/bin/keytool -importcert -noprompt -keystore /usr/lib/jvm/jdk-8u192/jre/lib/security/cacerts -storepass changeit -alias 'nipio' -file /tmp/nipio.pem
很容易。当我检查时,证书在密钥库中
/usr/lib/jvm/jdk-8u192/jre/bin/keytool -list -keystore /usr/lib/jvm/jdk-8u192/jre/lib/security/cacerts -storepass changeit | grep nipio
根据我对 Ansible java_cert的理解,应该使用以下 Ansible YAML 代码来实现相同的目的
- java_cert:
cert_alias: nipio
cert_url: sh.1.1.1.3.nip.io
cert_port: 443
keystore_path: /usr/lib/jvm/jdk-8u192/jre/lib/security/cacerts
keystore_pass: changeit
executable: /usr/lib/jvm/jdk-8u192/jre/bin/keytool
state: present
每次我运行 Ansible 时,我的任务都会“更改”,这表明 Ansible 正在更新密钥库。但是证书不会“存在”而是丢失。
TASK [cacerts : Import trusted sites] ****************************
changed: [bitbucket] => (item={u'url': u'sh.1.1.1.3.nip.io', u'port': 443, u'name': u'nipio'})
该命令有一个返回值,表明该命令在没有任何要导入的情况下运行?
cmd': u\"/usr/lib/jvm/jdk-8u192/jre/bin/keytool -importcert -noprompt -keystore '/usr/lib/jvm/jdk-8u192/jre/lib/security/cacerts' -storepass '********' -alias 'nipio' \"
这是一个已知问题java_cert
吗?这应该如何工作?
解决方案
推荐阅读
- javascript - 使用具有动态文本的相同角度模板
- c# - 登录表单,如何在一个登录表单中使用 3 个表登录?
- javascript - 使用 RxJS / TypeScript / JavaScript 将行转换为列
- twitter-bootstrap - Bootstrap - 导入引导 scss 时 col-size 不起作用
- google-apps-script - 为 Google 表格创建可安装触发器时出现意外错误
- python - 尝试将用户输入同时存储到数组和数据库中
- apache-spark - 可以使用 spark 配置配置 Beam 便携式跑步者吗?
- r - 如何在 R 中创建一个 for 循环来运行一个简单的随机样本并计算每个集合的平均值
- python - 如何使用嵌套字典列表
- javascript - 在引导弹出窗口中插入“关闭按钮”