我正在尝试从 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有问题,所以我添加Defaults env_keep += "JAVA_HOME"
到sudoers文件中。但是仍然没有改变 ansible 返回 126 错误。
我尝试了几种变体,例如使用 elasticsearch 用户或显式 sudo,但没有任何效果。如果我手动 ssh 到目标(作为 root 或 elasticsearch 用户),它可以完美地工作,但我似乎错过了 ansible 中的一些东西。
有任何想法吗?