gitlab物理机部署及迁移
1. 官网下载gitlab npm包
下载npm包时注意与现有的gitlab版本保持一致
下载地址:https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=10.1.4
下载到本地后拷贝到服务器
2. 安装配置gitlab
安装时注意:关闭selinux 关闭防火墙
systemctl stop firewalld.service
临时关闭: getenforce 0 永久关闭: vim /etc/sysconfig/selinux SELINUX=enforcing 改为 SELINUX=disabled 重启服务reboot
|
新建ware用户、设置密码、赋sudo权限
拷贝gitlab-ce-10.1.4-ce.0.el7.x86_64.rpm到ware用户下
切换到root下,开始安装
安装依赖软件
yum -y install policycoreutils openssh-server openssh-clients postfix rsync |
设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix |
安装gitlab
yum -y install gitlab-ce-10.1.4-ce.0.el7.x86_64.rpm |
注意:生产环境要用的代理
export http_proxy="http://10.5.22.69:8118" export https_proxy="http://10.5.22.69:8118" |
修改gitlab默认端口
vim /etc/gitlab/gitlab.rb |
切记端口不要修改成9080,否则与正在运行的gitlab9080端口冲突
修改发信配置
发信系统用的默认的postfix,smtp是默认开启的,两个都启用了,两个都不会工作。 我这里设置关闭smtp,开启postfix 关闭smtp方法: vim /etc/gitlab/gitlab.rb 找到#gitlab_rails['smtp_enable'] = true 改为 gitlab_rails['smtp_enable'] = false |
重置配置并启动GitLab
gitlab-ctl reconfigure gitlab-ctl restart |
浏览器输入http://192.168.58.134:9999访问(如果gitlab报502等一会)
Gitlab安装配置完毕
3. 同步生产环境数据
root登陆生产环境服务器10.145.131.2备份数据
查看当前运行的gitlab容器 docker ps 为了防止数据写入停掉容器 docker stop container_id 进入容器 docker exec –it container_id bash 进入目录 cd /var/opt/gitlab/backups 执行备份指令 gitlab-rake gitlab:backup:create RAILS_ENV=production 查看当前目录生成的文件 ll -h 退出容器 exit 到容器挂载目录下找到备份的文件 cd /apps/gitlab/data/backups/ 拷贝到某个路径待用
|
同步数据到新gitlab
拷贝备份文件到新gitlab目录下 cd /var/opt/gitlab/backups 把备份的文件拷贝到当前目录(/var/opt/gitlab/backups/)
在当前目录执行(此步不需要停gitlab) gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1544271058_2018_12_08_10.1.4 对话框打yes 访问无误 Git拉取提交无误修改无误 |
gitlab仓库数据目录迁移
gitlab默认仓库数据存储在/var/opt/gitlab/git-data/目录下,可以通过修改/etc/gitlab/gitlab.rb 的这一行来自定义 git-data 的父目录
修改配置
修改默认仓库目录添加备用仓库路径
备份配置文件 cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb-bak 新建主备目录 mkdir -pv /app/git-data vim /etc/gitlab/gitlab.rb 搜索关键词git_data_dirs |
添加
git_data_dir "/app/git-data" |
修改后执行 gitlab-ctl reconfigure |
迁移数据
# 准备迁移之前要停止GitLab服务,防止用户写入数据。 gitlab-ctl stop
# 注意 'repositories'后面不带斜杠,而 # '/app/git-data/'后面是有斜杠的。 rsync -av /var/opt/gitlab/git-data/repositories /app/git-data/
|
重新加载配置
gitlab-ctl upgrade gitlab-ctl reconfigure gitlab-ctl start |
4切换gitlab
修改gitlab默认端口9080
vim /etc/gitlab/gitlab.rb vim /var/opt/gitlab/nginx/conf/gitlab-http.conf |
重新加载配置
gitlab-ctl reconfigure gitlab-ctl restart |