java - 通过 Ansible 剧本检查 Java 版本

标签 java shell scripting ansible version

以下是我的剧本:

---
- hosts: UAT
  gather_facts: false
  remote_user: xxxx
  become_method: sudo
  become: yes
  become_user: sudo_user
  tasks:
   - name: Fetch Java version
     command: java -version
     register: java_result
     ignore_errors: True
   - debug: "msg={{ java_result.stdout }}"
...

我收到以下错误:

fatal: [ma-dsast-lapp10]: FAILED! => {
    "changed": false,
    "cmd": "java -version '2>&1' '|' grep version",
    "failed": true,
    "invocation": {
        "module_args": {
            "_raw_params": "java -version 2>&1 | grep version",
            "_uses_shell": false,
            "chdir": null,
            "creates": null,
            "executable": null,
            "removes": null,
            "warn": true
        }
    },
    "msg": "[Errno 2] No such file or directory",
    "rc": 2
}

我得到:没有这样的文件或目录错误

这可能是什么问题? 请帮我解决这个问题。

最佳答案

我在我的机器上运行了你的脚本,但它也没有工作。我稍微修改了一下

---

- hosts: localhost
  gather_facts: False

  tasks:
   - name: Fetch Java version
     shell: java -version 2>&1 | grep version | awk '{print $3}' | sed 's/"//g'                                                                                                                                   
     changed_when: False
     register: java_result

   - debug:
       msg: "{{ java_result.stdout }}"

我得到了

TASK [debug] *******************************************************************************************
ok: [localhost] => {
    "msg": "1.8.0_181"
}

关于java - 通过 Ansible 剧本检查 Java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53740372/

相关文章:

java - Tomcat 如何在服务器 xml 中将基站点 url 连接到我的项目

linux - 如何排队多个程序顺序运行?

windows - 如何避免批处理行限制(每行 8191 个字符)?

powershell - 使用 PowerShell 的类型 -wait 和 select-string 实时监控应用程序日志的条件并执行操作(如 tail -f 或 watch)

java - 如何在swing应用程序中创建自动隐藏滚动条?

java - 如何从其自己的操作监听器更改 menuItem 工具提示?

java - 无法更新安卓应用

linux - 如何在shell bash脚本中使用if查看文件是否有后缀

bash - 递归移动某种类型的文件并保持其目录结构

c++ - 当不再有对象引用时,COM 会自动卸载 DLL 吗?