1.安装过程
登陆www.gitlab.cc网站,根据你的系统,选择不同的安装
演示的过程是在Centos6上的配置
A.yum install curl openssh-server postfix cronie(邮箱配置另行说明,如果使用postfix,请下载安装,如使用第三方的企业邮箱,则无需安装)
B.curl http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash
C.yum install gitlab-ce
此处,如果网络状态不太好,请先行去下载,我使用的也是先下载,后用脚本安装的方法,后续详细说明,下载网址http://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-XXX.rpm/download,这个网站可能被墙,请使用其他方法下载,攥写文档时,最新版本是8.4.0
D.该网站安装的方式很简单,请参考,不过企业的需求不同,此处的安装针对企业是不太可行的,
如果做简单傻瓜式的使用,这样也足够了;下面正式说明企业使用的安装,gitlab的官文文档请参考
http://doc.gitlab.com/omnibus/
单机服务的安装,我写了六个脚本已供安装过程的方便:
一.在root家目录下创建目录software,依次创建rpms目录和scripts目录,把下载好的gitlab软件包可以都放在rpms目录下,安装不同的版本可以修改scripts中安装的软件包的名称,部署脚本为:deploy.sh
大致内容如下:
安装之后就是进行主配置文件/etc/gitlab/gitlab.rb的修改,修改登录的URL,这个根据自己的需求,如果使用的是域名的方式,就把自己的域名填写其中,参考我的改写:
因为我后面要使用HTTPS加密的方式,所以这是我最后的使用结果,开始先确定一个,可以慢慢一步一步来修改,先让gitlab做一下全局的配置(gitlab-ctl reconfigure)
二.使用config_gitlab.sh
这个步骤主要是修改代码数据仓库的保存位置,最后有自己的放置位置,包括lvm的方式等等,
挂载到其他地方,脚本的大致内容:
根据你要放置的目录,修改上面两个配置文件,请注意gitlab.yml有两个地方要修改,然后接着根据你配置的内容,来创建相关目录,并给予相关权限,安装gitlab软件的时候,就会创建git用户和用户组
三.使用backup_gitlab.sh
此脚本作用在于备份代码数据,内容大致如下:
仍修改主配置文件,修改要备份的路径,备份的保留时间,这里的单位是秒,这里保留了7天,根据自己的需求自行修改,请注意备份目录的权限问题
四.现在可以根据之前配置的URL访问gitlab了,注意主机的防火墙相关配置,开放可以访问的端口,用默认的root账号和密码,登陆之后,在root的个人账号设置里面,有一个Profile Settings,点击进去,可以先绑定自己的ssh公钥到里面,界面如下:
在主机端创建自己的sshkey,在home下的.ssh目录下取出公钥,粘贴在此处,填入一个自己喜欢的名字(貌似没什么用,此处可以查看ssh创建帮助),然后创建工程,工程一般创建为private,填写好工程的名字以及其他信息,就会出现一个gitlab的提示帮助,你就可以去你的客户端,尝试用ssh的方式,与gitlab进行交流了,先去尝试一下,看看是不是很爽!
2.邮件配置过程
好,下面来到很重要的邮箱配置了,有了邮箱配置,才能很方便的修改密码,以及作为管理员的分支合并的提醒动作,还是很重要的,在主配置文件应该更改如下地方
主配置前面的邮箱配置不用改动,找到如下的配置段:
下面是我使用的腾讯企业邮箱的配置
邮箱的密码也配置在这里
端口的争议是配置为25,经过我的测试,配置25端口邮箱是不可用的,但是以前配置的经验,25端口在8.0以前配置过,也是可以使用的,目前是版本的问题,还是配置的问题,还有待考证,配置好之后,记得执行gitlab-ctl reconfigure,这是可以进入gitlab,查看自己的账号信息,看看邮箱是不是更改过来了。
现在可以在远端用ssh的方式,创建代码工作平台,测试一下,脚本里面的内容与gitlab给的提示是一致的:
以这样的方式,根据自己的配置修改相关项
3.HTTPS配置过程
一般来说,HTTPS方式还是很重要的,邮箱不在局域网内,是跨公网的方式来pull和push乃至clone代码,对代码数据是相当不安全的,我是以在网站https://startssl.com申请的免费SSL证书,来布置gitlab的证书和密钥的,方式其实很简单,登陆网站,按照步骤,先sign up,然后按照网站的提示进行,唯一的要求是需要域名,如果没有域名是不能以这种方式进行的,那需要在本地使用自签证证书了,这个我也配置过,但是失败了,后续继续试验测试,这个在理论上应该是没有问题的,好,先来说明https://startssl.com网站上的配置过程
A.
填写你的邮箱,如果是你的企业邮箱最好,因为后面直接可以启用企业的域名;注意,因为邮箱账号会成为登陆该网站的账号,而该账号会绑定客户端的浏览器登陆证书,正确填写后,邮箱会受到验证码,填入指定地方
激活成功后需要等待审核,一般情况下是很快的,然后就是出现下面的页面:
然后点击继续,会创建浏览器登陆证书的私钥,保存其私钥,然后下一步就是安装浏览器端的证书了
可以去你的浏览器证书管理里面查看一下刚刚获得的client证书
这样,本机就有网站的认证了,有此证书才能登陆此网站
以上都成功了,接下来就是真正创建SSL证书的过程了
欢迎界面:
然后选择>>>>>>>Validations
继续下一步
此处,填入你的域名,接着,下一步
到此,会出现一个你初步输入的邮箱的账号,选择你的账号,因为接下来还有给此账号发送验证码
查收邮箱,把收到的验证码填在此处,然后继续,到此时,我们已经验证了域名的所有权,下一步就是获取证书的所有权,下面就是在Certificates Wizard的流程里面,完成下面的步骤,选择Web Server SSL/TLS Certificate项
继续之后,下面有一项System PKI ,选择此项,然后输入一个10位以上的密码,来加密你的密钥
点击Save Private Key,保留此文件到你的本地,继续下一步,选择你的域名,继续下一步
选择你要创建的证书的子域名,这个理论上应该是随意的,然后会等待审核,这个时间不是很确定,一般情况下是挺快的,申请成功之后,会有一个以你填写的域名为文件名的压缩包,里面会给你颁发各个web服务器的证书,如下图
,
到此还并没有结束,今天的主题是gitlab,这是你进入创建的/etc/gitlab/ssl目录下,把nginx的证书可以先放入里面,记得刚才有个保存在本地的私钥文件嘛,那个现在就派上用场了,把里面的内容全部复制,进入网站,进入ToolBox,
其中有一项,Decrypt CA Certificates,这项的意义就是解密证书文件,点击进去
然后把私钥复制在里面,下面输入你当时给私钥加密的密码,点击Decrypt,然后会出现一个新的密钥,把新密钥复制下来,在本地保存成xxxxxxxxx.key文件,下面就是在gitlab里面的操作了。
把刚才创建的key文件也放入/etc/gitlab/ssl/目录中,然后修改/etc/gitlab/gitlab.rb文件,做如下修改
上面两项nginx的功能打开,如果你还想用80端口,如果你直接使用443,或者自己要定义端口,直接在URL那里定义好,此处的功能禁用就可以了,然后注意证书的路径和名称,把ssl目录的权限定义成只有属主可以访问的权限,然后gitlab-ctl reconfigure,下面就是激动人心的时刻了,重启所有服务,gitlab-ctl restart,去访问gitlab吧,加密的HTTPS已经可以使用了
Gitlab数据的备份与恢复
Gitlab 创建备份
使用一条命令即可创建完整的Gitlab备份:
gitlab-rake gitlab:backup:create
使用以上命令会在var/opt/gitlab/backups(当然此目录上面已经修改过)目录下创建一个名称类似为1393513186_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1393513186是备份创建的日期.
Gitlab 修改备份文件默认目录
你也可以通过修改/etc/gitlab/gitlab.rb来修改默认存放备份文件的目录:
gitlab_rails[‘backup_path‘] = ‘/mnt/backups‘
/mnt/backups修改为你想存放备份的目录即可, 修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可.
Gitlab 自动备份
也可以通过crontab使用备份命令实现自动备份:
sudo su -
crontab -e
加入以下, 实现每天凌晨2点进行一次自动备份:
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
Gitlab 恢复
同样, Gitlab的从备份恢复也非常简单:
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 从1393513186编号备份中恢复
gitlab-rake gitlab:backup:restore BACKUP=1393513186
# 启动Gitlab
sudo gitlab-ctl start
Gitlab迁移
迁移如同备份与恢复的步骤一样, 只需要将老服务器var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话). 但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的7.60版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为7.60在进行备份.