Ansible - 如何使用参数运行Java jar?

时间:2017-06-02 09:32:58

标签: linux bash vagrant ansible

我对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已安装并正常运行!

任何人都可以帮我吗?

3 个答案:

答案 0 :(得分:2)

在目标服务器上运行以下命令以排除Java问题

setInterval

成功结果后,在shell命令中添加引号,如下所示,再次运行playbook。

while(true) { //infinite loop 
}

答案 1 :(得分:0)

您应该在“ java”之前添加您的Java地址。当也使用ssh时,可能会出现此问题。例如:

NUnit3TestAdapter.props

答案 2 :(得分:0)

#1。确保您具有访问Java的“ become_user” #2。在.bash_profile中,确保设置Java主目录路径。 #3。在调用java命令之前,请运行.bash_profile以确保已设置JDK路径。 例如:-名称:unjar abc.jar 外壳:源〜/ .bash_profile; jar xvf abc.jar