通过Ansible playbook检查Java版本

3

以下是我的 playbook:

---
- 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: UAT gather_facts: false remote_user: c1473247 become_method: sudo become: yes become_user: dsservt tasks:
    • name: 获取Java版本 shell: 'java -version 2>&1 | grep version'

become_user: '{{ global_vars.user_session }}' // your user session

register: java_result ignore_errors: True
  • debug: "msg={{ java_result.stdout }}"
- Harish Dabade
你确定需要的机器上已经安装了Java,并且该用户(dsservt)的系统路径中包含Java吗? - nwinkler
2个回答

1

我在我的电脑上运行了您的脚本,也没有起作用。我稍微修改了一下。

---

- 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"
}

@nwinkler 是的,Java已经安装在提到的路径中。 - Harish Dabade
@nwinkler -- 我尝试了你的更改,但仍然遇到同样的问题。我相信可能存在一些访问问题。 - Harish Dabade

-1

  • hosts: all remote_user: root gather_facts: False

    tasks:

    • name: 获取Java版本 shell: java -version 2>&1 | grep build | awk -F "\n" '{print $1}' changed_when: False register: java_result

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


请在发布答案时更加详细地描述。 - Pratik Bhavsar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接