仅当auth关闭时,InfluxDB才能创建第一个用户

时间:2018-04-23 09:17:09

标签: docker influxdb

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

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

[http]
  ...
  # Determines whether user authentication is enabled over HTTP/HTTPS.
  auth-enabled = true
  ...

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

docker exec influxdb influx -execute "create user admin with password 'blabla' with all privileges"

但是,

失败了
"stdout": "ERR: error authorizing query: no user provided

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

禁用身份验证时有效。所以我可以做到以下几点:

  1. 在禁用身份验证的情况下创建配置。
  2. 启动InfluxDB
  3. 创建用户
  4. 更改配置,以便现在启用身份验证。
  5. 重启InfluxDB
  6. 但在这种情况下,我必须将配置存储在特定的Docker卷中,当任何人无需身份验证即可登录时,它仍然会留下一个窗口。所以它可以自动化,但它不是一个优雅的解决方案。

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

2 个答案:

答案 0 :(得分:3)

2021 年更新:在 Docker 的 InfluxDB 中自动创建管理员/用户时,显然可能存在一些警告/边缘情况 - 请参阅此处:https://github.com/influxdata/influxdata-docker/issues/232

如果您标记以下消息:“先创建管理员用户或禁用身份验证”,即使您按照@adebasi 的建议设置了环境,那么上面的链接可能会帮助您解决问题。 >

我刚刚检查了最新的官方 InfluxDB docker 并且它可以工作,但是,如上述链接中所述,如果 meta 下存在 /var/lib/influxdb 目录(即使为空),则用户不会t 被创建。

还有另一种情况 - 在使用适用于 RaspberryPi Zero (https://hub.docker.com/r/mendhak/arm32v6-influxdb) 的非官方 InfluxDB docker 时,此创建用户的功能不存在,或者至少对我不起作用(我已经检查了 docker 图像和我没有看到创建用户的代码)。

答案 1 :(得分:2)

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

在容器中设置环境变量INFLUXDB_ADMIN_USERINFLUXDB_ADMIN_PASSWORD,以创建具有给定密码的admin用户。您还可以通过环境变量INFLUXDB_HTTP_AUTH_ENABLED

启用身份验证