目录导航

  • GitLab 搭建
    • 安装
      • 方式1:脚本安装
      • 方式2:dep安装
      • 方式3:宝塔安装
    • 配置
      • 修改域名/IP(必选)
      • 修改仓库默认位置,添加备用存储目录位置(可选)
      • 自动备份(可选)
    • 启动
  • GitLab 相关
    • 备份恢复与迁移
      • 确认gitlab版本
      • 准备文件
      • 恢复备份
    • 更改ROOT密码
    • 开启gitlab pages
      • 修改配置
      • 注册 runner
      • 项目自动发布
    • Page页面IP访问
  • 错误记录
    • Nginx冲突
    • grafana 启动失败
    • CI/CD 流水线权限不足
    • CI/CD ERROR: Job failed: prepare environment: exit status 1.
    • Admin 页面保存提示500错误
    • 未迁移gitlab-secrets.json

GitLab 搭建

安装

版本库:https://packages.gitlab.com/gitlab/gitlab-ce
版本选择: gitlab-ce_15.4.0-ce.0_amd64

方式1:脚本安装

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce=15.4.0-ce.0

方式2:dep安装

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/focal/gitlab-ce_15.4.0-ce.0_amd64.deb/download.deb
sudo dpkg -i gitlab-ce_15.4.0-ce.0_amd64.deb

方式3:宝塔安装

宝塔 -> 软件商店 -> GitLab最新社区版


配置

修改域名/IP(必选)

编辑/etc/gitlab/gitlab.rb,找到external_url ,更改为域名或者内网IP(指定端口加端口号)。

external_url 'http://172.16.2.166:8099'

指定端口号,默认80。

nginx['listen_port'] = 8099

修改仓库默认位置,添加备用存储目录位置(可选)

编辑/etc/gitlab/gitlab.rb,找到git_data_dirs,自定义数据存储路径和备用的数据存储路径。

git_data_dirs({"default" => { "path" => "/home/gitlab/gitlab-data"}, "alternative" => { "path" => "/var/opt/gitlab/git-data/repositories"}
})

自动备份(可选)

1、编辑/etc/gitlab/gitlab.rb,设定备份路径,备份权限以及备份保留时间。

gitlab_rails['manage_backup_path'] = true             // 开启备份
gitlab_rails['backup_path'] = "/home/gitlab/backups"  // gitlab备份目录
gitlab_rails['backup_archive_permissions'] = 0644         // 生成的备份文件权限
gitlab_rails['backup_keep_time'] = 7776000                // 备份保留时间,秒计算 7776000 = 3600*24*30*3 = 90天

2、编辑/etc/crontab,启动定时任务,每天凌晨2点进行备份。

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name   command to be executed0  2  *  *  * root        /opt/gitlab/bin/gitlab-rake gitlab:backup:create

3、Ubuntu 系统启动定时任务,

sudo systemctl restart cron

启动

  1. 修改完/etc/gitlab/gitlab.rb,需要执行sudo gitlab-ctl reconfigure
  2. 之后重启sudo gitlab-ctl restart

常用命令如下:

指令 作用
sudo gitlab-ctl reconfigure 重新加载配置,每次修改/etc/gitlab/gitlab.rb文件之后执行
sudo gitlab-ctl status 查看 GitLab 状态
sudo gitlab-ctl start 启动 GitLab
sudo gitlab-ctl stop 停止 GitLab
sudo gitlab-ctl restart 重启 GitLab
sudo gitlab-ctl tail 查看所有日志
sudo gitlab-ctl tail nginx/gitlab_acces.log 查看 nginx 访问日志
sudo gitlab-ctl tail postgresql 查看 postgresql 日志

GitLab 相关

备份恢复与迁移

确认gitlab版本

备份恢复或者迁移的前提是要恢复的gitlab版本与备份时的gielab版本相同,不清楚备份时的gitlab版本的,可解压备份压缩包进行查看。如:备份(我的路径在gitlab.rb中进行了更改,根据自己设置查看) /home/gitlab/backups/1664992816_2022_10_06_15.4.0_gitlab_backup.tar 内的结构如下。

├── artifacts.tar.gz
├── backup_information.yml
├── builds.tar.gz
├── db
├── lfs.tar.gz
├── packages.tar.gz
├── pages.tar.gz
├── repositories
├── terraform_state.tar.gz
└── uploads.tar.gz

打开backup_information.yml进行查看,可以看到备份的gitlab版本为15.4.0

:db_version: '20220916112841'
:backup_created_at: 2022-10-06 02:00:16.473275493 +08:00
:gitlab_version: 15.4.0
:tar_version: tar (GNU tar) 1.30
:installation_type: omnibus-gitlab
:skipped:
:repositories_storages:
:repositories_paths:

准备文件

如果仅是在原有gitlab进行恢复,则准备恢复的文件。

  • /home/gitlab/backups/1664992816_2022_10_06_15.4.0_gitlab_backup.tar

如果需要进行迁移,准备下面两个文件进行替换。

  • /etc/gitlab/gitlab-secrets.json​​
  • /etc/gitlab/gitlab.rb​​

恢复备份

断开gitlab的相关数据连接服务。

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq

选择对应备份进行恢复

sudo gitlab-rake gitlab:backup:restore BACKUP=1664992816_2022_10_06_15.4.0

还原结束后会提示

2022-10-09 11:06:13 +0800 -- Restore task is done.

之后重启

sudo gitlab-ctl restart

更改ROOT密码

如忘记了ROOT密码或者已经失效,进入gitlab的控制台进行更改。
下面展示了把ROOT账号密码重置为12345678的操作过程。

daobanmojie:~$ sudo gitlab-rails console -e production
--------------------------------------------------------------------------------Ruby:         ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]GitLab:       15.4.2 (ef309cf1466) FOSSGitLab Shell: 14.10.0PostgreSQL:   13.6
------------------------------------------------------------[ booted in 19.58s ]
Loading production environment (Rails 6.1.6.1)
irb(main):001:0> user = User.where(id: 1).first
=> #<User id:1 @root>
irb(main):003:0> user.password='12345678'
=> "12345678"
irb(main):005:0> user.password_confirmation='12345678'
=> "12345678"
irb(main):006:0> user.save!
=> true
irb(main):007:0> quit
daobanmojie:~$

开启gitlab pages

修改配置

sudo vi /etc/gitlab/gitlab.rb 设置gitlab_pages[‘enable’]true,设置page页面的地址,不能是IP,如果只有IP则随便写,然后修改本地hosts即可。

################################################################################
## GitLab Pages
##! Docs: https://docs.gitlab.com/ee/administration/pages/
##################################################################################! Define to enable GitLab Pages
pages_external_url "http://docs.example.com/"
gitlab_pages['enable'] = true

如果还要打开访问控制,则需要设置

gitlab_pages['access_control'] = true

然后运行下面的指令使其生效。

gitlab-ctl reconfigure
gitlab-ctl restart

管理员登陆GitLab,“菜单”=>“管理员”=>“设置”=>“偏好设置”中展开Pages选项,进行配置并保存。

注册 runner

根据提示运行如下代码安装

# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64# Give it permission to execute
sudo chmod +x /usr/local/bin/gitlab-runner# Create a GitLab Runner user
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash# Install and run as a service
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

然后注册

sudo gitlab-runner register --url http://xx.xx.xx.xxx/ --registration-token xxxxxxxxxxxxxx
  1. 输入url地址(enter 跳过)
  2. 输入token(enter 跳过)
  3. 输入描述,任意即可
  4. 输入标签(enter 跳过)
  5. 选择Runner executor,这里选择 shell
    操作完后,刷新 Runners 页面,就可以看到新注册的 runner 了

卸载runner

# 停止服务
gitlab-runner stop
# 取消随机启动
chkconfig gitlab-runner off
# 卸载服务
gitlab-runner uninstall
# 清理文件
rm -rf /etc/gitlab-runner
rm -rf /usr/local/bin/gitlab-runner
rm -rf /usr/bin/gitlab-runner
rm -rf /etc/sudoers.d/gitlab-runner

项目自动发布

项目添加.gitlab-ci.yml文件,默认的HTML文件的为

# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Pages/HTML.gitlab-ci.yml# Full project: https://gitlab.com/pages/plain-html
pages:stage: deployscript:- mkdir .public- cp -r ./* .public- rm -rf public- mv .public publicartifacts:paths:- publicrules:- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

保存后切换“CI/CD” 流水线看是否通过。


Page页面IP访问

把Pages部署目录配置到Nginx。
Pages部署目录默认为:/var/opt/gitlab/gitlab-rails/shared/pages
我这里迁移了存储路径:/home/gitlab-runner/builds/22qUWw4P/0/docs/docs
当然也可以设置.gitlab-ci.yml指定路径,不过注意权限问题。
在宝塔页面创建了一个站点,把网站目录设置到Pages部署,即可用IP访问。


错误记录

Nginx冲突

宝塔安装的gtlab,为了防止nginx冲突, 把gitlab的nginx启动文件名改成了gitlab-web,但配置文件里面却没改。手动修改修改启动脚本/opt/gitlab/sv/nginx/run,修改后重启。

#!/bin/sh
exec 2>&1cd /var/opt/gitlab/nginx
exec chpst -P /opt/gitlab/embedded/sbin/gitlab-web -p /var/opt/gitlab/nginx

grafana 启动失败

因为 nginx 和GitLab中的 grafana 服务默认都会使用 3000端口

修改配置文件grafana.ini

sudo vi /etc/grafana/grafana.ini

宝塔安装的路径为/var/opt/gitlab/grafana/grafana.ini

sudo vi /var/opt/gitlab/grafana/grafana.ini

更改为需要的端口号,我这里更改为3001

#################################### Server ####################################
[server]
# Protocol (http, https, socket)
protocol = http# The ip address to bind to, empty will bind to all interfaces
http_addr = localhost# The http port  to use
http_port = 3001# The public facing domain name used to access grafana from a browser
;domain = localhost

查看

daobanmojie:~$ sudo netstat -ltunp | grep 3001
tcp        0      0 127.0.0.1:3001          0.0.0.0:*               LISTEN      18895/grafana-serve

CI/CD 流水线权限不足

$ groups gitlab-runner
> gitlab-runner : gitlab-runner$ sudo usermod -a -G root gitlab-runner$ sudo groups gitlab-runner
> gitlab-runner : gitlab-runner root

CI/CD ERROR: Job failed: prepare environment: exit status 1.

错误提示如下:

Running with gitlab-runner 15.4.0 (43b2dc3d)on yangjiawei qaijDSts
Preparing the "shell" executor
00:00
Using Shell executor...
Preparing environment
00:00
Running on doudian-fwq...
ERROR: Job failed: prepare environment: exit status 1. Check https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading for more information
sudo rm -r /home/gitlab-runner/.bash_logout

Admin 页面保存提示500错误

我这里是因为未迁移gitlab-secrets.json文件导致加密不能解析引起的,进入控制台重置。

doudian@doudian-fwq:~$ sudo gitlab-rails dbconsole
psql (13.6)
Type "help" for help.gitlabhq_production=> UPDATE projects SET runners_token = null, runners_token_encrypted = null;
UPDATE 9
gitlabhq_production=> UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
UPDATE 26
gitlabhq_production=> UPDATE application_settings SET runners_registration_token_encrypted = null;
UPDATE 1
gitlabhq_production=> UPDATE application_settings SET encrypted_ci_jwt_signing_key = null;
UPDATE 1
gitlabhq_production=> UPDATE ci_runners SET token = null, token_encrypted = null;
UPDATE 1
gitlabhq_production=> exit

未迁移gitlab-secrets.json

除了上述错误,为迁移gitlab-secrets.json还会导致CI/CD错误。
gitlab-secrets.json文件负责为包含必需的敏感信息的列存储加密密钥。 如果密钥丢失,则GitLab无法解密这些列,从而无法访问以下项目:

  • CI/CD variables
  • Kubernetes / GCP integration
  • Custom Pages domains
  • Project error tracking
  • Runner authentication
  • Project mirroring
  • Web hooks

详细参考 https://docs.gitlab.com/ee/raketasks/backup_restore.html#when-the-secrets-file-is-lost

GitLab的安装与设置相关推荐

  1. gitlab的安装和使用

    本文将要讲到的是在centos6.5上面安装gitlab的过程和使用演示. 一.安装: 安装Gitlab参考的安装教程是官网的,地址为:Gitlab官方安装教程地址 1.安装准备: 官网教程上面的第一 ...

  2. Symfony4中文文档: 安装和设置Symfony框架

    安装和设置Symfony框架 要创建新的Symfony应用程序, 首先确保使用的是PHP7.1 或更高版本并且已经安装Componser. 如果未安装, 请首先在系统上全局安装Componser. 如 ...

  3. php symfony 安装,Symfony4中文文档: 安装和设置Symfony框架

    安装和设置Symfony框架 要创建新的Symfony应用程序, 首先确保使用的是PHP7.1 或更高版本并且已经安装Componser. 如果未安装, 请首先在系统上全局安装Componser. 如 ...

  4. CentOS下GitLab的安装部署

    转载来源 :https://mp.weixin.qq.com/s/kUwZja0xK1IfqGU6R2f1EA 一 GitLab Server的搭建 参考:https://about.gitlab.c ...

  5. Gitlab在线安装、离线安装、搭建、使用等详细介绍,不能再详细了……

    Gitlab在线安装.离线安装.搭建.使用等详细介绍,不能再详细了-- 1.下载安装 1.1 下载 1.2安装 1.2.1 在线安装 1. 安装依赖包 2. 设置 SSH 开机自启动并启动 SSH 服 ...

  6. gitlab centos 安装配置运维笔记

    写在前面 如果你需要一个git服务器,为企业或自己的团队托管代码而又不希望将代码仓库存储到第三方.你可以在自己的服务器上搭建一个gitlab. 本文为我在最初安装配置gitlab服务器的时候留存的笔记 ...

  7. Gitlab的安装及仓库创建

    Gitlab的安装及仓库创建  墨雪之卿 关注 2017.11.08 15:42* 字数 656 阅读 1559评论 0喜欢 1 1. Gitlab的安装及仓库创建 1.1下载gitlab安装包 1) ...

  8. git及gitlab的安装和使用

    目录 一.搭建gitlab服务器 二.开始学习使用git 三.实战练习 Git 是一个开源的分布式版本控制系统,Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本 ...

  9. gitlab编译安装史----虽败犹荣

    1.安装依赖库 yum install libicu-devel mysql-develpcre-devel 安装python,官方要求版本必须在2.5以上,而且不支持3.0,而CentOS5.5默认 ...

最新文章

  1. android 混淆方法名,android – 如何告诉Proguard混淆类名
  2. OpenShift Security (5) - 评估部署中的风险
  3. 【C++ Primer】第五章学习笔记(循环和关系表达式)
  4. Nexus 安装与配置
  5. springboot学习笔记1
  6. 【翻译】微软会投资和支持Skype在非微软平台上的业务
  7. 本地服务启动慢问题及dubbo测试方法记录
  8. 网页怎么预先加载模型_修补预先训练的语言模型
  9. 学习笔记三:衍生兄弟——过冲和振铃
  10. IAR之IAR EWARM软件软件配置
  11. 商务人士适合用什么邮箱?一款商务人士必备的邮箱推荐
  12. 计算机网络接口 rj45类型,RJ45接口是什么 RJ45接口分类
  13. 卓普zp900s手机root和data大小调整经验
  14. i219v微星 驱动_Intel英特尔I217/I218/I219系列网卡驱动下载
  15. AcWing1102. 移动骑士
  16. Pipe——Python 的中缀语法库
  17. Pointnet2_pytorch代码复现
  18. ECP5701:TypeC PD取电,SINK,诱电,受电芯片
  19. sql语句大全(db2、oracle、mysql、sql server)
  20. 个人经典音乐收藏(七)Encore une fois,Helene Segara

热门文章

  1. TP5框架查询数据获取结果集为数组的办法
  2. 大型情感类电视连续剧--Android高德之旅(1)基础地图
  3. 一次因阿里云API引发的Spinnaker故障
  4. Git 常用指令大全
  5. 一、vue中当数据在父组件需要给子组件传递数据的时候,子组件输出为undefined
  6. CF1034A Enlarge GCD
  7. The Warriors []
  8. PHP正式开发第1日
  9. c语言结构体的对齐方式,C语言结构体内存的对齐知识详解
  10. linux所有用户都无法登录,记一次Linux用户无法登陆问题