我对 ansible 剧本有疑问。我正在尝试将 Java jar 作为命令运行。每当我直接在虚拟机上运行它时 - 它一直有效:
java -jar Installer20161018.jar -readImage Linux_x86-64_20161111.zip -installDir /opt/installPath/vf5511/instDir
重要信息:必须从用户 vf5511
运行安装,他的 home
文件夹是 /opt/installPath/vf5511
但是当尝试编写剧本并运行它时 - 一切都出错了。
这是剧本:
---
- hosts: webmwc10
become: yes
become_user: wm5511
become_method: sudo
tasks:
- name: installing server
shell: java -jar Installer20161018.jar -readImage Linux_x86-64_20161111.zip -installDir /opt/installPath/vf5511/instDir
当我运行 playbook 时,出现错误:
"rc": 127,
"start": "2017-06-02 09:21:31.931049",
"stderr": "/bin/sh: java: command not found",
"stderr_lines": [
"/bin/sh: java: command not found"
],
"stdout": "",
"stdout_lines": []
未找到 Java?我不明白这一点。 Java 已安装并正常工作!
谁能帮我解决这个问题?
最佳答案
在目标服务器上运行以下命令以排除 Java 问题
which java
java -version
成功后,将引号添加到您的 shell 命令中,如下所示,然后再次运行剧本。
shell: "java -jar Installer20161018.jar -readImage Linux_x86-64_20161111.zip -installDir /opt/installPath/vf5511/instDir"
关于linux - Ansible - 如何使用参数运行 Java jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44325507/