1. 程式人生 > >版本管理之gitlab實踐教程:基礎篇(16)

版本管理之gitlab實踐教程:基礎篇(16)

這篇文章介紹一下如何修改初始管理賬號root的密碼。

命令列方式

確認gitlab-rails

使用gitlab-rails進行設定

 which gitlab-rails
/opt/gitlab/bin/gitlab-rails
# 
# gitlab-rails -v
Rails 4.2.7.1
# 

使用console方式

# gitlab-rails console production
Loading production environment (Rails 4.2.7.1)
irb(main):001:0>

查詢root使用者

一般使用mail地址進行使用者定位,但是root使用者在建立是往往沒有設定郵箱,可以根據其ID進行定位,可以使用User.where(id:1).first

irb(main):001:0> user = User.where(id:1).first
=> #<User id: 1, email: "[email protected]", encrypted_password: "$2a$10$c.TKRpA/e7RD2k0hFa2j8eAcOpYJO7SKaexc1NPB.Pl...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 2, current_sign_in_at: "2018-07-30 06:16:31"
, last_sign_in_at: "2018-07-29 22:33:21", current_sign_in_ip: "192.168.163.2", last_sign_in_ip: "192.168.163.2", created_at: "2018-07-29 22:13:41", updated_at: "2018-07-30 06:16:31", name: "Administrator", admin: true, projects_limit: 10, skype: "", linkedin: "", twitter: "", authentication_token: "9-9rh18mQz4h3eDMQf5M"
, theme_id: 2, bio: nil, failed_attempts: 0, locked_at: nil, username: "root", can_create_group: true, can_create_team: false, state: "active", color_scheme_id: 1, password_expires_at: nil, created_by_id: nil, last_credential_check_at: nil, avatar: nil, confirmation_token: nil, confirmed_at: "2018-07-29 22:13:41", confirmation_sent_at: nil, unconfirmed_email: nil, hide_no_ssh_key: false, website_url: "", notification_email: "[email protected]", hide_no_password: false, password_automatically_set: false, location: nil, encrypted_otp_secret: nil, encrypted_otp_secret_iv: nil, encrypted_otp_secret_salt: nil, otp_required_for_login: false, otp_backup_codes: nil, public_email: "", dashboard: 0, project_view: 0, consumed_timestep: nil, layout: 0, hide_project_limit: false, unlock_token: nil, otp_grace_period_started_at: nil, ldap_email: false, external: false> irb(main):002:0>

設定密碼

irb(main):002:0> user.password='liumiaocn'
=> "liumiaocn"
irb(main):003:0> user.password_confirmation='liumiaocn'
=> "liumiaocn"
irb(main):004:0> 

儲存使用者密碼

irb(main):004:0> user.save!
Enqueued ActionMailer::DeliveryJob (Job ID: 4842b3ec-3337-4861-9229-acae59dc12ab) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/1
=> true
irb(main):005:0>

確認結果

使用修改後的密碼獲取使用者的token以驗證密碼是否正確

[root@platform ~]# curl http://192.168.163.118:32001/api/v3/session --data 'login=root&password=liumiaocn'
{"name":"Administrator","username":"root","id":1,"state":"active","avatar_url":"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon","web_url":"http://1c79a0cf3ed8/u/root","created_at":"2018-07-29T22:13:41.119Z","is_admin":true,"bio":null,"location":null,"skype":"","linkedin":"","twitter":"","website_url":"","last_sign_in_at":"2018-07-29T22:33:21.419Z","confirmed_at":"2018-07-29T22:13:41.249Z","email":"[email protected]","theme_id":2,"color_scheme_id":1,"projects_limit":10,"current_sign_in_at":"2018-07-30T06:16:31.645Z","identities":[],"can_create_group":true,"can_create_project":true,"two_factor_enabled":false,"external":false,"private_token":"9-9rh18mQz4h3eDMQf5M"}[root@platform ~]#

HereDocument方式

設定指令碼

使用HereDocument方式進行使用者密碼的設定,比如可以使用如下指令碼, 通過傳遞一個引數來設定密碼

# cat change_root_pw.sh
#!/bin/sh

PASSWORD="$1"

echo "## change root password to $PASSWORD"
gitlab-rails console production <<EOF
user = User.where(id:1).first
user.password = "$PASSWORD"
user.password_confirmation = "$PASSWORD"
user.save!
EOF

echo "## Finished."
# 

執行日誌

# sh change_root_pw.sh "12345678"
## change root password to 12345678
Loading production environment (Rails 4.2.7.1)
Switch to inspect mode.
user = User.where(id:1).first
#<User id: 1, email: "[email protected]", encrypted_password: "$2a$10$PMzzvp4KpnTxC7U1hYm2/uwQgUQxJbA5QpiZaxr9XrO...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 2, current_sign_in_at: "2018-07-30 06:16:31", last_sign_in_at: "2018-07-29 22:33:21", current_sign_in_ip: "192.168.163.2", last_sign_in_ip: "192.168.163.2", created_at: "2018-07-29 22:13:41", updated_at: "2018-07-30 07:43:00", name: "Administrator", admin: true, projects_limit: 10, skype: "", linkedin: "", twitter: "", authentication_token: "9-9rh18mQz4h3eDMQf5M", theme_id: 2, bio: nil, failed_attempts: 0, locked_at: nil, username: "root", can_create_group: true, can_create_team: false, state: "active", color_scheme_id: 1, password_expires_at: nil, created_by_id: nil, last_credential_check_at: nil, avatar: nil, confirmation_token: nil, confirmed_at: "2018-07-29 22:13:41", confirmation_sent_at: nil, unconfirmed_email: nil, hide_no_ssh_key: false, website_url: "", notification_email: "[email protected]", hide_no_password: false, password_automatically_set: false, location: nil, encrypted_otp_secret: nil, encrypted_otp_secret_iv: nil, encrypted_otp_secret_salt: nil, otp_required_for_login: false, otp_backup_codes: nil, public_email: "", dashboard: 0, project_view: 0, consumed_timestep: nil, layout: 0, hide_project_limit: false, unlock_token: nil, otp_grace_period_started_at: nil, ldap_email: false, external: false>
user.password = "12345678"
"12345678"
user.password_confirmation = "12345678"
"12345678"
user.save!
Enqueued ActionMailer::DeliveryJob (Job ID: 9febfb5e-a9c7-4d84-a9d5-df56cab89369) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/1
true

## Finished.
# 

結果確認

[root@platform tmp]# curl http://192.168.163.118:32001/api/v3/session --data 'login=root&password=12345678'
{"name":"Administrator","username":"root","id":1,"state":"active","avatar_url":"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon","web_url":"http://1c79a0cf3ed8/u/root","created_at":"2018-07-29T22:13:41.119Z","is_admin":true,"bio":null,"location":null,"skype":"","linkedin":"","twitter":"","website_url":"","last_sign_in_at":"2018-07-29T22:33:21.419Z","confirmed_at":"2018-07-29T22:13:41.249Z","email":"[email protected]","theme_id":2,"color_scheme_id":1,"projects_limit":10,"current_sign_in_at":"2018-07-30T06:16:31.645Z","identities":[],"can_create_group":true,"can_create_project":true,"two_factor_enabled":false,"external":false,"private_token":"9-9rh18mQz4h3eDMQf5M"}[root@platform tmp]# 

相關推薦

版本管理gitlab實踐教程基礎(16)

這篇文章介紹一下如何修改初始管理賬號root的密碼。 命令列方式 確認gitlab-rails 使用gitlab-rails進行設定 which gitlab-rails /opt/gitlab/bin/gitlab-rails # #

版本管理gitlab實踐教程基礎(1)

這幾篇文章主要面向對git和gitlab稍有基礎,但是又不太會用的使用者,通過這幾文章你可以學到如下gitlab的使用方法: sshkey的設定 建立專案 分支操作 使用者/許可權/組的操作 配置專案可見性 Merge Request Issues操作

版本管理gitlab實踐教程基礎(14)

這篇文章整理一下對gitlab/github進行clone或者push操作時,不需要每次提交都輸入使用者名稱/密碼的幾種方式。 場景 何時需要輸入使用者名稱/密碼 gitlab可以建立private/protected/public的倉庫,priv

版本管理SVN實踐教程基礎(6)tag的查詢/建立/刪除/設定

這篇文章介紹一下在svn中tag操作的查詢/建立/刪除與設定。 查詢tag 因為因為tags目錄是apache建議的方式,其本質也就是一個目錄,所以查詢的方式可以結合svn list命令確認改目錄下的檔案資訊,以及svn log確認提交資訊來進行。

版本管理gitlab實踐教程進階(1)

實踐gitflow 結合git flow,使用gitlab作為遠端倉庫管理,在實際的專案中是一種可行的方式,而且這種方式對與複雜大型的專案有較好的適應方式。 git flow git flow源於Vincent Driessen在2010年提出的一個分

版本管理gitlab實踐教程 進階 1

實踐gitflow 結合git flow,使用gitlab作為遠端倉庫管理,在實際的專案中是一種可行的方式,而且這種方式對與複雜大型的專案有較好的適應方式。 git flow git flow源於Vincent Driessen在2010年提出的一個分支模型: 主要特點 兩個長期

版本管理gitlab實踐教程 基礎 1

這幾篇文章主要面向對git和gitlab稍有基礎,但是又不太會用的使用者,通過這幾文章你可以學到如下gitlab的使用方法: sshkey的設定 建立專案 分支操作 使用者/許可權/組的操作 配置專案可見性 Merge Re

版本管理gitlab實踐教程 基礎 3

symbol 為什麽 reg details pro == 什麽 操作 requests comment是版本管理中非常重要的內容,尤其是在經年累月的大型項目中,鐵打的項目,流水的SE,哪怕只言片語的留下,對後來者問題的對應很多時候都能起到重要作用,這篇文章用來講解

持續整合jenkins實踐教程基礎(2): 整合gitlab

作為持續整合的利器Jenkins已經得到了廣泛地應用,僅僅作為一個工具,Jenkins已然有了自己的生態圈,支援其的plugin更是超過1300+。在實際中如何使用以及如何更好地使用jenkins,一直是大家在實踐並討論的。本系列文章將會從如何使用jenki

持續整合jenkins實踐教程基礎(7): 控制檯輸出的中文亂碼

jenkins是Java開發的應用程式,很多東西可以通過-D傳入選項來進行設定,這篇文章以中文亂碼的調整為例子,來說明一下常見修改的方式。 現象 使用jenkinsfile定義的流水線,如果stage名稱為中文的時候,圖形顯示沒有問題,但是在consol

持續整合jenkins實踐教程基礎(6): 在jenkins的容器中進行映象的構建

作為持續整合的利器Jenkins已經得到了廣泛地應用,僅僅作為一個工具,Jenkins已然有了自己的生態圈,支援其的plugin更是超過1300+。在實際中如何使用以及如何更好地使用jenkins,一直是大家在實踐並討論的。本系列文章將會從如何使用jenki

持續整合jenkins實踐教程基礎(1): 郵件設定

作為持續整合的利器Jenkins已經得到了廣泛地應用,僅僅作為一個工具,Jenkins已然有了自己的生態圈,支援其的plugin更是超過1300+。在實際中如何使用以及如何更好地使用jenkins,一直是大家在實踐並討論的。本系列文章將會從如何使用jenki

.net 開源模板引擎jntemplate 教程基礎語法

## 一、基本概念 上一篇我們簡單的介紹了jntemplate並寫了一個hello world(如果沒有看過的,[點選檢視](https://www.cnblogs.com/hnvvv/p/14476803.html)),本文將繼續介紹jntemplate的模板語法。 我們在講解語法前,首先要了解一下標籤

持續集成jenkins實踐教程 基礎 4 集成redmine

如何 沒有 iss 技術 文章 proc head pac redmin 作為持續集成的利器Jenkins已經得到了廣泛地應用,僅僅作為一個工具,Jenkins已然了了自己的生態圈,支持其的plugin更是超過1300+。在實際中如何使用以及如何更好地使用jenki

window nodejs 版本管理器 nvm-windows 教程

pda 打開 版本 解壓 cmd appdata .com mod 成功 先去https://github.com/coreybutler/nvm-windows/releases 下載nvm-setup.zip 安裝 安裝的過程中會提示是否獲取nodejs的管理權限,點確

Spring Boot實踐教程開篇

mongo code 消息 發布 搭建 jdk1.8 hello 初學者 框架 前言 ??Java項目開發Spring應該是最常被用到的框架了,但是老式的配置方式讓人覺得特別的繁瑣,雖然可以通過註解去簡化xml文件的配置,但是有沒有更簡單的方式來幫我們完成這些重復性的事情呢

詳解功能版本管理使用eoLinker

object 可見 nts 平臺 sso fonts 一覽 多次 動態 先看一個對話: “這裏,你改一下,這裏返回一個object。” “好...好......” “還有這裏,返回個String。” ...... 在接口文檔改了7、8個version後,組長又發話了,“

visual studio code教程基礎使用和自定義設置

麻煩 安裝 顏色 必須 寫入 全局環境變量 註意 一個 preview 一、界面介紹 1.1 界面介紹 1.2 文件夾和文件的打開 文件——>打開文件夾/打開文件 1.3 新建文件/文件夾 新建文件: a. 文件——>新建文件; b. 按Ctrl+n; c

SVN版本管理器入門使用教程

功能 負責 訪問 一個 span IT 進行 pan 簡單 一、SVN結構作用概述: SVN目錄下一般采用標準的source/branches、source/trunk、source/tags結構。 trunk目錄下放置開發的主代碼,1新功能模塊的開發首先放在主幹上

Java爬坑基礎

1.方法有返回值時儘量把返回值寫上,儘量避免不必要的坑。例如陣列的擴容中