GitLab 安裝 & 中文化

服務器硬件需求

在開始安裝 GitLab 之前,請先評估日後使用情況來配置硬件。

cpu

  • 1 核心 最多支持100個用戶,所有的workers和後台任務都在同一個核心工作這將導致GitLab服務響應會有點緩慢。
  • 2 核心 支持500用戶,這也是官方推薦的最低標準。
  • 4 核心 支持2,000用戶。
  • 8 核心 支持5,000用戶。
  • 16 核心 支持10,000用戶。
  • 32 核心 支持20,000用戶。
  • 64 核心 支持40,000用戶。
    如果想支持更多用戶,可以使用 集群式架構

Memory

安装使用GitLab需要至少4GB可用内存(RAM + Swap)
* 1GB RAM + 3GB Swap 是最低的要求,但不建議使用這樣的配置。
* 2GB RAM + 2GB Swap 支持100用戶,但服務響應會很慢。
* 4GB RAM 支持100用戶,也是 官方推薦 的配置。
* 8GB RAM 支持 1,000 用戶。
* 16GB RAM 支持 2,000 用戶。
* 32GB RAM 支持 4,000 用戶。
* 64GB RAM 支持 8,000 用戶。
* 128GB RAM 支持 16,000 用戶。
* 256GB RAM 支持 32,000 用戶。
如果想支持更多用戶,可以使用 集群式架構

空間

這部份主要取決於將來要會使用的空間大小,可自行決定

至於其他更詳細的說明請參考 安装GitLab的需求


安裝

相關安裝說明可參考 GitLab Installation

1.安裝並配置必要的依賴關係

如果你想使用Postfix發送郵件,請在安裝過程中根據提示選擇“Internet Site”。你也可以用Sendmail或者配置一個自定義的SMTP服務並把它作為一個SMTP服務器。在CentOS系統上,下面的命令將會設定系統防火牆HTTP和SSH的訪問。

[root@GitLab ~]# sudo yum install curl policycoreutils policycoreutils-python  openssh-server openssh-clients
[root@GitLab ~]# sudo systemctl enable sshd
[root@GitLab ~]# sudo systemctl start sshd
[root@GitLab ~]# sudo yum install postfix
[root@GitLab ~]# sudo systemctl enable postfix
[root@GitLab ~]# sudo systemctl start postfix
[root@GitLab ~]# sudo vim /etc/sysconfig/iptables   #允許80 & 443 訪問
[root@GitLab ~]# sudo systemctl restart iptables
[root@GitLab ~]# sudo systemctl enable iptables

2. 選擇要安裝的 GitLab 版本

可使用 RPM 或 yum
yum 安裝會安裝最新版本

[root@GitLab ~]# curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.rpm.sh | sudo bash
[root@GitLab ~]# sudo yum install gitlab-ce

rpm 安裝
可到此網站選擇要安裝的版本(本是使用10.1.4版本安裝)
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

[root@GitLab ~]# curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.3.0-ce.0.el7.x86_64.rpm
[root@GitLab ~]# rpm -i gitlab-ce-10.3.0-ce.0.el7.x86_64.rpm

3. 修改配置

將 external_url 改為要對外使用的URL

[root@GitLab ~]# vim /etc/gitlab/gitlab.rb
external_url 'https://gitlab.faqbook.net'

4. 配置并启动 GitLab

將gitlab 相關都部署

[root@GitLab ~]#  gitlab-ctl reconfigure

5. 設定HTTPS

[root@GitLab ~]# vim /etc/gitlab/gitlab.rb
在最底下貼上 (SSL KEY的部份需自行上傳)
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
nginx['ssl_certificate'] = "/var/opt/gitlab/nginx/certs/XXXX.crt"
nginx['ssl_certificate_key'] = "/var/opt/gitlab/nginx/certs/XXXX.key"

再次配置相關設定檔&重啟 gitlab-ctl

[root@GitLab ~]# gitlab-ctl reconfigure
[root@GitLab ~]# gitlab-ctl restart

6. 設定LDAP

[root@GitLab ~]# vim /etc/gitlab/gitlab.rb
找到 ldap_enabled
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-EOS
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'IP' # 這邊是ldap的位置
port: 389
uid: 'sAMAccountName'
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'CN=search,OU=管理用帳號,OU=公用帳號,OU=XXXX,DC=XXXX,DC=local' # 這裡是拿來登入LDAP的帳號 CN=帳號 OU部分看公司怎麼設定
password: 'XXXXX'
active_directory: true # 如果你的ldap不是ad 就改成false
allow_username_or_email_login: true # 允許使用者不用帶網域登入 ex. wei@xxxx.com.tw -> wei
block_auto_created_users: false # 是不是先block自動生成的帳號,可以在admin area unblock
base: 'OU=XXXX,DC=XXX,DC=local' # 搜尋的位置
user_filter: ''
EOS
[root@GitLab ~]# gitlab-ctl reconfigure
[root@GitLab ~]# gitlab-ctl restart

7. 訪問網頁 & 修改密碼

gitlab-ctl 重啟完成後 可開啟網頁確認情況
https://gitlab.faqbook.net/
第一次開啟網頁時會要求修改密碼,請自行修改
修改完成後請用root+新密碼登入

 


中文化 (簡中)

目前中文化版本到10.3.0,此中文化版本會不定期更新
https://github.com/marbleqi/gitlab-ce-zh

1. 下載漢化包

下載漢化包後上傳服務器後解壓

[root@GitLab ~]# unzip gitlab-ce-zh-10.3.0-zh-patch.zip

2. 停用 gitlab-ctl

開始中文化之前最好將服務停用

[root@GitLab ~]# gitlab-ctl stop

3. 備份

備份服務器上的/opt/gitlab/embedded/service/gitlab-rails目錄。 (此部份自行決定要不要備份)
注:該目錄下的內容主要是web應用部分,也是當前項目倉庫的起始版本,也是漢化包要覆蓋的目錄。

4. 替換漢化包

[root@GitLab ~]#  cd gitlab-ce-zh-10.3.0-zh-patch/
yes | cp -ap * /opt/gitlab/embedded/service/gitlab-rails/

5. 重啟相關服務

[root@GitLab ~]# gitlab-ctl reconfigure
[root@GitLab ~]# gitlab-ctl restart

6. 網頁查看

重啟完成後可上網頁查看

 


相關指令

gitlab-ctl 服務指令

# 啟動所有 gitlab 組件:
sudo gitlab-ctl start
# 停止所有 gitlab 組件:
sudo gitlab-ctl stop
# 重啟所有 gitlab 組件:
sudo gitlab-ctl restart

git 基本指令

拉取  git pull [remoteName] [localBranchName]
推送  git push [remoteName] [localBranchName]
git log 
列出所有commit的歷史紀錄
git diff 
比較文件或commit間修改的差異
git show 
詳細列出該次commit的修改內容
git status 
列出目前的檔案狀態

 


參考網站

github

https://github.com/marbleqi/gitlab-ce-zh
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
https://www.gitlab.com.cn/installation/
https://docs.gitlab.com.cn/ce/install/requirements.html
https://xuanwo.org/2016/04/13/gitlab-install-intro/
https://xenby.com/b/131-%E6%8E%A8%E8%96%A6-gitlab%E5%AE%89%E8%A3%9D%E8%88%87%E5%9F%BA%E6%9C%AC%E8%A8%AD%E5%AE%9A%E6%95%99%E5%AD%B8
https://windsuzu.github.io/learn-git/
http://qbsuranalang.blogspot.tw/2015/01/gitgithubgitlab.html
https://www.pigo.idv.tw/archives/2779

ssl

http://xdeath.dyndns.pro/read.php?36

指令

https://blog.longwin.com.tw/2009/05/git-learn-initial-command-2009/
http://blog.csdn.net/ithomer/article/details/7529022
http://gitqwerty777.github.io/git-commands/
https://hellolynn.hpd.io/2017/01/18/git%E6%96%B0%E6%89%8B%E5%85%A5%E9%96%80%E6%95%99%E5%AD%B8-part-1/

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

釘選至 Pinterest