docker内网部署gitlab步骤及gitblit迁移gitlab踩坑
1.部署情况
工具链名称 | gitlab |
---|---|
版本 | GitLab Community Edition 10.6.4 |
部署方式 | 容器部署/虚拟机部署 |
最佳CPU | 4c |
最佳内存 | 8g |
最佳磁盘 | 100g |
虚拟机系统 | CentOS 7.4 |
涉及插件 | 无 |
备注 |
2.部署步骤
1、将gitlab docker镜像gitlab.tar拷贝到服务器中并加载
docker load -i gitlab.tar
(此处使用的docker镜像和gitlab都为本地资源包,大概45M和1.4G)
2、运行镜像
docker run --name gitlab -p443:443 -p80:80 -p 2222:22 --restart always -v /opt/gitlab/config:/etc/gitlab -v /opt/gitlab/logs:/var/log/gitlab -v /opt/gitlab/data:/var/opt/gitlab -d cb7f154f4459
备注:主机挂载gitlab容器工作目录自行替换配置
备注:默认初始化设置root密码
3、配置gitlab
按上面的方式启动容器成功,但在gitlab上创建项目生成的URL访问地址,作为gitlab服务器,我们需要一个固定的URL访问地址,所以需要配置gitlab.rb(按照启动-v配置是在宿主机/opt/gitlab/config/gitlab.rb)
gitlab.rb修改一:[注意和-p 设置80映射端口一致]
gitlab.rb修改二:
Gitlab.rb修改三:[注意和-p 设置22映射端口一致]
重启gitlab容器
gitlab-ctl reconfigure
gitlab-ctl restart
docker restart 容器ID或容器名
gitlab-rake gitlab:ldap:check
http协议
ssh协议
踩坑:
1.部署时候要求git用VPN链接且只能连接到10443端口,
需将第一步docker run --name gitlab -p443:443 -p80:80 中的80端口修改为docker run --name gitlab -p443:443 -p10443:10443,同时修改gitlab配置文件才生效的。
2.内网liniux服务器端口防火墙默认开启的,需关闭掉,不然还是访问不了,有的时候关闭了也访问不了,需开启防火墙端口允许访问权限。
附gitlab、docker、防火墙使用到的命令
gitlab用到的命令
重载配置文件: gitlab-ctl reconfigure
重启gitlab:gitlab-ctl restart
关闭:gitlab-ctl stop
开启:gitlab-ctl start
查看状态:gitlab-ctl status
编辑gitlab配置文件: vim /etc/gitlab/gitlab.rb
备注:需使用docker进去容器后才能使用该命令,使用完毕后:exit 退出后才能使用docker命令
docker:
docker restart w容器ID或容器名
docker stop
进入容器:docker exec -it gitlab1 /bin/bash
退出容器:exit
docker启动命令,docker重启命令,docker关闭命令
编辑gitlab配置文件: vim /etc/gitlab/gitlab.rb
防火墙
firewall-cmd --list-all
5、查询、开放、关闭端口
#查询端口是否开放
firewall-cmd --query-port=8080/tcp
#开放80端口
firewall-cmd --permanent --add-port=80/tcp
#移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
查看firewall的状态
firewall-cmd --state
开启、重启、关闭、firewalld.service服务
#开启 #重启 #关闭
service firewalld start
service firewalld restart
service firewalld stop
gitblit 迁移gitlab 命令
先用一台电脑将所有仓库clone下来:
然后进入项目.git目录下执行下面命令:
pwd
project_path=$(dirname "$PWD")
project_name="${project_path##*/}"
echo $project_name
git push --mirror http://10.1.42.160:10443/AplicationDevelop/$project_name.git
会自动将项目push 到gitlab中
gitlab备份NAS
挂载Nas
mount -t nfs -o nolock (nas路径) /opt/gitlab/data/backups
mount -t nfs -o tcp (nas路径) /opt/gitlab/data/backups
取消挂载
umount /opt/gitlab/data/backups
查看磁盘情况是否挂载上
df -h
基于docker上gitlab命令执行
docker exec gitlab gitlab-backup create
-
gitlab备份
gitlab-rake gitlab:backup:create
liniux定时任务
crontab -e -
自动定时备份gitlab数据,使用命令crontab -e,添加定时任务
crontab -e -
根据自己部门的配置时间进行对应修改
//本部门白天都在提交数据,改成凌晨进行备份处理
0 0 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create -
重启crontab
systemctl restart crond -
本地配置自动清理备份数据,通过修改gitlab自己的配置实现
vim /etc/gitlab/gitlab.rb -
将配置文件中backup_keep_time的注释取消掉
//备份保留7天(7360024=604800)
gitlab_rails[‘backup_keep_time’] = 604800 -
重新加载配置文件
gitlab-ctl reconfigure