[英]Ansible - how to run Java jar with parameters?
我对 ansible playbook 有问题。 我正在尝试将 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
当我运行剧本时,我收到一个错误:
"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"
你应该在“java”之前添加你的java地址。 使用 ssh 时也可能出现此问题。 例如:
shell: /your_java_address_in_target_server/java -jar Installer20161018.jar -readImage Linux_x86-64_20161111.zip -installDir /opt/installPath/vf5511/instDir
#1. 确保您可以访问 java #2 的“become_user”。 在 .bash_profile 中,确保您正在设置 Java 主路径。 #3. 在调用 java 命令之前,运行 .bash_profile 以确保设置了 JDK 路径。 例如: - name: unjar abc.jar shell: source ~/.bash_profile; jar xvf abc.jar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.