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
0 23 * * 3 root /opt/gitlab/bin/gitlab-rake gitlab:backup:create
要添加新的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
3、初始可能没有配置文件,直接运行,遇见问题见链接
gitlab-ctl reconfigure
https://blog.csdn.net/zhangweixbl4/article/details/135139274
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!