gitlab 安装、备份与还原及常见设置

gitlab 安装、备份与还原及常见设置

安装

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.rbgitlab.yml等配置文件的关系,由gitlab.rb生成配置文件,执行命令sudo gitlab-ctl reconfigure使更改生效。
  • gitlab.rb 模板
  • gitlab.yml 模板

仓库主机地址、服务器地址、wiki 文件上传地址

访问内部 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

备份与还原

备份

# 挂载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

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、提交到 svn git svn dcommit

总结

  • gitlab 是个内存大户,因此主机内存最好大于 2G,并做资源限制,否则占用了过高内存,会导致 gitlab 服务 503,甚至整个主机都变卡
  • 此系统一开始装在内网的 win7 主机,使用docker for windows安装,后因需要迁移到服务器,只需要迁移数据卷中数据即可,十分方便
  • 由 svn 迁移到 git,使用 git 自带的git svn clone url即可方便分离 svn 中的大项目为一个个单独的项目。因为原来的存法是所有项目在某一类文件夹,各个项目的提交记录混在一起,不方便查看,而且项目多了不方便管理

原文地址:https://www.cnblogs.com/xxred/p/11548242.html

时间: 2024-10-05 20:26:12

gitlab 安装、备份与还原及常见设置的相关文章

gitlab安装,使用,备份,恢复

gitlab安装,使用,备份,恢复 git是一个版本控制器在分布式版本控制系统里,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来. 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复.因为每一次的提取操作,实际上都是一次对代码仓库的完整备份. 1.gitlab介绍 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,操作起来特别方便. 2.Gitlab安装与配置 2.1yum安装软件

gitlab备份、还原及迁移

安装gitlab可参考上篇博文:gitlab在centons环境下的安装及使用 一.gitlab创建备份 在终端中执行:gitlab-rake gitlab:backup:create 备份文件所在路径为:/var/opt/gitlab/backups/ 备份得到的文件格式如:1504860571_2017_09_08_9.5.3_gitlab_backup.tar   时间挫_年_月_日_gitlap版本_gitlab_backup.tar 若需修改备份文件的存放路径:vim  /etc/gi

Docker环境下Gitlab备份和还原

说明: 项目的代码的备份是重中之重,时刻备份远程仓库代码是非常有必要的. 具体安装文档: http://yujianglei.blog.51cto.com/7215578/1725962 一.配置Gitlab自动备份,启动gitlab容器时指定一下参数   --env='GITLAB_BACKUP_DIR=/home/git/data/backups'   --env='GITLAB_BACKUPS=daily'   --env='GITLAB_BACKUP_TIME=00:00' \ 二:手动

windows环境下mysql的解压安装以及备份和还原

系统环境为server2012 1.下载mysql解压版,解压安装包到指定目录 2.在以上目录中,复制一份my-default.ini文件,重命名为my.ini,进行如下修改(按照需要): [mysqld] # 服务端的编码方式 character_set_server=utf8 # These are commonly set, remove the # and set as required. #数据文件存放目录 basedir = C:\Program Files\mysql #数据文件存

GitLab安装,导入,备份

GitLab的安****装 2.1.在CentOS系统上,下面的命令将会打开系统防火墙HTTP和SSH访问. yum install curl policycoreutils openssh-server openssh-clientssystemctl enable sshdsystemctl start sshdyum install postfixsystemctl enable postfixsystemctl start postfixfirewall-cmd --permanent

(4.1)mysql备份还原——mysql常见故障

(4.1)mysql备份还原——mysql常见故障 1.常见故障类型 在数据库环境中,常见故障类型: 语句失败,用户进程失败,用户错误 实例失败,介质故障,网络故障 其中最严重的故障主要是用户错误和介质故障. 2.具体故障情况 故障问题大致分为以下几类 [2.1]语句错误:单个数据库操作(选择.插入.更新.删除)失败,软件逻辑问题. [2.2]用户进程错误:单个数据库会话失败,一般不需要敢于,分析日志观察 [2.3]网络故障:与数据库的链接断开,如:网卡坏,网络配置问题 [2.4]用户错误:用户

mysql备份与还原

防伪码:志向不过是记忆的奴隶,生气勃勃地降生,但却很难成长. 一.mysqldump备份结合binlog日志恢复 MySQL 备份一般采取全库备份加日志备份的方式,例如每天执行一次全备份,每小时执行一 次二进制日志备份.这样在 MySQL 故障后可以使用全备份和日志备份将数据恢复到最后一个 二进制日志备份前的任意位置或时间. 1.binlog介绍 mysql的二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上 开启binlog),还包括了这些操作的执行时间.为了显示这些二进

数据备份与还原-16(共22讲)

目录:一.数据备份二.数据还原三.数据库迁移四.导出和导入文本文件 一.数据备份:1,mysqldump 工作原理:它先查出需要备份的表的结构,再在文本文件中生成一个create语句,然后将表中的所有记录转换成一条insert语句.生成 的.sql文件其实是包含了create语句来恢复表结构.insert语句恢复表数据使用方法:可以实现备份一个库.多个库.所有库------mysqldump -u root -p'123' dbname1 table1  table2 ... > /home/w

实现Mysql 备份与还原

前言:本篇主要讲 1.使用Mysqldump结合binlog日志备份与恢复 2.使用xtrabackup进行Mysql数据库备份与恢复 ################# mysqldump备份结合binlog日志恢复功能介绍 ##################### MySQL备份一般采取全库备份加日志备份的方式,例如每天执行一次全备份,每小时执行一次二进制日志备份.这样在MySQL故障后可以使用全备份和日志备份将数据恢复到最后一个二进制日志备份前的任意位置或时间. 1.binlog介绍 m