1. 程式人生 > >CentOs7安裝gitlab(轉!)

CentOs7安裝gitlab(轉!)

轉自:https://www.cnblogs.com/chenfool/p/7689438.html

環境說明:
虛擬機器 centos 7 64位
記憶體:4GB
儲存:100GB
CPU: CORE

版本:
gitlab 10.0.3 

  • 配置系統基礎環境

配置阿里巴巴 yum 源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

重建yum 的快取

yum clean all
yum makecache

配置 yum 的本地源

mount ~/CentOS-7-x86_64-DVD-1708.iso /mnt/cdrom/

修改本地 yum 的配置

git clone https://gitlab.com/xhang/gitlab.git

將 baseurl 的引數增加一個列表

git clone https://gitlab.com/xhang/gitlab.git

修改enabled值,改為

enabled=1
  • 安裝gitlab 環境準備

安裝 git

yum install -y git

建立 gitlab漢化版的原始碼目錄,等一下使用git clone 一份新的程式碼

mkdir gitlab_zh
cd gitlab_zh
git clone https://gitlab.com/xhang/gitlab.git

當前作者下載漢化原始碼為10.0.4,但是即將安裝的 gitlab 版本為 10.0.3

  • 安裝gitlab

安裝 gitlab 的依賴包

yum install curl openssh-server openssh-clients postfix cronie policycoreutils-python –y
yum install -y patch

啟動 postfix,並且設定為開機啟動

systemctl start postfix
systemctl enable postfix

設定防火牆

firewall-cmd --add-service=http --permanent
firewall-cmd --reload

大家從網上下載好 gitlab 的rpm 包後,就可以安裝了

rpm -i gitlab-ce-10.0.3-ce.0.el7.x86_64.rpm

gitlab 下載地址:

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

當 shell 中出現以下內容,則證明 gitlab 的程式安裝完了

繼續安裝提示執行配置 gitlab 的命令

gitlab-ctl reconfigure

修改 gitlab 的配置檔案

vi /etc/gitlab/gitlab.rb

修改裡面的 external_url 引數,例如作者的機器的IP地址為 10.211.55.10

external_url='http://10.211.55.10'

因為修改了配置檔案,所以重新載入配置檔案

gitlab-ctl reconfigure
  • 漢化 gitlab

使用漢化包來為社群版本的 gitlab 打補丁

停止 gitlab 服務

gitlab-ctl stop

切換到 剛才從 github 上download 的漢化包目錄

cd /root/source/gitlab_zh/gitlab/

找出安裝的 10.0.3 版本和 漢化版本10.0.4 中的不同點

git diff v10.0.3 v10.0.4-zh > ../10.0.3-zh.diff

目錄倒退一層

cd ../

將 10.0.3-zh.diff 的補丁新增到 gitlab 中

patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.0.3-zh.diff

重新啟動 gitlab 服務

gitlab-ctl start

重新配置 gitlab

gitlab-ctl reconfigure

軟體安裝部分就完成了,以下是web 頁面配置部分

  • web頁面配置

由於作者本機的IP 地址為 10.211.55.10,而且gitlab 預設的埠號為 80,所以使用瀏覽器訪問以下地址:
http://10.211.55.10:80

使用者自己在頁面上輸入 新的密碼,該密碼為 管理員密碼

未來管理員的登陸名為 root,密碼為剛才修改的密碼

 

  • 配置gitlab 使用者註冊時的郵箱通知資訊

修改 /etc/gitlab/gitlab.rb 配置檔案,該郵箱地址是未來gitlab 向用戶傳送郵件時的推送郵箱

複製程式碼
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"           # 使用者輸入自己的smtp伺服器地址,例如作者的時163 的企業服務地址
gitlab_rails['smtp_port'] = 25                         # 使用者smtp 的埠號
gitlab_rails['smtp_user_name'] = "***@qq.com"          # 使用者的郵箱地址
gitlab_rails['smtp_password'] = "PASSWORD"             # 使用者的郵箱密碼
gitlab_rails['smtp_domain'] = "qq.com"                 # 使用者郵箱的域名
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = '***@qq.com'       # 使用者的郵箱地址
user['git_user_email'] = "***@qq.com"                  # 使用者的郵箱地址
複製程式碼

作者在這裡給大家一個提醒,如果大家安裝gitlab 的環境為阿里雲,一定要確認25 埠是否能夠使用,作者就由於之後在阿里雲上部署gitlab時,遇到25 埠無法使用的問題,所以一直導致在註冊新使用者時,郵件無法傳送出去,這個時候解決方法可以選擇使用開啟 ssl 加密傳輸,這樣埠就不再是 25 埠了,例如qq 的郵件配置應該變為

複製程式碼
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"           # 使用者輸入自己的smtp伺服器地址,例如作者的時163 的企業服務地址
gitlab_rails['smtp_port'] = 465                        # 使用者smtp 的埠號
gitlab_rails['smtp_user_name'] = "***@qq.com"          # 使用者的郵箱地址
gitlab_rails['smtp_password'] = "PASSWORD"             # 使用者的郵箱密碼
gitlab_rails['smtp_domain'] = "qq.com"                 # 使用者郵箱的域名
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = '***@qq.com'       # 使用者的郵箱地址
user['git_user_email'] = "***@qq.com"                  # 使用者的郵箱地址
gitlab_rails['smtp_tls'] = true                        # 開啟 ssl 加密傳輸
複製程式碼

 

因為修改了配置檔案,所以重新載入配置檔案

gitlab-ctl reconfigure

管理員還需要在web的管理頁面上修改對應的配置,管理員的配置頁面可以點選以下按鈕

gitlab是否開啟新使用者註冊

如果管理員需要自己手工新增新使用者可以在以下頁面配置

 

其他的一些技術點

  • 檢視gitlab 的配置
gitlab-ctl show-config
  • 檢視gitlab 的執行日誌
gitlab-ctl tail
  • 切換gitlab 倉庫的資料目錄

gitlab 預設的倉庫資料目錄為 /var/opt/gitlab/git-data/repositories/ ,如果未來使用者的資料量大了,需要更換倉庫資料目錄,可以通過修改 /etc/gitlab/gitlab.rb 配置進行調整。

使用者在調整gitlab 的配置之前,建議對其先停止服務。

gitlab-ctl stop

 然後使用者建立好未來要遷移的資料目錄,並且將原來的資料 遷移 過去,由於作者的 gitlab 是通過 rpm 包安裝的,所以gitlab 的系統使用者為 git,使用者組為 root,所以在拷貝資料後還需要修改新資料目錄的使用者歸屬,否者後面gitlab 無法對該目錄寫入新的資料。

mkdir -p /mnt/gitlab/git-data/
mv /var/opt/gitlab/git-data/repositories/* /mnt/gitlab/git-data/repositories/
chown -R git:root /mnt/gitlab/git-data/*

然後使用者就可以對 /etc/gitlab/gitlab.rb 進行調整了。

/etc/gitlab/gitlab.rb 預設對 資料目錄 的配置是註釋的。

使用者可以新增配置資訊

git_data_dirs({
  "default" => {
     "path" => "/mnt/gitlab/git-data"
  }
})

然後對 gitlab 重新重新整理配置

gitlab-ctl reconfigure

重啟 gitlab 服務

gitlab-ctl restart
  •  修改gitlab 的nginx服務埠號

 首先還是需要先關閉gitlab的服務

gitlab-ctl stop

修改 /etc/gitlab/gitlab.rb 檔案(作者是在root 使用者下直接修改的)

找到以下內容(作者對應是859行),修改為 nginx['listen_port'] = 8080

##! **Override only if you use a reverse proxy**
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html#setting-the-nginx-listen-port
# nginx['listen_port'] = nil

同時還需要在 /etc/gitlab/gitlab.rb 檔案 找到以下內容(作者對應的是 587 行),將 unicorn['port'] 設定為 8082(因為8080 埠已經被佔用了)

### Advanced settings
# unicorn['listen'] = '127.0.0.1'
# unicorn['port'] = 8080

修改後的內容變為

### Advanced settings
# unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8082

使用者還需要在 /var/opt/gitlab/gitlab-rails/etc/unicorn.rb 檔案上找到以下內容(作者對應是 第7行 ),將listen 的埠設定為 8082

# What ports/sockets to listen on, and what options for them.
listen "127.0.0.1:8080", :tcp_nopush => true

修改後的內容變為

# What ports/sockets to listen on, and what options for them.
listen "127.0.0.1:8082", :tcp_nopush => true

更新gitlab 的配置

gitlab-ctl reconfigure

使用者在 /var/opt/gitlab/nginx/conf/gitlab-http.conf 檔案中,找到以下內容(作者對應是38行),將原來預設的的listen *:80 會被重新整理為修改後的8080 (nginx 的埠就變為 8080)

複製程式碼
upstream gitlab-workhorse {
  server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}


server {
  listen *:8080;
複製程式碼

重啟 gitlab 服務

gitlab-ctl restart

這裡使用者一定要注意,如果直接修改 /var/opt/gitlab/nginx/conf/gitlab-http.conf 檔案的 內容,則在執行 gitlab-ctl reconfigure 後,修改值會被覆蓋。

 


參考資料:
http://www.cnblogs.com/straycats/p/7637373.html
http://www.cnblogs.com/wenwei-blog/p/5861450.html

http://blog.csdn.net/jackghq/article/details/54954486

http://blog.csdn.net/charlsehan/article/details/46801589

解決阿里雲上無法傳送郵件的部落格:http://www.cnblogs.com/wenwei-blog/p/6286944.html

修改web 服務埠號的部落格:http://blog.csdn.net/donglynn/article/details/74002540

http://blog.csdn.net/wizard_rp/article/details/73147129 (這種方法會在 重新整理配置時修改內容被覆蓋)