GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库
一:安装依赖
#安装所需依赖 yum install curl openssh-server openssh-clients postfix cronie #GitLab使用postfix发送邮件 service postfix start #设置postfix开机自启动 chkconfig postfix on
二:安装gitlab
1:yum安装
(1)新建 /etc/yum.repos.d/gitlab_gitlab-ce.repo文件,内容为:
[gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1
(2)安装gitlab
yum makecache #更新本地缓存,提高安装速度 yum install gitlab-ce #安装gitlab gitlab-ctl reconfigure #配置gitlab
2:rpm安装
(1):下载rpm包(下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/)
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.7-ce.0.el7.x86_64.rpm
(2)安装gitlab
rpm -i gitlab-ce-10.2.7-ce.0.el7.x86_64.rpm
安装时如果报如下错误:
执行
yum install policycoreutils-python
之后重新安装,出现如下现象说明安装成功
安装成后配置gitlab
gitlab-ctl reconfigure #配置gitlab
二:配置gitlab
1:gitlab的备份与恢复
(1)备份
# 可以将此命令写入crontab,以实现定时备份 /usr/bin/gitlab-rake gitlab:backup:create
执行上述命令之后会在/var/opt/gitlab/backups目录下生成一个备份的tar文件
(2)恢复
# 停止unicorn和sidekiq,保证数据库没有新的连接,不会有写数据情况 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq # 进入备份目录进行恢复,1550640732_2019_02_20_11.7.5为备份文件的数字部分 cd /var/opt/gitlab/backups gitlab-rake gitlab:backup:restore BACKUP=1550640732_2019_02_20_11.7.5 cd - # 启动unicorn和sidekiq gitlab-ctl start unicorn gitlab-ctl start sidekiq
2:gitlab配置文件修改
修改/etc/gitlab/gitlab.rb文件:
(1):基本配置
#外部访问url(冒号后面的为nginx端口号,默认为80,经过编译后,自动将这个配置编译到nginx配置,nginx配置文件为:/var/opt/gitlab/nginx/conf/gitlab-http.conf) external_url 'http://www.test.com:8888' #修改unicorn端口号,默认值就是8080,也可以不进行修改 unicorn['port'] = 9999
(2):gitlab发送邮件配置(配置参考:https://docs.gitlab.com/omnibus/settings/smtp.html)
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "[email protected]" gitlab_rails['smtp_password'] = "password" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = '[email protected]' gitlab_rails['smtp_domain'] = "exmail.qq.com"
(3):如果你的ssh端口不是22号端口,需要修改:
gitlab_rails['gitlab_shell_ssh_port'] = 22
(4)配置生效
#使配置生效 gitlab-ctl reconfigure #重新启动GitLab,如果gitlab没有启动,使用gitlab-ctl start gitlab-ctl restart
注意如果你修改了/var/opt/gitlab/nginx/conf/gitlab-http.conf文件的话,使用gitlab-ctl reconfigure命令的话,/var/opt/gitlab/nginx/conf/gitlab-http.conf文件信息会进行重置
3:测试是否安装成功
打开浏览器访问:www.test.com:8888或服务器ip:8888(例:192.168.11.201:8888),出现如下现象说明安装成功
如果出现拒绝访问,应该是防火墙问题,可以参考:linux之centos7防火墙基本使用
如果出现502报错,一般是由于端口号占用问题,更改端口号再重新使配置生效,重新访问
第一次进入时需要密码重置,重置密码之后就可以登录gitlab了,登录时用户名为root,密码为刚刚重置的密码
如果你之后忘记密码了,可以使用命令行修改密码
gitlab-rails console production user = User.where(id:1).first user.password='XXXX' user.save!
gitlab常用命令:
gitlab-ctl start # 启动所有 gitlab 组件;
gitlab-ctl stop # 停止所有 gitlab 组件;
gitlab-ctl restart # 重启所有 gitlab 组件;
gitlab-ctl status # 查看服务状态;
vim /etc/gitlab/gitlab.rb # 修改gitlab配置文件;
gitlab-ctl reconfigure # 重新编译gitlab的配置;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
gitlab-ctl tail # 查看日志;
gitlab-ctl tail nginx/gitlab_access.log
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION #查看gitlab版本