gitlab安装

傻男人 1年前 ⋅ 631 阅读

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' 再次确认密码


全部评论: 0

    我有话说: