官方gitlab-rails console地址:
https://guides.rubyonrails.org/command_line.html#bin-rails-console
https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password
gitlab 命令行重置密碼:
前提條件:需要保證Gitlab、Redis同時處於啟動狀態。可以運行gitlab-ctl start或者gitlab-ctl restart命令進行啟動或者重啟。
切換到Gitlab的bin目錄下,如果你配置了系統變量PATH則可以不用切換。(如果你在服務器上安裝Gitlab時使用的指定服務器用戶,則需要你切換用戶到當初安裝Gitlab的賬戶上去)
准備就緒后,我們可以執行如下命令進入Gitlab控制的了,命令:
gitlab-rails console -e production
低版本可以嘗試使用下面一句命令:
gitlab-rails console -e production
[root@VM-16-13-centos .ssh]# gitlab-rails console -e production
--------------------------------------------------------------------------------
GitLab: 12.3.5 (2417d5becc7)
GitLab Shell: 10.0.0
PostgreSQL: 10.9
--------------------------------------------------------------------------------
Loading production environment (Rails 5.2.3)
irb(main):001:0> user=User.where(id:1).first
=> #<User id:1 @root>
irb(main):002:0> user=User.where(username:swyan).first #執行報錯,用戶名稱需要單引號
Traceback (most recent call last):
1: from (irb):2
NameError (undefined local variable or method `swyan' for main:Object)
irb(main):003:0> user=User.where(username:'swyan').first #查詢用戶的email,用戶名,密碼等信息,id:1 表示root賬號
=> #<User id:136 @swyan>
irb(main):004:0> user=User.where(id:136).first #通過用戶id更改名稱
=> #<User id:136 @swyan>
irb(main):005:0> user.password='beta123456' #設置密碼
=> "beta123456"
irb(main):006:0> user.password_confirmation='beta123456' #確認密碼
=> "beta123456"
irb(main):007:0> user.save! #保存
Enqueued ActionMailer::DeliveryJob (Job ID: 88a2eb60-5980-4ae2-9068-0baf0f99efe0) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", #<GlobalID:0x00007f325ba38f88 @uri=#<URI::GID gid://gitlab/User/136>>
=> true
irb(main):008:0> quit #退出
[root@VM-16-13-centos .ssh]#
如上,看到Gitlab控制台保存密碼成功后會打印出 ...true等一堆信息,表示設置成功了!上面可以看到觸發了發送郵件的Job,它會發送一封電子郵件到剛才重置密碼的賬戶綁定的郵箱中,內容大致如下:

在Gitlab控制台執行exit或者quit命令即可退出控制台。
通過Gitlab命令重置完密碼后,即可訪問Gitlab登陸界面進行登錄啦,賬戶名就是上面通過User.all獲取到的賬戶列表里面的用戶,密碼就是剛才重新設置的密碼。登錄進入主頁如下:

查看所有用戶
User.all
通過email地址獲取用戶id:
user=User.where(email:'jenkins@domian.com').first
通過用戶名稱獲取id:
user=User.where(username:'swyan').first
方法二:
使用Rake Task重置管理員帳戶密碼。
官方文檔:
https://docs.gitlab.com/ce/security/reset_user_password.html
登錄GitLab應用所在的服務器,執行下列命令:
gitlab-rake "gitlab:password:reset"
//輸入管理員帳戶及兩次新密碼

