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