繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM