【发布时间】:2021-02-19 08:43:31
【问题描述】:
我正在尝试从 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"。但仍然没有改变 ansible 返回 126 错误。
我尝试了几种变体,例如使用 elasticsearch 用户或显式 sudo,但没有任何效果。如果我手动 ssh 到目标(作为 root 用户或 elasticsearch 用户),它可以完美运行,但我似乎错过了 ansible 中的某些内容。
有什么想法吗?
【问题讨论】:
-
嗨阿多纳斯,欢迎来到 SO。您可能希望使用
bash -x运行该脚本以查看它正在尝试什么命令,以及它失败的原因:command: bash -x /usr/... -
MDaniel,谢谢,我以前从未听说过 bash 跟踪,但它让我走上了正轨。
标签: ansible elasticsearch-opendistro