gitlab数据迁移前期准备:
数据源
gitlab’s reposOmnibus GitLab Docsgitlab-清华大学开源软件镜像站
安装
插件
gitlab新增新用户有两种方式:
第一种可以用户主动注册(自己设置密码);
第二种也可以通过root管理员用户直接添加用户,发个邮件到用户的邮箱里,收到邮件后激活。
如果是第二种方式添加新用户的话,就需要配置gitlab邮箱了,而在linux环境里发送邮件就需要安装postfix(电子邮件服务器)工具、安装所需要的依赖。
# 安装Postfix以发送通知邮件
# yum install -y curl policycoreutils-python openssh-server postfix
# 将postfix服务设置成开机自启动
# systemctl enable postfix
# 启动postfix
# systemctl start postfix
查看postfix是否是启动状态
# systemctl status postfix
Active: active (running)说明,已经启动了。
还需要ssh 、防火墙 等,一般服务器都已经安装好了!
一、使用 docker 安装
docker的优点,搭建快,运行要求资源低,最重要的是实现的功能和效果都能达到预期
1、安装和启动docker
安装:yum -y install docker
启动:systemctl start docker
开机启动:systemctl enable docker
2、拉取镜像文件
# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本
$ docker pull gitlab/gitlab-ce
指定版本号:
docker pull gitlab/gitlab-ce:12.0.4-ce.0
3、运行gitlab容器
查看镜像
docker images
从gitlab镜像启动容器
docker run -d -h gitlab-ce -p 8443:443 -p 9099:80 -p 10022:22 --name gitlab --restart always -v /data/gitlab/config:/etc/gitlab -v /data/gitlab/logs:/var/log/gitlab -v /data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:12.0.4-ce.0
说明:
# -d:后台运行
# -h hostname
# -p:将容器内部端口向外映射
# ssh的 22 端口映射为 10022 端口,web访问的 80 端口映射为 9099 端口
# --name:命名容器名称
# --restart always 当容器退出或宿主机重启的时候,容器接着会始终重启
# -v(volume):将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录(config配置目录、data数据目录、logs日志目录)
4、配置gitlab服务器的访问地址及邮箱
修改gitlab容器的配置文件
(运行容器的时候将文件转存的位置不同,配置文件的位置也不相同,一般都是将文件存到下面这几个文件内,方便日后备份等使用)
docker exec -it gitlab vi /etc/gitlab/gitlab.rb
vim /home/gitlab/config/gitlab.rb
vim /opt/gitlab/config/gitlab.rb
vi /mnt/gitlab/etc/gitlab.rb
修改为服务器的ip地址:
external_url 'http://115.159.84.173'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '172.16.81.81'
gitlab_rails['gitlab_shell_ssh_port'] = 10022
# 这里以新浪的邮箱为例配置smtp服务器
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.xxx.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "name4mail"
gitlab_rails['smtp_password'] = "passwd4mail"
gitlab_rails['smtp_domain'] = "xxx.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
# 还有个需要注意的地方是指定发送邮件所用的邮箱,这个要和上面配置的邮箱一致
gitlab_rails['gitlab_email_from'] = 'name4mail@xxx.com'
# 设置网络IP
pipework br0 gitlab-ce 172.16.81.81/24@172.16.81.1
修改gitlab.rb配置文件之后重启容器gitlab
docker restart gitlab
二、镜像安装
一)
使用yum源安装
配置yum源
vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
更新本地yum缓存
yum makecache
【注】把服务器的包信息下载到本地电脑缓存起来,makecache建立一个缓存,以后用install时就在缓存中搜索,提高了速度。
配合yum -C search xxx
使用,不用上网检索就能查找软件信息。
需要定期清理缓存。
$ yum clean all
安装GitLab社区版
yum install -y gitlab-ce #自动安装最新版本
若需安装指定版本,则添加版本号即可,即
yum install gitlab-ce-x.x.x
二)
- 添加gitlab镜像
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
- 安装gitlab 安装命令
rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
- 修改gitlab配置文件指定服务器ip和自定义端口
vim /etc/gitlab/gitlab.rb
//## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://gitlab.example.com'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
//## Legend
##! The following notations at the beginning of each line may be used to
##! differentiate between components of this file and to easily select them using
把 external_url 这项的内容改为你的IP或域名即可
(如:external_url ‘http://114.56.136.28’ 或 external_url ‘http://gitlab.com’ )
- 重置并启动GitLab
# 重新加载配置
gitlab-ctl reconfigure
# 启动gitlab
gitlab-ctl restart
# 查看gitlab运行状况
gitlab-ctl status
gitlab-ctl reconfigure # 启动服务;
(重新加载配置文件,在GitLab初次安装后可以使用,但是在业务环境中不可随意使用,reconfigure会把一些过去的config还原,导致修改的端口以及域名等都没有了。)
vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;
提示 "ok: run:"表示启动成功
修改git创库位置:
sudo rsync -av /var/opt/gitlab/git-data /data/gitlab/
修改备份路径位置:
sudo rsync -av /var/opt/gitlab/backups /data/gitlab/
修改配置文件:
vim /etc/gitlab/gitlab.rb
创建备份
在创建备份的之前,需打开配置文件找到两航关键的代码
gitlab_rails['manage_backup_path'] = ture
gitlab_rails['backup_path'] = 'var/opt/gitlab/backup'(路径可以自己改变)
将这两行代码放开,之后重新加载配置文件
gitlab_ctl reconfigure
- 访问 GitLab页面
如果没有域名,直接输入服务器ip和指定端口进行访问
升级新服务器版本命令:
apt update
apt install gitlab-ce
卸载
1.停止gitlab
# gitlab-ctl stop
2.卸载gitlab(看是gitlab-ce版本还是gitlab-ee版本)
# rpm -e gitlab-ce
3.查看gitlab进程
# ps aux | grep gitlab
4.杀掉第一个进程(就是带有好多…的进程)
# kill -9 17313
5.删除所有包含gitlab文件
# find / -name *gitlab*|xargs rm -rf
# find / -name gitlab | xargs rm -rf
6.删除gitlab-ctl uninstall时自动在root下备份的配置文件
# ls /root/gitlab*
sudo gitlab-ctl uninstall # 删除服务
sudo gitlab-ctl cleanse # 清楚生成数据
sudo gitlab-ctl remove-accounts # 删除配置账户
sudo dpkg -P gitlab-ce # 删除软件包
通过以上几步就可以彻底卸载gitlab。
如果root密码忘记,需要重置密码
具体重置密码步骤
$ sudo gitlab-rails console production
或者 gitlab-rails console -e production
$ User.all #查看所有用户
$ user=User.where(name: "root").first
或 user = User.where(id: 1).first
$ user.password=12345678
$ user.password_confirmation = '12345678'
$ user.save!
$ quit
$ exit
欢迎点赞、关注和评论哦!