使用 .yml 文件更改 elasticsearch 中的默认密码

Change default password in elasticsearch using .yml file

如果我有一个 elasticsearch.yml 配置文件,是否可以更改默认密码?我要在我的 .yml 文件中添加什么来做到这一点?现在是 changeme

我正在使用 Elasticsearch 5.6.4

我的.yml文件

cluster.name: "docker-cluster"
network.host: "0.0.0.0"

http.cors.enabled : true
http.cors.allow-origin : "*"
http.cors.allow-methods : "OPTIONS, HEAD, GET, POST, PUT, DELETE"
http.cors.allow-headers : "X-Requested-With, X-Auth-Token, Content-Type, Content-Length, Authorization"

您可以通过 API 更改密码,如下所示:

POST _xpack/security/user/elastic/_password
{
  "password": "whatever"
}

或者,如果您忘记了它或类似的:https://discuss.elastic.co/t/i-lost-the-password-that-has-been-changed/91867/2

但是您不能执行与 elasticsearch.yml 文件类似的操作。

Andrei 答案有效,但可能会出现问题,因为实例必须是 运行 并且您必须已经过身份验证。

以下适用于 6.7 及更高版本,并且是我一直在寻找的使用自定义密码启动 elasticsearch 的解决方案。

echo "<boot_password>" | bin/elasticsearch-keystore add -xf bootstrap.password

所以我的 dockerfile 看起来像这样

FROM docker.elastic.co/elasticsearch/elasticsearch:6.7.1

RUN echo "<boot_password>" | bin/elasticsearch-keystore add -xf bootstrap.password

COPY ./config/elasticsearch.yml /usr/share/elasticsearch/config/elasticsearch.yml

现在您可以使用

进行连接

username: elastic

password: <boot_password>