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/