0

我在没有任何身份验证的情况下成功使用 ES7。最近决定为内置用户使用密码。

我有一个内置用户,我想在弹性搜索开始时为其传递密码。elasticsearch的docker-compose.yml入口是

elasticsearch:
    deploy:
      replicas: 1
    environment: [ELASTIC_PASSWORD_FILE=/run/secrets/elasticsearch]
    image: ***.dkr.ecr.us-west-2.amazonaws.com/elasticsearch:7.11.2
    ports: ['9200:9200', '9300:9300']
    secrets: [elasticsearch]
    volumes: [
      '/config/elasticsearch/elasticsearch:/run/secrets/elasticsearch',
      '/config/elasticsearch/entrypoint.sh:/opt/elasticsearch/entrypoint.sh']
    command: [bash, -c, '/opt/elasticsearch/entrypoint.sh'] #added first time

我尝试的第一种方法是在入口点文件中传递密码。

entrypoint.sh文件,ubuntu是我服务器上所有与弹性搜索相关的东西的所有者

#!/bin/sh
set -e
su ubuntu
exec /usr/share/elasticsearch/bin/elasticsearch <<< $ELASTIC_PASSWORD_FILE

但我得到了错误su: user ubuntu does not exist。如果我没有通过任何用户或没有通过,su elasticsearch那么我会收到错误消息can not run elasticsearch as root。我可以尝试哪些其他用户?

第二种方法:有没有一种方法,我不必创建额外的入口点,而是可以直接使用密码启动 ES?当我查看 PR 时:https ://github.com/elastic/elasticsearch/pull/47573似乎解决方案应该是直截了当的,我不应该声明command. 它按原样工作。在编写和编辑堆栈溢出帖子时发现

4

0 回答 0