目录
一、部署gitlab
1)安装gitlab所需依赖
$ yum -y install epel-release curl openssh-server openssh-clients postfix cronie policycoreutils-python wget vim
2)获取gitlab
① 方法一:通过清华大学的开源镜像站获取软件包(推荐)
$ wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
② 方法二:通过gitlab官网来获取软件包(网络稳定时使用)
$ wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm/download.rpm
3)安装gitlab
$ rpm -ivh gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
#安装时间较长,耐心等待,安装过程中会出现gitlab的logo
$ yum -y localinstall gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
#效果较好,自动解决依赖关系
4)修改配置文件并启动
$ vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.1.1:82' #修改为gitlab服务器的地址
nginx['listen_port'] = 82 #默认使用80端口,更改为82端口避免冲突
$ gitlab-ctl reconfigure #第一次时间较长
#重新配置gitlab,就算不修改配置文件,也需要在安装后重新配置gitlab
#接下来对这个文件进行操作,也需执行该条命令
$ gitlab-ctl start #启动gitlab各个组件
5)访问
访问地址:http://192.168.1.1:80 ,如图:
二、汉化gitlab
1)获取gitlab汉化补丁包(如果不需要汉化,则跳过此步骤即可)
$ head -1 /opt/gitlab/version-manifest.txt #查看gitlab的版本
gitlab-ce 12.3.5
$ git clone https://gitlab.com/xhang/gitlab.git -b v12.3.5-zh
#获取汉化补丁包(注意需与gitlab的版本保持一致)
$ cd gitlab/ #进入刚才clone下来的gitlab目录
[root@gitlab gitlab]# git diff v12.3.5 v12.3.5-zh > /root/v12.3.5-zh.diff
#用diff将英文原版与中文版的对比生成.diff文件
2)将中文补丁导入gitlab,并重新启动
[root@gitlab gitlab]# gitlab-ctl stop #停止gitlab
[root@gitlab gitlab]# yum -y install patch
[root@gitlab gitlab]# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ../v12.3.5-zh.diff
#将刚才的diff文件做为补丁导入到gitlab中
#该命令执行过程中,一路回车跳过即可
[root@gitlab gitlab]# gitlab-ctl reconfigure
[root@gitlab gitlab]# gitlab-ctl start
3)访问
第一次访问设置密码,完成之后登录,默认的管理员是root。
三、关闭用户注册功能
如果不关闭注册功能的话,任何可以访问gitlab页面的人都可以自行进行注册,十分危险!需进行以下操作,将注册功能关闭!
四、gitlab基本操作
1)配置SSH方式免密登录
$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnueXV9bol1lGvy2u73IoGYQE6DamUf8QKMd4UgfH5t8TGAwe2a82FKZ1fk2TbhIKttIJPzlqYpP5ap4/tple1Nwy5Mm5i3xo4nI8qhyfb/FFFdtx0iMIAEwzbpSzgsWbH7fZ+pubOgLRWusfcSzhBrfL4h73mG1Xa9jTCuR+uvs+3hiGTcGJ01smmaJvSWMTnw7D2HrBucnvRA0/IGV11qPj9Ssra1yzLZ9KNQRvEKGDiRW2rPvYafXFzt9tJLqkVjLkd3FXx6b8dMzjunf7lRaZzDIrBlRQBM6l13U+7Pqv/CLAwR+YNj8TzTyx4cyzII7uShsWse7udlkiAphmX root@gitlab
2)创建一个基本库
$ git config --global user.name "admin"
$ git config --global user.email "admin@admin.com"
$ git clone git@192.168.1.1:root/test.git
$ cd test/
[root@gitlab test]# touch {1,2,3,4,5}.txt
[root@gitlab test]# git add .
[root@gitlab test]# git commit -m "first commit"
[root@gitlab test]# git push -u origin master
五、重置gitlab管理员密码
$ gitlab-rails console production #必须是root用户登录服务器执行该命令
irb(main):001:0> user = User.where(id: 1).first #id为1的是超级管理员
irb(main):002:0> user.password = 'yourpassword' #密码必须至少8个字符
irb(main):003:0> user.save! #保存用户修改信息,如没有问题返回true
irb(main):004:0> exit #退出
六、gitlab的备份与恢复
1)更改配置文件,实现备份
$ vim /etc/gitlab/gitlab.rb #更爱gitlab配置文件
gitlab_rails['backup_path'] = "/data/gitlab/backups" #更改备份路径
gitlab_rails['backup_keep_time'] = 604800 #备份保留的时间
$ mkdir -p /data/gitlab/backups
$ gitlab-ctl reconfigure
2)手动备份、自动备份
$ gitlab-rake gitlab:backup:create #手动进行备份
$ crontab -e #创建计划任务的方式实现自动备份
00 20 * * * /usr/bin/gitlab-rake gitlab:backup:create
3)恢复数据
$ gitlab-ctl stop unicorn
$ gitlab-ctl stop sidekiq #停止数据写入服务
$ ls /data/gitlab/backups/
1581862634_2020_02_16_12.3.5_gitlab_backup.tar
$ gitlab-rake gitlab:backup:restore BACKUP=1581862634_2020_02_16_12.3.5
$ gitlab-ctl restart
$ gitlab-ctl tail
#查看gitlab的日志信息