GitLab:
GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。它提供Git版本控制、代码检查、Bug跟踪和Wiki,它可以通过LDAP或活动目录来进行安全认证和授权。单个GitLab可以支持25000个用户,同时它也可以通过设置多台服务器来实现其高可用性。
按照官方文档:
https://packages.gitlab.com/gitlab/gitlab-ce/install
https://packages.gitlab.com/gitlab/gitlab-ce [命令行下apt-get或者aptitude超时]
安装对应的依赖并安装对应版本:
sudo apt-get install curl openssh-server ca-certificates postfix
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get update && sudo apt-get install gitlab-ce=7.11.4~omnibus-1
上面操作会出现超时,直接使用给出的链接下载对应的deb包
sudo wget -c https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab-ce_7.11.4~omnibus-1_amd64.deb(比较慢,建议使用迅雷下载上传)
sudo dpkg –I gitlab-ce_7.11.4~omnibus-1_amd64.deb
配置并开启gitlab:
sudo gitlab-ctl reconfigure
配置邮箱,URL:
#下面一定要添加“=”,GitLab自动生成时是没有这个等号的,结果得到"External URL must include a FQDN"这样的错误提示
external_url="www.hostname.com"
# 如果没有安装Postfix或Sendmail这类邮件服务的话,那么就需要象邮件客户端那样根据SMTP服务器的参数来设置以下的内容了
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['gitlab_email_reply_to'] = '[email protected]'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "my-gmail-password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
#Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert', see http://api.rubyonrails.org/classes/ActionMailer/Base.html
邮箱配置参考:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/smtp.md
启用注册:
在/etc/gitlab/gitlab.rb 文件中添加: gitlab_rails['gitlab_signup_enabled'] = true
测试:
Username: root
Password: 5iveL!fe
完整的Gitlab备份:
使用一条命令即可创建完整的Gitlab备份:
gitlab-rake gitlab:backup:create
使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1296213186_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1393513186是备份创建的日期.
Gitlab 修改备份文件默认目录
你也可以通过修改/etc/gitlab/gitlab.rb来修改默认存放备份文件的目录:
gitlab_rails['backup_path'] = '/mnt/backups'
Gitlab 自动备份
也可以通过crontab使用备份命令实现自动备份:
sudo /bin/su - root
crontab -e
加入以下, 实现每天凌晨2点进行一次自动备份:
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
Gitlab 恢复
同样, Gitlab的从备份恢复也非常简单:
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 从1296213186编号备份中恢复
gitlab-rake gitlab:backup:restore BACKUP=1296213186 #backups目录下只有一个备份文件时使用
(根据/var/opt/gitlab/backups下的备份来确定)
启动Gitlab
sudo gitlab-ctl start
Gitlab迁移
迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话).
但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的7.60版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为7.60在进行备份.
每次修改配置需要执行:
sudo gitlab-ctl reconfigure
外网通过http或者git访问内网时,添加映射,需要修改nginx监听端口与external_url后添加端口.
番外:SVN与Gitlab有什么相同点与异同点?