在 GitLab 中设置第一个 root 密码的单行控制台命令

Posted

技术标签:

【中文标题】在 GitLab 中设置第一个 root 密码的单行控制台命令【英文标题】:One line console command to set first root password in GitLab 【发布时间】:2020-05-30 09:53:09 【问题描述】:

我需要设置 GitLab 和运行器,创建用户和项目,注册运行器 - 通过 terraform 中的用户数据自动进行。可以通过带有 bash 或 python 脚本的 API 来实现。

要使用 API,我们需要 ACCESS_TOKEN - 使用此脚本https://gist.github.com/vitalyisaev2/215f890e75252cd36794221c2debf365 可以为 root 用户创建 ACCESS_TOKEN。

但首先我需要有一个有效的 root 用户密码。这对我来说是个大问题,我无法解决,请大家帮助我。

第一次登录 GitLab 要求设置/更改密码。 First login to GitLab UI

我想通过脚本设置此密码,非交互方式。 可以这样设置密码:

gitlab-rails console 
irb(main):001:0> user = User.where(id: 1).first
irb(main):001:0> user.password = user.password_confirmation ='IrF8WCsZJlMP'
irb(main):001:0> user.save!
irb(main):001:0> exit

但是,它不适合我,因为我不能交互输入命令。我需要一行命令来设置密码,或者在安装 gitlab-ce 时设置。

这种方式也不行,不设置密码,只设置EXTERNAL_URL:

sudo GITLAB_ROOT_EMAIL="some@email.com" GITLAB_ROOT_PASSWORD="nTjYfcKxcW" EXTERNAL_URL="http://example.com" yum install gitlab-ce

请帮助设置第一个 gitlab root 密码,非交互方式,无需访问浏览器,通过控制台使用一行命令或安装 gitlab-ce。 谢谢!

【问题讨论】:

【参考方案1】:

在 /etc/gitlab/gitlab.rb 文件中我找到了 "gitlab_rails['initial_root_password"

所以,我这样解决了我的问题

sed -i"" "s#\# gitlab_rails\['initial_root_password.*#gitlab_rails\['initial_root_password'\] = \""$GITLAB_INITIAL_ROOT_PASSWD"\"#g" /etc/gitlab/gitlab.rb

需要在第一个“gitlab-ctl reconfigure”命令之前设置“root_initial_password”

【讨论】:

【参考方案2】:
sudo gitlab-rake "gitlab:password:reset"

这是给出用户名、密码和密码确认的最清晰的命令。

【讨论】:

【参考方案3】:
sudo gitlab-rake "gitlab:password:reset[root]"

可以重置root密码。

【讨论】:

以上是关于在 GitLab 中设置第一个 root 密码的单行控制台命令的主要内容,如果未能解决你的问题,请参考以下文章

在dojo过滤中设置第一项选择onChange

如何在 Access 2007 中设置第一个连续组合框不可见?

如何在远程域提供的脚本中设置第 3 方 cookie?

我不想在选择标签中设置第一个选项的状态怎么做任何人都可以帮助我

如何在 UIImage 数组中设置第二张或中间的图像? (斯威夫特 3)

未在具有自定义文本字段的自定义 TableView 中设置第一响应者