使用Ansible Playbook如何将Java证书复制到主机?每个主机都安装了不同的JDK。我需要在所有主机中验证正在运行的JDK,并将那些证书复制到所有主机。
我写了下面的剧本和我遇到的错误。请帮助我找出问题所在。
---
- hosts: test
vars:
pack1: /ngs/app/rdrt
pack2: /usr/java/jdk*
tasks:
- name: copy the files
copy:
src: "/Users/sivarami.rc/Downloads/Problem46218229/apple_corporate_root_ca.pem"
dest: "{{ pack1 }}"
- name: copy the files
copy:
src: "/Users/sivarami.rc/Downloads/Problem46218229/apple_corporate_root_ca2.pem"
dest: "{{ pack1 }}"
- name: copy the files
copy:
src: "/Users/sivarami.rc/Downloads/Problem46218229/ca-trust-check-1.0.0.jar"
dest: "{{ pack1 }}"
- name: Import SSL certificate to a given cacerts keystore
java_cert:
cert_path: "{{ pack1 }}/apple_corporate_root_ca.pem"
cert_alias: Apple_Corporate_Root_CA
cert_port: 443
keystore_path: "{{ pack2 }}/jre/lib/security/cacerts"
keystore_pass: change-it
executable: "{{ pack2 }}/bin/keytool"
state: present
- name: Import SSL certificate to a cacerts keystore
java_cert:
cert_path: "{{ pack1 }}/apple_corporate_root_ca2.pem"
cert_alias: Apple_Corporate_Root_CA2
cert_port: 443
keystore_path: "{{ pack2 }}/jre/lib/security/cacerts"
keystore_pass: changeit
executable: "{{ pack2 }}/bin/keytool"
state: present
- name: checking those files trusted or untrusted
shell: "{{ pack2 }}/bin/java -jar {{ pack1 }}/ca-trust-check-1.0.0.jar"
错误:
fatal: [c5147061@rn2-radart-lapp117.rno.apple.com]: FAILED! => {"changed": false, "cmd": "'/usr/java/jdk*/bin/keytool'", "msg": "[Errno 2] No such file or directory", "rc": 2}
fatal: [c5147061@rn2-radart-lapp121.rno.apple.com]: FAILED! => {"changed": false, "cmd": "'/usr/java/jdk*/bin/keytool'", "msg": "[Errno 2] No such file or directory", "rc": 2}
答案 0 :(得分:0)
显示以下错误:
"cmd": "'/usr/java/jdk*/bin/keytool'", "msg": "[Errno 2] No such file or directory"
如您所见,在该位置找不到keytool
命令。您需要确保所提供的路径实际上在服务器上。
在定义pack2
变量的地方,您需要提供完整路径,而不是使用通配符,例如像这样:
vars:
pack2: /usr/java/jdk-1.8.0_67
然后确保该路径在远程计算机上存在,并且您的代码不应再显示该错误。
如果每个节点上的路径都不相同,因为每个节点上的Java版本不同,则可以使用以下选项:
JAVA_HOME
环境变量以查看是否已设置。答案 1 :(得分:0)
我有同样的错误,即没有在我的PATH上找到keytool实用程序,但是那是因为我没有使用具有正确PATH值的turn_user。 所以我的解决方案是将以下行添加到我的剧本中: 成为:是的 成为用户:wls (wls是weblogic用户,但根据您的需要可以是另一个系统帐户)
答案 2 :(得分:0)
我遇到了同样的错误,因为keytool链接到了一个非常老的JDK版本(版本6)。 通过使用最新版本(JDK版本11),我修复了此错误。