gitlab安装
一、yum安装方式
1. 安装相关依赖
yum -y install policycoreutils openssh-server openssh-clients postfifix
2. 启动ssh服务&设置为开机启动
systemctl enable sshd && sudo systemctl start sshd
3. 设置postfifix开机自启,并启动,postfifix支持gitlab发信功能
systemctl enable postfifix && systemctl start postfifix
4. 开放ssh以及http服务,然后重新加载防火墙列表
fifirewall-cmd --add-service=ssh --permanent;
fifirewall-cmd --add-service=http --permanent;
fifirewall-cmd --reload;
如果关闭防火墙就不需要做以上配置
5. 下载gitlab包,并且安装
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7/ ee版本
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ ce版本
a.在线下载安装包:
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.9.3-ce.0.el7.x86_64.rpm 2022-05-03最新发布的版本
b.安装:
rpm -i gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
6. 修改gitlab配置
vi /etc/gitlab/gitlab.rb
修改gitlab访问地址和端口,默认为80,我们改为82
external_url 'http://192.168.0.1:82'
nginx['listen_port'] = 82
nginx['listen_addresses'] = ['*']
### 下面的配置是开启备份 可以不设置
## 开启备份功能 376行
gitlab_rails['manage_backup_path'] = true
## 指定备份的路径 377行
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
### 备份文件的权限
gitlab_rails['backup_archive_permissions'] = 0644
## 备份保留的时间(保留7天 7*24*3600 单位为秒)
gitlab_rails['backup_keep_time'] = 604800
7. 重载配置及启动gitlab
gitlab-ctl reconfigure
gitlab-ctl restart;
8. 访问web登录
http://192.168.0.1:82
9、汉化gitlab
1)、下载汉化补丁
cd gitlab
git clone https://gitlab.com/xhang/gitlab.git
2)、查看全部分支版本
git branch -a
3)、对比版本、生成补丁包
git diff remotes/origin/10-2-stable remotes/origin/10-2-stable-zh > /tmp/10.2.2-zh.diff
4)、停止服务器
gitlab-ctl stop
5)、打补丁
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /tmp/10.2.2-zh.diff
6)、启动和重新配置
gitlab-ctl start
gitlab-ctl reconfigure
10、卸载之前安装gitlab
gitlab-ctl stop
rpm -e gitlab-ce
ps aux|grep gitlab ## 查看gitlab还存在的进程
kill -9 4540 ## 杀死第一个进程,在重复进行ps aux|grep gitlab直到进程为空时
find / -name gitlab | xargs rm -rf
11、升级版本
gitLab版本升级,是先小版本升级到最高版本,在升级到下一个大版本,进行依次升级
比如:12.1.3->12.1.9->12.2.0->12.2.9 小版本升级到最高级,在像下一个版本升级
- a、下载升级包
- b、rpm -Uvh [新的版本]
- c、gitlab-ctl reconfigure
- d、gitlab-ctl restart
12、数据备份
必需先配置备份
a、创建备份目录并授权
mkdir /var/opt/gitlab/backups && chown -R git.git /var/opt/gitlab/backups/
b、重新生效gitlab配置
sudo gitlab-ctl reconfigure
c、手动备份
gitlab-rake gitlab:backup:create
备份结束就可以到/var/opt/gitlab/backups/目录看到刚刚备份的数据
13、数据还原
必须要将备份文件放到备份路径下
只能还原同版本的数据
文件名会自动加_gitlab_backup.tar的后缀
还原时最好停止服务
gitlab-rake gitlab:backup:restore BACKUP=1553965778_2019_03_31_10.7.3
[root@worker10-152]#ls
1653893260_2022_05_30_11.3.6-ee_gitlab_backup.tar
[root@worker10-152]#gitlab-rake gitlab:backup:restore BACKUP=1653893260_2022_05_30_11.3.6-ee_gitlab_backup.tar
The backup file 1653893260_2022_05_30_11.3.6-ee_gitlab_backup.tar_gitlab_backup.tar does not exist!
[root@worker10-152]#gitlab-rake gitlab:backup:restore BACKUP=1653893260_2022_05_30_11.3.6-ee
Unpacking backup ... done
GitLab version mismatch:
Your current GitLab version (12.4.2) differs from the GitLab version in the backup!
Please switch to the following version and try again:
version: 11.3.6-ee
Hint: git checkout v11.3.6-ee
上面还原未成功的原因是由于备份gitlab的版本号(v11.3.6-ee)与还原的版本号(v12.4.2)对不上造成的
版本对上的话,会慢慢执行备份文件恢复,途中会需要输入两次的yes
14、定时备份
结合crontab自动定时备份,比如每天1点备份一次
- a、将定时文件脚本放在/home/cron/gitlab_bak.cron的文件中,在文件中添加如下内容
10 2 * * * gitlab-rake gitlab:backup:create
- b、添加定时任务,执行命令
crontab /home/cron/gitlab_bak.cron >~/log
- c、检查定时任务是否生效
[root@localhost cron]# crontab -l
0 1 * * * gitlab-rake gitlab:backup:create
- d、第二天检查定时任务是否执行
[root@localhost backups]# ll
总用量 3281172
-rw-r--r--. 1 git git 1679953920 1月 17 08:21 1673914868_2023_01_17_11.3.6-ee_gitlab_backup.tar
-rw-r--r--. 1 git git 1679964160 1月 17 10:30 1673922644_2023_01_17_11.3.6-ee_gitlab_backup.tar
15、常用命令
# 状态
gitlab-ctl status
# 验证
gitlab-ctl show-config
# 实时日志
gitlab-ctl tail
# 控制台
gitlab-rails console
重新加载配置
gitlab-ctl reconfigure
查看安装的版本号
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
二、docker安装方式
1、准备挂载目录(通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级)
mkdir -p /mnt/gitlab/etc;
mkdir -p /mnt/gitlab/log;
mkdir -p /mnt/gitlab/data;
2、下载镜像
docker pull gitlab/gitlab-ce gitlab的版本号
中文版:twang2218/gitlab-ce-zh
3、启动镜像
docker run \
--detach \
--publish 443:443 \
--publish 8899:8899\
--name gitlab \
--restart unless-stopped \
-v /mnt/gitlab/etc:/etc/gitlab \
-v /mnt/gitlab/log:/var/log/gitlab \
-v /mnt/gitlab/data:/var/opt/gitlab \
twang2218/gitlab-ce-zh
建议是使用unless-stopped 作为重启策略
4、配置gitlab
1)、修改/mnt/gitlab/etc/gitlab.rb
把external_url改成部署机器的域名或者IP地址
2)、修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml
vim /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml
找到关键字 * ## Web server settings * ,将host的值改成映射的外部主机ip地址和端口,这里会显示在gitlab克隆地址
4、登陆
打开浏览器,输入本机的ip地址并登陆 http://192.168.182.129:8090 默认帐户的用户名是root,第一次访问时,将被重定向到密码重置屏幕,登录后,您可以更改用户名。
5、可能出现的错误
a、docker启动报错信息如下
Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen<strong>解决:</strong>
解决方式:
- 检查docker端口映射是否冲突
- 重启docker服务后再启动容器
systemctl restart docker
docker start gitlab
三、常用的几个Gitlab命令
重新应用gitlab的配置
gitlab-ctl reconfigure
重启gitlab服务
gitlab-ctl restart
查看gitlab运行状态
gitlab-ctl status
停止gitlab服务
gitlab-ctl stop
查看gitlab运行日志
gitlab-ctl tail
停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki
启动gitlab
gitlab-ctl start
检查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace
修改默认的配置文件
vim /etc/gitlab/gitlab.rb
四、安装过程中可能出现的错误
1、卸载重装Gitlab的时候,出现* ruby_block[wait for redis service socket] action run 卡死不动的解决方法(如下图:)
解决方式:
按住CTRL+C强制结束---->systemctl restart gitlab-runsvdir---->gitlab-ctl reconfigure
五、强制找回root的密码
如果是docker启动则需要先进入docker容器的内部
docker exec -it xxxx bash
1、进入gitlab控制台
gitlab-rails console production
只有进入到控制台之后,才可以输入gitlab的查询语句,才会被解析
2、查询gitlab超级管理员信息
输入user = User.where(id:1).first查询id为1的用户对象,因为超级管理员用户默认都是1,也可以更加username来查询用户对象,管理员账户对象查询到之后,可以从返回的信息中看到admin为true,username为root 在irb(main):001:0> 后面通过 u=User.where(id:1).first 来查找与切换账号(User.all 可以查看所有用户)
3、重置密码
输入user.password='密码',密码位置填写您新的密码即可。然后再输入user.save!保存用户对象 通过u.password='12345678'设置密码为12345678(这里的密码看自己喜欢): 通过u.password_confirmation='12345678' 再次确认密码
注意:本文归作者所有,未经作者允许,不得转载