環境需求:記憶體至少4G,GitLab是很耗記憶體滴
一、安裝並設定必要的依賴關係
在CentOS 系統上,下面的指令將會開啟系統防火牆HTTP 和SSH 的存取。
$ sudo yum install -y curl policycoreutils-python openssh-server $ sudo systemctl enable sshd $ sudo systemctl start sshd $ sudo firewall-cmd --permanent --add-service=http $ sudo systemctl reload firewalld
安裝 Postfix ,用來傳送郵件,在安裝 Postfix 的過程中選擇 'Internet Site'。
$ sudo yum install postfix $ sudo systemctl enable postfix $ sudo systemctl start postfix
也可以設定自訂的 SMTP 伺服器。
二、 新增GitLab 鏡像倉庫並安裝
gitlab-ce 是社群版,免費
gitlab-ee 是企業版,收費
2.1 使用官方鏡像安裝
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash $ sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce # 安装 GitLab
2.2 使用國內鏡像安裝(建議)
如果提示連接逾時,可以使用清華大學開源軟體鏡像站:https://mirror.tuna.tsinghua ....。
進入網站後,有詳細的安裝步驟,跟著安裝即可。
這裡介紹一下在CentOS中使用清華大學開源軟體鏡像站安裝:
先還原yum來源, 刪除gitlab-ce來源:
$ ls -l /etc/yum.repos.d/ # 查看源配置项 $ mv /etc/yum.repos.d/gitlab_gitlab-ce.repo /etc/yum.repos.d/gitlab_gitlab-ce.repo.bak # 备份源配置项(也可以直接删除 rm)
新建/etc/yum.repos.d/gitlab-ce.repo,內容為
[gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1
再執行
$ sudo yum makecache $ sudo yum install gitlab-ce
安裝完以後/opt/gitlab/ 目錄結構
/opt/gitlab/ ├── backups ├── git-data │ └── repositories │ └── root ├── gitlab-ci │ └── builds ├── gitlab-rails │ ├── etc │ ├── shared │ │ ├── artifacts │ │ ├── lfs-objects │ │ └── pages │ ├── sockets │ ├── tmp │ ├── upgrade-status │ ├── uploads │ └── working ├── gitlab-shell ├── gitlab-workhorse ├── logrotate │ └── logrotate.d ├── nginx │ ├── client_body_temp │ ├── conf │ ├── fastcgi_temp │ ├── logs -> /var/log/gitlab/nginx │ ├── proxy_cache │ ├── proxy_temp │ ├── scgi_temp │ └── uwsgi_temp ├── postgresql │ └── data │ ├── base │ │ ├── 1 │ │ ├── 12918 │ │ ├── 12923 │ │ └── 16385 │ ├── global │ ├── pg_clog │ ├── pg_multixact │ │ ├── members │ │ └── offsets │ ├── pg_notify │ ├── pg_serial │ ├── pg_snapshots │ ├── pg_stat_tmp │ ├── pg_subtrans │ ├── pg_tblspc │ ├── pg_twophase │ └── pg_xlog │ └── archive_status └── redis
三、 配置並啟動GitLab
啟動命令
$ sudo gitlab-ctl reconfigure # 首次启动也要用此命令。重新加载配置并启动 $ sudo gitlab-ctl start # 启动 $ sudo gitlab-ctl stop # 停止
/etc/gitlab/ 目錄結構:
/etc/gitlab/ ├── gitlab.rb ├── gitlab-secrets.json └── ssl └── trusted-certs
gitLab基本配置集中在/etc/gitlab/gitlab.rb 文件, 每個參數的作用與設定請參考官網的設定說明.
設定參數:
### Advanced settings # unicorn['listen'] = 'localhost' # unicorn['port'] = 8090 #默认是8080端口 nginx['listen_port'] = 8081 # gitlab nginx 端口。默认端口为:80 external_url 'http://192.168.137.129' # clone时显示的地址,gitlab 的域名
設定:
$ sudo gitlab-ctl stop # 先停止 GitLab 服务 $ vim /etc/gitlab/gitlab.rb # 修改配置文件
進行任何變更後, 儲存退出, 在指令列逐一輸入以下命令使設定生效
啟動資料庫, 不然reconfigure 報錯
$ sudo gitlab-ctl restart postgresql $ sudo gitlab-ctl reconfigure $ sudo gitlab-ctl start
四、存取
系統預設的管理員帳號為root,第一次存取GitLab,會要求初始化管理員帳號的密碼。
五、連接埠衝突問題
裝好後,你會發現一個問題;gitlab 其實是個web;他自帶了個nginx;如果你本身也是一台伺服器的話,上面也會裝有apache 或nginx 等;那麼埠就衝突了;
更改gitlab自帶nginx的預設埠即可
六、卸載GitLab
$ sudo gitlab-ctl stop # 停止 $ sudo rpm -e gitlab-ce # 卸载 $ ps aux | grep gitlab # 查看守护进程 $ kill -9 18777 # 杀掉守护进程 $ find / -name gitlab | xargs rm -rf # 删除所有包含gitlab的文件