前置準備:虛擬機器安裝以及配置相關

包含安裝 centos7、8 虛擬機器、設定靜態 ip 等

https://www.cnblogs.com/poloyy/category/1703784.html

注意:我用的是 centos 7

官方安裝教程

https://about.gitlab.com/install/

安裝 Gitlab 前系統預配置準備工作

關閉 firewalld 防火牆

# 看防火牆狀態
systemctl status firewalld # 暫停執行防火牆
systemctl stop firewalld # 看防火牆狀態
systemctl status firewalld # 禁止防火牆自啟
systemctl disable firewalld # 看防火牆狀態
systemctl status firewalld

關閉 selinux 強制訪問安全策略

保證該策略不會影響 gitlab 正常執行

# 第一步 關閉selinux
vim /etc/sysconfig/selinux
....
SELINUX = disabled
.... # 第二步重啟虛擬機器
reboot

驗證是否已關閉成功

[root@localhost ~]# getenforce
Disabled

安裝 Omnibus Gitlab-ce package

Omnibus

  • 綜合性
  • Gitlab 為了方便大家快速上手,推出這個包,一鍵下載安裝 Gitlab 需要的依賴、元件、配置
  • 如果用原始碼的安裝方式,會比較繁瑣、

安裝 Gitlab 元件

yum -y install curl policycoreutils openssh-server openssh-clients postfix perl

配置 Gitlab yum 倉庫源

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

啟動 postfix 郵件服務

systemctl start postfix && systemctl enable postfix

安裝 Gitlab-ce 社群版本

記住是社群版本,所以是免費的

sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce

這裡其實就可以通過瀏覽器訪問你的 Gitlab 了,但還有一些操作要做

本地 hosts 檔案,配置域名和虛擬機器 IP

為什麼要做這一步

因為我們是通過虛擬機器需搭建社群版 Gitlab 的,上面安裝 gitlab-ce 的時候也指定了相對 URL,為的就是更方便訪問 Gitlab,有一個域名(就是下面這部分操作)

sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce

配置 hosts

window 電腦下 Ctrl + X

訪問 gitlab

如果遇到 502 的問題

參考這篇部落格

https://www.cnblogs.com/poloyy/p/14690030.html

Gitlab 相關配置初始化並完成安裝

證書建立與配置載入

# 建立一個目錄
mkdir -p /etc/gitlab/ssl # 建立私鑰
openssl genrsa -out "/etc/gitlab/ssl/gitlab.example.com.key" 2048

使用私鑰建立 csr 證書

openssl req -new -key "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.csr"

檢視是否建立成功私鑰和 csr 證書

cd /etc/gitlab/ssl
ll

利用私鑰和 csr 證書建立 crt 簽署證書

openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.example.com.csr" -signkey "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.crt"

生成 pm 證書

openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048

到此為止,所有證書已經都生成成功!

修改所有證書的許可權

chmod 600 *

編輯 Gitlab 的配置檔案

將所有證書配置到配置檔案當中

vim /etc/gitlab/gitlab.rb

修改以下內容

external_url "https://gitlab.example.com"
nginx['redirect_http_to_https'] = true

初始化 Gitlab 所有配置

gitlab-ctl reconfigure

最後的 Notes 翻譯

無傷大雅

  • 似乎在配置GitLab例項時尚未指定初始root密碼。
  • 首次訪問GitLab例項時,系統會顯示一個螢幕,用於設定
  • 預設管理員帳戶的密碼,使用者名稱為“ root”。

Nginx SSL 代理服務配置

更改 Gitlab HTTP 配置檔案

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

rewrite ^(.*)$ https://$host$1 permanent;

重啟 Gitlab

gitlab-ctl restart