gitlab 安装、备份与还原及常见设置
gitlab 安装、备份与还原及常见设置
安装
- 安装过程比较简单,跑在 docker 上,执行命令即可
-v参数后面的值为卷的名称,自动创建数据卷(如果数据卷不存在)- https://docs.gitlab.com/omnibus/docker/
docker run \
--hostname gitlab.example.com \
--restart always \
--name 'gitlab' \
-d \
-p 443:443 \
-p 80:80 \
-p 22:22 \
-v gitlab_config:/etc/gitlab \
-v gitlab_log:/var/log/gitlab \
-v gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
配置文件
- 所有设置 https://docs.gitlab.com/omnibus/settings/README.html
- 配置位于文件
/etc/gitlab/gitlab.rb /var/opt/gitlab/gitlab-rails/etc文件夹的配置文件则是分开的,清晰明了,可用于查看。database.yml是数据库配置文件,gitlab.yml是应用配置- 注意
gitlab.yml的开头提示此文件由gitlab-ctl管理。手动更改将删除!要更改以下内容,请编辑/etc/gitlab/gitlab.rb,运行“sudo gitlab-ctl reconfigure”。,所以最好不要直接编辑这个页面 - 如何重启 gitlab,执行
sudo gitlab-ctl restart重启。只有通过Omnibus packages安装的,使配置生效命令sudo gitlab-ctl reconfigure才有效。经过实践,发现修改gitlab.yml需要重启才能生效,而修改gitlab.rb则只需要重新配置,并且会覆盖gitlab.yml的设置 - 更改 gitlab.yml 和 application.yml 设置,这里说明了
gitlab.rb与gitlab.yml等配置文件的关系,由gitlab.rb生成配置文件,执行命令sudo gitlab-ctl reconfigure使更改生效。 - gitlab.rb 模板
- gitlab.yml 模板
仓库主机地址、服务器地址、wiki 文件上传地址
- 文档见 https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
- 安装的时候没有指定 host,项目克隆地址使用了默认的 host 地址,需要手动修改设置
- 修改配置文件
/etc/gitlab/gitlab.rb,设置external_url ‘https://git.example.com’,执行命令sudo gitlab-ctl reconfigure重新配置快速生效
访问内部 PostgreSQL
- 参考教程 https://www.cnblogs.com/UniqueColor/p/7767012.html
- 深入 PostgreSQL 身份验证 https://www.tuicool.com/articles/bQfmUr
- 以下按默认情况处理,并做适当解释
- 查看 gitlab 数据库配置文件
cat /var/opt/gitlab/gitlab-rails/etc/database.yml - 查看数据库验证方式配置文件
cat /var/opt/gitlab/postgresql/data/pg_hba.conf - 查看用户
cat /etc/passwd - 切换登录用户
su - gitlab-psql,由于默认配置是使用 peer 方式认证,认证工作完全交给系统,所以系统用户名必须与登录数据库用户名一致。 - 参数加横杠有两个作用,第一是切换用户后同时切换到工作目录,第二是添加该用户相关环境变量,否则 psql 无法使用
- 根据数据库配置填写数据库登录主机以及登陆的数据库
psql -h /var/opt/gitlab/postgresql -d gitlabhq_production - 以下是数据库操作命令
- 查看帮助
\h - 查看数据库列表
\l - 查看多表
\dt - 查看单表
\d users - 查看索引
\di - 执行查询
select id,encrypted_password,name,username from users; - 退出
\q - 退出当前登录用户
exit
备份与还原
备份
- 官方文档:https://docs.gitlab.com/ce/raketasks/backup_restore.html
- 由于使用 docker 部署,所以不用按照官方文档走,只需要备份 docker 容器产生的数据,并且是放在数据卷中的数据
- 备份与还原 docker 数据卷数据,参考 https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes
- 只需要备份
/var/opt/gitlab以及/etc/gitlab这两个文件夹即可,一个是存放 gitlab 数据,一个存放配置。日志路径位于/var/log/gitlab。 - 主要命令如下:
# 挂载gitlab容器的所有卷到alpine容器,将容器backup目录映射到当前目录,执行备份命令,依次备份所有数据即可
$ cd /var/opt/gitlab
$ docker run --rm --volumes-from gitlab -v $(pwd):/backup alpine tar cvf /backup/backup.tar .
- 因为要备份多个文件夹,可进入交互命令环境进行操作
还原
- 得到备份数据的压缩文件,创建卷之后还原即可。还原的时候多一步创建卷,类似创建 gitlab 容器时的操作,得到数据卷,再执行类似备份的操作,运行另外的容器挂载新创建容器的卷,只不过压缩变成解压
# 创建一个匿名卷,挂载到alpine容器的`/var/opt/gitlab`目录
$ docker run -v /var/opt/gitlab --name alpine_data alpine /bin/sh
# 挂载容器alpine_data的数据卷,进入命令交互环境
$ docker run -it --rm --volumes-from alpine_data -v $(pwd):/backup alpine sh
# 在容器内执行下面的还原命令
$ cd /var/opt/gitlab && tar xvf /backup/backup.tar"
- 进入容器之后,还原多个压缩包即可,提前创建好对应数据卷
运行
- 运行过程同安装过程,挂载上面的数据卷即可,也可以直接解压到主机目录,进行主机目录映射
- 注意一定要确认解压的文件夹的相对路径是否正确,这是可能会犯的一个错。因为上面的打包过程,很可能把数据打包成带路径
/var/opt/gitlab的格式,导致容器中的数据位于/var/opt/gitlab/var/opt/gitlab
svn 迁移到 git
- 命令参考文档 https://git-scm.com/docs/git-svn
- 教程参考,强烈推荐 https://git-scm.com/book/zh/v2/Git-与其他系统-迁移到-Git
- 其它参考,过程都大同小异:
- SVN 迁移到 git
- SVN 迁移到 GIT 且保留提交日志
- SVN 迁移到 Git 的过程(+ 一些技巧)
- svn 迁移到 git 仓库并保留 commit 历史记录
- 以下操作在 ubuntu18.04 上执行,其它 linux 未测试,windows 上可以
shift+右键点击菜单在此处选择linux shell以打开 wsl 子系统,没装的话wget改成curl,该命令只是下载文件而已 - windows 上安装了 git 的话支持
git svn命令,ubuntu 需要安装apt update && apt install git-svn - 首先在一个仓库下执行以下命令得到所有提交者信息,等号填写 git 仓库对应的用户名和邮箱
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt
user1 = user1 <user1>
user2 = user2 <user2>
user3 = user3 <user3>
- 从 svn clone 到本地
git svn clone http://svn-server:port/project/trunk/path1/path2 --no-metadata --authors-file=users.txt projectname --authors-file参数指定提交者信息映射文件,--no-metadata去掉多余元数据信息- 抓一份
.gitignore模板下来,mkdir .gitignore && wget -O .gitignore/VisualStudio.gitignore https://raw.githubusercontent.com/github/gitignore/master/VisualStudio.gitignore - 添加忽略文件
$ cd projectname
$ cat ../.gitignore/VisualStudio.gitignore >> .gitignore && \
git svn show-ignore >> .gitignore
- 添加文件
.gitignore到版本控制git add .gitignore - 本地提交
git commit -a -m 'add .gitignore' - 添加远程仓库地址
git remote add origin http://git-server:port/project.git - 推送本地 master 分支到远程,
-u参数会让 master 关联远程分支git push -u origin master - 其他操作:从 svn 更新
git svn rebase、提交到 svngit svn dcommit
总结
- gitlab 是个内存大户,因此主机内存最好大于 2G,并做资源限制,否则占用了过高内存,会导致 gitlab 服务 503,甚至整个主机都变卡
- 此系统一开始装在内网的 win7 主机,使用
docker for windows安装,后因需要迁移到服务器,只需要迁移数据卷中数据即可,十分方便 - 由 svn 迁移到 git,使用 git 自带的
git svn clone url即可方便分离 svn 中的大项目为一个个单独的项目。因为原来的存法是所有项目在某一类文件夹,各个项目的提交记录混在一起,不方便查看,而且项目多了不方便管理
gitlab 安装、备份与还原及常见设置的更多相关文章
- GitLab - GitLab的备份与还原
1 - GitLab配置文件 GitLab默认的配置文件路径:/etc/gitlab/ /etc/gitlab/gitlab.rb:主配置文件,包含外部URL.仓库目录.备份目录等 /etc/gitl ...
- GitLab 安装,配置及维护
参考: GitLab 官方文档 docker-gitlab,通过 docker-compose 快速安装 GitLab rake,是 Rails 的工具,类似 ruby 中常用的的 make.通过 R ...
- Gitlab安装与备份恢复
GitHub是2008年由Ruby on Rails编写而成,与业界闻名的Github类似;但要将代码上传到GitHub上面,而且将项目设为私有还要收费.GitLab是一个用于仓库管理系统的开源项目, ...
- gitlab备份与还原
1.备份 登录原服务器,执行命令: gitlab-rake gitlab:backup:create 备份后文件在如下目录,下载该文件 /var/opt/gitlab/backups 2.还原 先安装 ...
- windows环境下mysql的解压安装以及备份和还原
系统环境为server2012 1.下载mysql解压版,解压安装包到指定目录 2.在以上目录中,复制一份my-default.ini文件,重命名为my.ini,进行如下修改(按照需要): [mysq ...
- 【linux】【gitlab】gitlab安装、备份、恢复、升级、内存消耗问题
前言 GitLab:GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务.功能:Gitlab 是一个提供代码托管.提交审核和问题跟踪的代码管理平 ...
- mysql的备份与还原,安装(window)
之前一直使用的navicat的自动的备份功能.但是在使用navicat的还原功能时,贼慢. 今天要做的是window服务器上将mysql单个数据库备份.然后还原到我的mac笔记本上. 本来以为很快的, ...
- Gitlab 安装、升级、备份、恢复、汉化等
一.Gitlab安装 1. 基于yum方式安装Gitlab 安装步骤如下 (1)配置yum源 # vim /etc/yum.repos.d/gitlab-ce.repo (2)复制如下内容并保存(注意 ...
- (4.1)mysql备份还原——mysql常见故障
(4.1)mysql备份还原——mysql常见故障 1.常见故障类型 在数据库环境中,常见故障类型: 语句失败,用户进程失败,用户错误 实例失败,介质故障,网络故障 其中最严重的故障主要是用户错误和介 ...
随机推荐
- Cogs 732. [网络流24题] 试题库(二分图)
[网络流24题] 试题库 ★★ 输入文件:testlib.in 输出文件:testlib.out 评测插件 时间限制:1 s 内存限制:128 MB «问题描述: 假设一个试题库中有n道试题.每道试题 ...
- 第12组 Alpha冲刺(6/6)
Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 展示Git当日代码/文档签入记录(组内共享) 注: 由于GitHub的免费范围内对多人开发存在较多限 ...
- python 操作 elasticsearch-7.0.2 遇到的问题
错误一:TypeError: search() got an unexpected keyword argument 'doc_type',得到不预期外的参数 解决方法:elasticsearch7里 ...
- 解决idea创建Maven项目速度慢
idea在创建maven项目的时候会去网上自动下载需要的插件,这样就会导致项目创建后一直处于下载插件的状态中,影响开发效率 此时我们可以在创建maven骨架的时候,加入键值对来让maven调用本地的骨 ...
- TCP连接关闭总结
由于涉及面太广,只作简单整理,有兴趣的可参考<UNIX Networking Programming>volum 1, Section 5.7, 5.12, 5.14, 5.15, 6.6 ...
- Python绘制3D图形
来自:https://www.jb51.net/article/139349.htm 3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行 ...
- RedHat离线安装Python3以及各种依赖
RedHat离线安装Python3以及各种依赖 1, yum install -y ncurses-libs zlib-devel mysql-devel bzip2-devel openssl-de ...
- TTA 方法
可将准确率提高若干个百分点,它就是测试时增强(test time augmentation, TTA). 这里会为原始图像造出多个不同版本,包括不同区域裁剪和更改缩放程度等,并将它们输入到模型中: 然 ...
- (4)Flask项目模板渲染初体验
一.准备静态资源 将项目使用到的静态资源拷贝到static目录 二.创建前台首页html 创建templates/home/home.html页面,内容包含导航和底部版权两部分,中间内容区域为模板标签 ...
- sysfile20191122
ass_s_ccp_ft:-108; ass_s_ccp_all:-108; ass_tag_ft:-105; ass_tag_all:-105; rept_port:9000; Q_value:0. ...