gitlab分為社群版(gitlab-ce)和企業版(gitlab-ee),我們通常安裝的是gitlab-ce
配置要求:
一 安裝依賴和設定防火牆
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 firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
## 安裝郵件服務
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
二 添加gitlab倉庫
建立/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
三 安裝
yum install -y gitlab-ce
四 啟動
sudo gitlab-ctl reconfigure #生成配置檔案并啟動
gitlab-ctl status # 檢視啟動狀态
注意:gitlab預設用到的端口号,有80和8080,保證沒有沖突
五 通路web頁面
第一次需要你設定root密碼
六 常用指令
sudo gitlab-ctl start # 啟動所有 gitlab 元件;
sudo gitlab-ctl stop # 停止所有 gitlab 元件;
sudo gitlab-ctl restart # 重新開機所有 gitlab 元件;
sudo gitlab-ctl status # 檢視服務狀态;
sudo gitlab-ctl reconfigure # 啟動服務;#運作會把 gitlab 的 相關使用者屬性、配置檔案和權限還原
sudo vim /etc/gitlab/gitlab.rb # 修改預設的配置檔案;
gitlab-rake gitlab:check SANITIZE=true --trace # 檢查gitlab;
sudo gitlab-ctl tail # 檢視日志;
七 後期自定義配置
7.1 更改時區
sudo vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
time_zone: 'Asia/Shanghai' #預設是空的
sudo vim /etc/gitlab/gitlab.rb
gitlab_rails['time_zone'] = 'Asia/Shanghai'
重新開機 gitlab:
sudo gitlab-ctl restart
7.2設定郵件發送
external_url 'http://192.168.6.220' # gitlab的位址
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "dpbxxxxxx" # 這個密碼不是郵箱的登陸密碼,而是smtp的密碼是用戶端授權碼
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'
user["git_user_email"] = "[email protected]"
配置完成之後可以先檢查一下配置檔案,
gitlab-rake gitlab:check SANITIZE=true --trace
如果沒有問題,重新加載配置檔案
sudo gitlab-ctl reconfigure
發郵件測試:
gitlab-rails console #進入 gitlab 指令行模式
Notify.test_email('[email protected]', 'Message Subject', 'Message Body').deliver_now
檢視是否能收到郵件
7.3 設定gitlab權限以及注冊功能
我們公司内部的代碼肯定都是要加密的,不能随便公開,是以要把項目設定成私有狀态
然後我們也需要把gitlab伺服器的自己注冊功能給關閉,不能讓人随便注冊