今天折腾了下docker安装和配置gitlab,并实现2台服务器之间的免密登录和备份。全流程如下:
mkdir -p /home/gitlab/{data,log,etc}docker pull twang2218/gitlab-ce-zh:11.1docker run -d --publish 8090:8090 --publish 2222:22 --name gitlab --privileged=true --restart=always -e TZ=Asia/Shanghai -v /home/gitlab/etc:/etc/gitlab -v /home/gitlab/log:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab twang2218/gitlab-ce-zh:11.1借鉴链接:https://juejin.cn/post/7084758138414923813
进入容器
docker exec -it gitlab /bin/bash
vi /etc/gitlab/gitlab.rb
http使用的端口以及在项目工程显示的 http 下载路径中使用
external_url 'http://公网IP[或域名]:8090'
比如公网ip为: 10.14.114.08
项目工程显示的 ssh 地址和端口
gitlab_rails['gitlab_ssh_host'] = '10.14.114.08'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
保存备份 30 天
gitlab_rails['backup_keep_time'] = 2592000
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "690328661@qq.com"
gitlab_rails['smtp_password'] = "您的qq邮箱授权码"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '690328661@qq.com'
`
将这个也配置在gitlab.ra中。
gitlab-ctl reconfigure
此处略。但是很重要,也很简单,不写了。








上面填完之后,用户邮箱会自动收到一份邮件.

点击会进入设置密码的节目,设置下,重新登录即可。
设置这个的目的是: 有2台服务器,部署这台gitlab服务器的定时生成备份数据,通过scp命令传递到另一台服务器上。如果这台gitlab挂了,可以重启用备份的数据还原之前的数据。
参考: https://blog.csdn.net/weixin_40363423/article/details/115216886
操作如下:
在gitlab台服务器上分别执行
cd /root/.ssh
cd authorized_keys
ssh-keygen -t rsa 然后一路enter即可。
scop id_rsa.pub 备份服务器IP:/rsa (前提 在根目录下创建rsa目录,创建其他文件夹也可以)
在备份数据服务器上分别执行
cd /root/.ssh
cd authorized_keys
ssh-keygen -t rsa 然后一路enter即可。
scop id_rsa.pub gitlab服务器IP:/rsa (前提 在根目录下创建rsa目录,创建其他文件夹也可以)
最终,在两台服务器上看到这样就成功了:

docker exec gitlab gitlab-rake gitlab:backup:create
执行备份命令
docker exec gitlab gitlab-rake gitlab:backup:create
将备份文件拷贝到备用机器的 GitLab 数据目录下
scp -r /home/gitlab/data/backups root@192.168.0.154:/home/gitlab/data/backups

vim /etc/crontab# 每天备份两次, 12 点和 18 点各一次
0 12,18 * * * root sh /home/auto_backup.sh CRON=1

service crond reloadservice crond restart参考链接:https://juejin.cn/post/7084758138414923813
注意:在从机器上必须按照上面的安装和配置步骤提前安装好 GitLab,然后登录root用户没有问题后,然后执行以下步骤进行仓库恢复,以下操作均在从机器上执行:

上面的定时任务如果没问题这一步就可以省略了
进入 GitLab 容器,执行以下恢复命令
进入容器
docker exec -it gitlab /bin/bash
停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
chmod -R 7777 /var/opt/gitlab/backups
cd /var/opt/gitlab/backups
备份文件编号
gitlab-ctl start
我这里只是在原来的gitlab服务器上创建了个用户,执行完备份后,也显出来了。说明备份成功!!!

开通了个微信公众号:
搜索: 怒放de每一天
后续可能不定时推送相关文章,期待和大家一起成长!!

大功告成!!