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 (這種方法會在 重新整理配置時修改內容被覆蓋)