InfluxDB只有在auth关闭的情况下才能创建第一个用户

Tim*_*imo 2 docker influxdb

有没有办法在启用身份验证的 InfluxDB 中创建用户?免责声明:我是 InfluxDB 的新手。

我创建了一个运行 InfluxDB 的 Docker 容器,并通过auth-enabled = true在文件的http部分中进行设置来启用身份验证influxdb.conf

[http]
  ...
  # Determines whether user authentication is enabled over HTTP/HTTPS.
  auth-enabled = true
  ...
Run Code Online (Sandbox Code Playgroud)

由于没有用户,我尝试使用以下命令创建一个:

docker exec influxdb influx -execute "create user admin with password 'blabla' with all privileges"
Run Code Online (Sandbox Code Playgroud)

然而,这失败了

"stdout": "ERR: error authorizing query: no user provided
Run Code Online (Sandbox Code Playgroud)

所以这是一个先有鸡还是先有蛋的问题。您无法创建用户,因为这首先需要以用户身份登录。

它在禁用身份验证时工作。所以我可以执行以下操作:

  1. 创建禁用身份验证的配置。
  2. 启动 InfluxDB
  3. 创建用户
  4. 更改配置以便现在启用身份验证。
  5. 重启 InfluxDB

但在这种情况下,我必须将配置存储在特定的 Docker 卷中,并且当任何人都可以在没有身份验证的情况下登录时,它仍然会留下一个窗口。所以它可以自动化,但它不是一个优雅的解决方案。

这个问题有优雅的解决方案吗?

ade*_*asi 5

大多数数据库映像提供了一种通过环境变量配置admin-user和的方法admin-passwort。InfluxDB 也这样做:https : //hub.docker.com/_/influxdb/

设置环境变量INFLUXDB_ADMIN_USERINFLUXDB_ADMIN_PASSWORD在您的容器中使用给定的密码创建管理员用户。您还可以通过环境变量启用身份验证INFLUXDB_HTTP_AUTH_ENABLED