Git7:使用Gitlab管理遠程倉庫


1、安裝

gitlab的源碼安裝極其復雜,如果要嘗試源碼安裝可以參考如下文檔:
https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md

也可以參考:http://54im.com/git/centos6-install-gitlab-ldap認證.html

rpm包的安裝可以參考官網:
https://about.gitlab.com/downloads/

也可以自己下載好rpm包,直接安裝。安裝方法如下:

yum install -y postfix
yum install -y cronie
service postfix start
chkconfig postfix on
lokkit -s http -s ssh

curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-7.9.4_omnibus.1-1.el6.x86_64.rpm
rpm -vih gitlab-7.9.4_omnibus.1-1.el6.x86_64.rpm

gitlab-ctl reconfigure

安裝完成后,在瀏覽器輸入gitlab的IP地址,即可訪問,默認帳號密碼為:root/5iveL!fe

2、gitlab基本配置

# cat /etc/gitlab/gitlab.rb

external_url 'http://git.hongxin.com'    #指定gitlab服務器地址
nginx['enable'] = false    #不啟用gitlab自帶的nginx
#nginx['listen_addresses'] = ['192.168.1.202']    #gitlab的nginx監聽地址
unicorn['port'] = 8080                  #修改unicorn的默認端口,即gitlab服務的默認端口。可啟用此端口,而關閉gitlab自帶的nginx,使用其他nginx來代理該端口
gitlab_rails['gitlab_shell_ssh_port'] = 52113    #定義ssh端口配置,該端口需要與/etc/ssh/sshd_config文件中ssh監聽的端口保持一致

gitlab的所有工程目錄都在/var/opt/gitlab下,數據倉庫存放在/var/opt/gitlab/git-data/

配置完成以后,執行gitlab-ctl reconfigure來載入配置,並啟動gitlab

3、gitlab的郵件配置

3.1、使用本地的postfix發送郵件

service potfix start
vim /etc/gitlab/gitlab.rb
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'  #定義發郵件的郵箱名稱,默認使用本機的postfix發送郵件

3.2、使用郵件發送模板

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "完整郵件賬戶"
gitlab_rails['smtp_password'] = "密碼"
gitlab_rails['smtp_domain'] = "郵件賬戶所在域"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true  # 這個很重要,而且是官方文檔里沒提及的 
#修改gitlab配置的發信人,否則會拋出"553 Mail from must equal authorized user"的錯誤
gitlab_rails['gitlab_email_from'] = '完整郵件賬戶'
user["git_user_email"] = "xxxxxxx"

3.3、使用騰訊企業郵箱配置發送郵件

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465

gitlab_rails['smtp_user_name'] = "tech@gongmall.com"
gitlab_rails['smtp_password'] = "tech@gongmall.com的密碼"

gitlab_rails['smtp_domain'] = "gongmall.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'tech@gongmall.com'
user["git_user_email"] = "xxxxxxx"

3.4、使用163郵箱來發送gitlab的郵件

# cat /etc/gitlab/gitlab.rb
#配置smtp
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
#配置郵箱帳號密碼
gitlab_rails['smtp_user_name'] = "yan_ruo_gu@163.com"
gitlab_rails['smtp_password'] = "xxxxxxx"
#配置郵箱域
gitlab_rails['smtp_domain'] = '163.com'
gitlab_rails['smtp_authentication'] = :login  #有的配置成:plain
gitlab_rails['smtp_enable_starttls_auto'] = true #是否開啟tls認證
#修改gitlab配置的發信人,否則會拋出"553 Mail from must equal authorized user"的錯誤
gitlab_rails['gitlab_email_from'] = "yan_ruo_gu@163.com"
user["git_user_email"] = "xxxxxxx"

4、啟用gitlab的https

#生成密鑰對
cd /etc/gitlab/ssl
openssl genrsa -des3 -out server.key 1024
openssl rsa -in server.key -out server.key    #去除server.key的加密口令
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

# vim /etc/gitlab/gitlab.rb
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"

gitlab-ctl reconfigure

5、更改倉庫存儲路徑

gitlab默認的倉庫路徑是/var/opt/gitlab/git-data/repositories,一般服務器上/var的空間不是很足,所以要把倉庫配置到其他路徑。

5.1、新倉庫修改存儲路徑

如果是剛安裝好gitlab,還沒開始使用,修改配置即可:

# vim /etc/gitlab/gitlab.rb
git_data_dir "/data/git-data"

5.2、使用了一段時間的倉庫修改存儲路徑

如果gitlab已經在使用,除了修改配置,還需要如下步驟:

gitlab-ctl stop 
rsync -av /var/opt/gitlab/git-data/repositories /data/git-data/

# vim /etc/gitlab/gitlab.rb
git_data_dir "/data/git-data"
gitlab-ctl start
gitlab-ctl reconfigure

6、gitlab數據備份與恢復

6.1、備份

gitlab備份的計划任務:

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

gitlab修改備份路徑:

# vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = '/mnt/backups'

6.2、恢復

停止相關數據連接服務:

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

從指定編號備份中恢復:

gitlab-rake gitlab:backup:restore BACKUP=139351368

啟動gitlab:

gitlab-ctl start

6.3、遷移

把備份文件拷貝到gitlab的備份目錄下,執行恢復操作即可

7、gitlab頭像無法正常顯示

在配置文件/etc/gitlab/gitlab.rb中添加如下項:

gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'

然后執行:

gitlab-ctl reconfigure
gitlab-rake cache:clear RAILS_ENV=production

8、gitlab查看日志

gitlab-ctl tail


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM