Gitlab最佳实践 -- 安装与维护
16lz
2021-03-14
一、安装与运行
// 拉取镜像docker pull gitlab/gitlab-ce// 运行镜像(因为是在本地运行,用的是本机IP地址,正式部署应该使用域名)docker run --detach \ --hostname 192.168.37.129 \ --publish 443:443 --publish 80:80 --publish 2022:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \
注意:生产环境建议将config,logs,data挂载在宿主机。以避免当Gitlab Docker进程意外终止,重启后丢失配置信息和数据。
// 修改配置docker exec -it gitlab /bin/bash// 编辑配置vim /etc/gitlab/gitlab.rb// 修改外部访问地址,局域网内可以使用IP。公网使用域名external_url "http://192.168.37.129"// 重启docker restart gitlab
在浏览器输入:http://192.168.37.129/ 。第一次访问Gitlab需要设置root账号密码。
二、备份与恢复
2.1、备份
// 在主机运行备份。命令如下:// docker exec -t <container name> gitlab-backup createdocker exec -t gitlab gitlab-backup create// 默认的备份目录在容器目录 `/var/opt/gitlab/backups`
注意:对于GitLab 12.1和更早版本,请使用gitlab-rake gitlab:backup:create。
2.2、恢复
Step1、将备份文件拷贝到容器目录 /var/opt/gitlab/backups。(备份和恢复的GitLab版本尽量保持一致)
Step2、停止相关数据连接服务
// 如果没有执行权限请加sudogitlab-ctl stop unicorngitlab-ctl stop sidekiq// 指定备份文件的时间戳前缀(多个备份文件)gitlab-rake gitlab:backup:restore BACKUP=1570603937_2019_10_09_12.2.5or gitlab-backup restore BACKUP=1570603937_2019_10_09_12.2.5// 默认备份恢复(backups目录下只有一个备份文件时)gitlab-rake gitlab:backup:restore// 如果遇到权限问题,需要给备份文件增加权限chmod 777 1570606338_2019_10_09_12.2.5_gitlab_backup.tar
Step3、重启服务
// 如果有配置文件修改,让新的配置生效gitlab-ctl reconfigure// 重启gitlabgitlab-ctl start// 检查服务gitlab-rake gitlab:check SANITIZE=true
2.3、迁移
迁移如同备份与恢复的步骤一样,只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的 /var/opt/gitlab/backups 即可(如果你没修改过默认备份目录的话)。但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同。比如新服务器安装的是最新的7.60版本的Gitlab。那么迁移之前,最好将老服务器的Gitlab 升级为7.60在进行备份。
2.4、备份数据到AWS S3
Step1、修改配置文件/etc/gitlab/gitlab.rb
gitlab_rails['backup_upload_connection'] = { 'provider' => 'AWS', 'region' => 'eu-west-1', 'aws_access_key_id' => 'AKIAKIAKI', 'aws_secret_access_key' => 'secret123' # If using an IAM Profile, don't configure aws_access_key_id & aws_secret_access_key # 'use_iam_profile' => true}gitlab_rails['backup_upload_remote_directory'] = 'my.s3.bucket'
Step2、使配置文件生效
gitlab-ctl reconfigure
Step3、执行备份命令,查看备份文件是否上传s3成功
gitlab-backup create
Step4、从s3下载备份文件到本地(必须先安装aws-cli工具)
aws s3 cp s3://finger-test/gitlab/backups/1570844249_2019_10_12_12.2.5_gitlab_backup.tar .
2.5、自动备份
# 使用Linux系统的Crontabcrontab -e # 输入相应的任务0 2 * * * docker exec -t gitlab gitlab-backup create
参考:
- https://docs.gitlab.com/omnibus/docker/
- https://docs.gitlab.com/ee/raketasks/backup_restore.html
如果您喜欢这篇文章,请考虑关注我。
长沙DevOps联盟 - 关注容器技术,K8S,自动化部署,基础设施架构。
更多相关文章
- Xtrabackup备份
- 还原工具mysqldump
- Redis 数据备份与恢复
- 如何使用 Apple Configurator 2 修复或恢复搭载 Apple 芯片的 Ma
- postgresql备份与PITR恢复
- PG数据库管理_备份工具的使用
- [灾备]备份类型
- [灾备] 数据副本管理技术(CDM)
- [灾备]通过 NAS 与文件服务器结合构建数据容灾系统