从 ansible 运行 bash/java 脚本一直失败并返回代码 126

问题描述

我正在尝试从 ansible playbook 执行 opendistro/elasticsearch 安全设置脚本,但一直失败并返回代码 126。

    - name: Initialize elasticsearch security
      command: /usr/share/elasticsearch/plugins/opendistro_security/tools/securityadmin.sh [...]
      environment:
        JAVA_HOME: /usr/share/elasticsearch/jdk/bin/java

fatal: [sys-centos8a]: FAILED! => {"changed": true,"cmd": ["/usr/share/elasticsearch/plugins/opendistro_security/tools/securityadmin.sh"],"delta": "0:00:00.013054","end": "2021-02-19 09:41:50.267357","msg": "non-zero return code","rc": 126,"start": "2021-02-19 09:41:50.254303","stderr": "","stderr_lines": [],"stdout": "","stdout_lines": []}

设置为 root 不应该是权限错误,但要确保我将权限设置为 777,没有任何更改。

env 设置和 sudo 有问题,所以我在 sudoers 文件中添加了 Defaults env_keep += "JAVA_HOME"。但是仍然没有改变返回 126 错误的 ansible。

我尝试了几种变体,例如使用 elasticsearch 用户或显式 sudo,但没有任何效果。如果我手动 ssh 到目标(以 root 或 elasticsearch 用户身份),它可以完美地工作,但我似乎错过了 ansible 中的某些东西。

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)