ubuntu安装gitlab

须知:Gitlab 是一个提供代码托管、提交审核和问题跟踪的代码管理平台。对于软件工程质量管理非常重要。
版本:GitLab 分为社区版(CE) 和企业版(EE)。gitlab服务器恢复,需要版本号一致。

下面以社区版为例子。

一、安装依赖工具

sudo apt install curl wget

二、在线安装(如果Ubuntu是官方版本,没有重新打包过系统或更换第三方内核,可以用这种)

1、添加软件仓库

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

 2、安装指定版本

sudo apt-get install gitlab-ce=13.11.2-ce.0

三、离线安装

下载地址:https://packages.gitlab.com/gitlab/gitlab-ce

这里选择,gitlab-ce_13.11.2-ce.0_amd64.deb。注意:不同的Ubuntu版本对应的gitlab安装包不一样

查看Ubuntu版本代号

lsb_release -a

Ubuntu20.04

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/focal/gitlab-ce_13.11.2-ce.0_amd64.deb/download.deb

Ubuntu18.04

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/bionic/gitlab-ce_13.11.2-ce.0_amd64.deb/download.deb

本地安装:

sudo dpkg -i gitlab-ce_13.11.2-ce.0_amd64.deb

四、修改配置文件

sudo vim /etc/gitlab/gitlab.rb

1、配置访问ip和端口

关于端口说明:

方法1、在external_url这里同时修改IP和端口,这里修改的url会同步显示在仓库页面的地址上。正确的端口很重要,即使IP这里写错了,我们也可以用实际的IP登录。

方法2、单独修改nginx代理的端口

如果是在docker中安装的gitlab,记得将监听的端口映射出去。

vim /etc/gitlab/gitlab.rb

#####修改如下参数
nginx['listen_port'] = 8088   

使能配置

sudo gitlab-ctl stop     #停止服务
sudo gitlab-ctl reconfigure #重新加载配置
sudo gitlab-ctl start #启动服务

五、默认用户名及密码

默认用户名:root
密码:存储在/etc/gitlab/initial_root_password.(第一次加载配置24h后,将消失)

修改root密码:

#通过命令行进入gitlab控制台
sudo gitlab-rails console

#查找用户,如果有则会返回其id,并将对象赋值给u
u = User.where(username: 'root').first

#修改密码
u.password = 'xxxxx'
u.password_confirmation = 'xxxxx'

#保存密码修改,返回true则说明修改成功,再输入exit退出控制台
u.save!

六、gitlab相关命令

#查看版本号
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

七、修改仓库数据存储目录

#1.停止gitlab,防止在移动仓库时有用户写入数据
sudo gitlab-ctl stop

#2.编辑配置文件
sudo vim /etc/gitlab/gitlab.rb
找到git_data_dirs配置项,并修改path参数
git_data_dirs({
  "default" => {
    "path" => "/home/chenjian/gitlab_data"
   }
})

#3.同步目录文件
sudo rsync -av /var/opt/gitlab/git-data/repositories /home/chenjian/gitlab_data/

#4.重新加载配置
sudo gitlab-ctl reconfigure 

#5.启动gitlab
sudo gitlab-ctl start

八、gitlab仓库备份设置

进入配置参数

sudo vim /etc/gitlab/gitlab.rb

gitlab_rails[‘manage_backup_path’] = true

#gitlab默认备份目录,可以修改
gitlab_rails[‘backup_path’] = “/home/chenjian/gitlab_backups”

#生成的备份文件默认权限
gitlab_rails[‘backup_archive_permissions’] = 0644

#默认备份保留7天,秒计算
gitlab_rails[‘backup_keep_time’] = 604800

重使能配置参数

#停止服务
sudo gitlab-ctl stop

#重新加载配置
sudo gitlab-ctl reconfigure

#开启服务
sudo gitlab-ctl start

九、手动备份

#gitlab备份时需要保持运行状态,需要使用sudo权限
sudo gitlab-rake gitlab:backup:create

十、自动备份

cron机制
cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制

命令行使用命令crontab -e,添加定时任务后保存:crontab -e
我这里设置每天凌晨两点备份文件

crontab -e

第一次运行会让选择编译器,输入2,选择vim

如果需要重新选择其他的编辑器,可以输入

select-editor

也可以直接编辑 /var/spool/cron/crontabs/<user> 文件

设置每天凌晨两点备份文件

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

查看定时任务:

crontab -l

查看cron服务状态:

systemctl status cron.service

修改后重启cron服务:

systemctl restart cron.service

这种方法有一个缺点,就是当前系统中配置的crontab不在一个配置文件中,让管理员不方便查询系统到底有多少个crontab。

方法2、直接在/etc/crontab文件中添加,不过需要是root身份。打开文件,应该会看到类似下面的信息

sudo vim /etc/crontab

要添加新的crontab,只需要在文件最后增加即可。注意这里面需要指定用户名;而方法1中则不需要,如果指定了,它会认为是命令的一部分,从而可能导致crontab执行失败。

如果服务器都是有root来管理,建议添加crontab使用方法2,这样系统中的所有计划任务都在一起,一目了然。

重启cron服务, docker中用不了systemctl,所以service不会自启

 sudo /etc/init.d/cron restart
 # sudo systemctl restart cron.service

十、数据恢复

1、停止相关数据连接服务
在gitlab服务器上停止相关数据连接服务,命令如下:
停止gitlab数据服务

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq

2、恢复数据

#1.恢复数据
sudo gitlab-rake gitlab:backup:restore BACKUP=文件编号
#文件名为1678252199_2023_03_08_13.11.2_gitlab_backup.tar,则编号就是除去_gitlab_backup.tar的部分
#编号:1678252199_2023_03_08_13.11.2

#2.将老gitlab.rb、gitlab-secrets.json 复制到新/etc/gitlab 目录下

3、重启gitlab

#重新加载配置
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start

十一、数据迁移(以迁移到docker中为例)

1、下载指定版本镜像

docker pull gitlab/gitlab-ce:13.11.2-ce.0

 2、创建容器

docker run -d \
--hostname gitlab.xxx.com \
--name gitlab \
--restart always \
-p 8082:443 -p 8083:80 -p 8084:22 \
-v /usr/local/gitlab_data/gitlab/config:/etc/gitlab \
-v /usr/local/gitlab_data/gitlab/logs:/var/log/gitlab \
-v /usr/local/gitlab_data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce

 

posted @ 2022-06-29 14:13  chenjian688  阅读(1526)  评论(0编辑  收藏  举报