我在没有任何身份验证的情况下成功使用 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
. 它按原样工作。在编写和编辑堆栈溢出帖子时发现