開心一刻
隔壁有一個80多歲的老大爺,昨天在小區的一棵樹下發現一條黑色的蛇,凍僵了,大爺善心大發,就把蛇揣在了懷里,想給它一點溫暖。
今天一大早看到大爺在樹上掛了一個牌子,寫到:不准隨地大小便!
搭建中遇到的問題
樓主的搭建過程算比較順利(GitLab → 搭建私有的版本控制的托管服務平台),沒有遇到太多問題,只遇到了如下兩個問題
安裝卡住
這基本是內存不足導致
樓主一開始比較任性,沒按官方的推薦(內存最少 4G)來,弄了個 2G 內存,一頓操作猛如虎,定睛一看原地杵,特么的竟然像泰山一樣穩,進度在那一動不動
直接卡住是比較煩的,因為不能直觀地看出是否真的是卡住了,還是在安裝中,只能憑感覺、經驗來判斷;如果出現如下類似錯誤信息
* execute[clear the gitlab-rails cache] action run ================================================================================ Error executing action `run` on resource 'execute[clear the gitlab-rails cache]' ================================================================================
這也是內存不足所致
502
當我們成功安裝、配置 GitLab 后,不一定就萬事大吉了,訪問 GitLab 的時候可能會出現如下錯誤
GitLab 所需內存最低為 4G,若服務器配置太低會出現 502 錯誤
GitLab 新裝或重啟后,需要等待 1 分鍾才能使用
對於單核 CPU 的服務器,Unicorn and Sidekiq 服務啟動最少需要一分鍾
這個問題樓主沒有遇到,因為開始的時候,樓主就給虛擬機分了 4 核 CPU
那么說白了,只要我們的虛擬機(或真實機器)環境足夠干凈,硬件資源(內存和 CPU)足夠好,就不太會出現如上的錯誤
日常維護
重置管理員的密碼
由於 root 賬戶用的很少,所以我們容易忘記它的密碼,但不代表它不重要,類似 linux 的 root 賬戶;一旦我們忘記了 root 賬號的密碼,我們需要知道重置的方法,方法如下
1、進入 GitLab 控制台
[root@localhost ~]# gitlab-rails console -e production
GitLab 版本不同,命令會有所不同(網上說的而基本都是 gitlab-rails console production ),推薦大家直接上 GitLab 官網去找對應版本的命令
當出現如下信息表示我們成功登入控制台
[root@localhost ~]# gitlab-rails console -e production -------------------------------------------------------------------------------- GitLab: 12.8.7 (b679f55a199) FOSS GitLab Shell: 11.0.0 PostgreSQL: 10.12 -------------------------------------------------------------------------------- Loading production environment (Rails 6.0.2) irb(main)
執行命令: user = User.where(id: 1).first ,此 user 則表示 root 用戶
3、修改密碼
執行命令: user.password = 'secret_pass' 修改密碼, user.password_confirmation = 'secret_pass' 確認密碼
4、保存密碼
執行命令: user.save!
5、退出控制台
執行命令: exit
完整過程類似如下:
官方示例:How to reset your root password
重置成功后,我們就可以用新密碼來登錄 root 賬號了
偏好設置
GitLab 提供了很多的設置,樓主這里偷個懶,只教大家如何設置語言(雖然樓主知道大家的英語都很棒,但我相信大家的中文更棒),當語言變成我們最擅長的中文時,相信大家都能很好的進行偏好設置了;語言設置過程如下
看着熟悉的中文,倍感親切,但是要注意: 此功能當初處於實驗階段,翻譯尚未全部完成 ,也就是說語言功能尚未全部完成
批量添加賬號
我們用 SVN 或 Git 的時候,賬號往往不是自己注冊的,而是統一分配的;而我們搭建的又是私服,不對外提供服務,所以無需注冊功能,那么我們用 root 賬號來關閉注冊功能,很簡單,流程如下
取消 Sign-up enabled 前的復選框勾選,保存就好了
退出登錄后可以發現,登錄頁的注冊功能沒了,既然不能注冊了,那么就需要通過 root 用戶來添加賬號了
添加單個賬號的話,可以直接通過管理中心來添加,具體如下圖
單個賬號的添加還可以通過 api 來實現,具體可查看:Users API
如果賬號少的話,通過單個添加的方式來添加是可以的,如果賬號特別多的話,那就有點費時了,所以需要通過腳本的方式來批量添加賬號了,具體我們往下看
1、創建賬戶文本
在 /opt 目錄下創建 account_info.txt
12345678 youzhibing2094@sina.com yzb2094 青石路
12345678 test1@qq.com test1 測試賬號1 12345678 test2@qq.com test2 測試賬號2
4 列分別代表:登錄密碼 郵箱 用戶名 別名
一行代表一個賬戶
2、獲取 root 用戶的 private_token
獲取方式比較簡單,如下圖所示
如果訪問令牌已經存在,則不需要新建;示例中的令牌: cwUxu3-2kiamVyKJQpW5
3、創建執行腳本
在 /opt 目錄下創建 batch_add_account.sh
#!/bin/bash #gitlab用戶文本 accountinfo="account_info.txt" while read line do password=`echo $line | awk '{print $1}'` mail=`echo $line | awk '{print $2}'` username=`echo $line | awk '{print $3}'` name=`echo $line | awk '{print $4}'` curl -d "password=$password&email=$mail&username=$username&name=$name&private_token=cwUxu3-2kiamVyKJQpW5" "http://192.168.0.115/api/v4/users" done < $accountinfo
private_token 的值就是上面 root 的訪問令牌
4、執行腳本
賦予 batch_add_account.sh 可執行權限: [root@localhost opt]# chmod +x /opt/batch_add_account.sh
再執行 batch_add_account.sh: [root@localhost opt]# sh /opt/batch_add_account.sh
然后我們就可以在用戶列表界面看到我們剛剛添加的賬戶了
批量創建用戶,還是通過 Users API 來完成的,也會是說底層還是一個一個添加的
5、新賬戶登錄
我們用賬號:yzb2094 登錄下,發現登錄不了,提示: You have to confirm your email address before continuing.
提示需要郵箱驗證,登錄下郵箱,還真有一封驗證郵件
我們點擊下其中的鏈接,完成驗證之后就可以正常登錄了,然后我們就可以在 GitLab 創建工程了, 后續操作就與 GitHub、Gitee 一樣了