文章

安装gitlab

1 采用docker方式安装gitlab,系统为ubuntu24.04,gitlab版本为13.7.2-ce

1.1 安装docker

1.1.1 安装添加 Docker 仓库所需的前置软件包

sudo apt-get install ca-certificates curl gnupg lsb-release

1.1.2 添加GPG 密钥:

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

1.1.3 添加docker软件源:

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

1.1.4 更新软件包列表,以便系统识别新添加的 Docker 仓库:

sudo apt update

1.1.5 安装 Docker以及相关组件

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

查看docker版本

docker -v

1.2 安装docker-compose

项目地址:https://github.com/docker/compose/releases

1.2.1 下载docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

1.2.2 增加执行权限

sudo chmod +x /usr/local/bin/docker-compose

1.2.3 创建软链

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

注:github国内访问很慢,上面操作不建议,可以提前下载好docker-compose文件然后上传文件到/usr/local/bin,然后增加执行权限

sudo chmod +x /usr/local/bin/docker-compose

查看docker-compose版本

docker-compose –v

1.3 安装gitlab

1.3.1 新建文件夹,创建docker-compose.yml

sudo mkdir –p /docker/gitlab
cd /docker/gitlab
sudo vi docker-compose.yml

粘贴以下内容

   version: '3.6'
   services:
     web:
       image: 'gitlab/gitlab-ce:13.7.2-ce.0'
       container_name: gitlab
       restart: always
       hostname: '172.28.11.105'
       environment:
         TZ: 'Asia/Shanghai'
         GITLAB_OMNIBUS_CONFIG: |
           external_url 'http://172.28.11.105'
           # Add any other gitlab.rb configuration here, each on its own line
       ports:
         - '80:80'
         - '443:443'
         - '2222:22'
       volumes:
         - '/docker/gitlab/config:/etc/gitlab'
         - '/docker/gitlab/logs:/var/log/gitlab'
         - '/docker/gitlab/data:/var/opt/gitlab'
       shm_size: '256m'

因为从2024年6月份开始docker被墙了,所以要配置下仓库地址,否则无法pull镜像文件

1.3.2 配置镜像加速器

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.rainbond.cc"]
}
EOF
sudo systemctl daemon-reload      //重载配置文件
sudo systemctl restart docker       //重启docker

1.3.3 启动gitlab容器

docker-compose up -d

1.3.4 关闭防火墙或者放开端口

sudo ufw disable              //关闭防火墙

sudo ufw allow 80             //放开80端口
sudo ufw reload               //重载防火墙配置

2 linux安装包安装

2.1 更新系统包

sudo apt-get update
sudo apt upgrade

2.2 添加 GitLab 的 GPG 密钥

企业版:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
社区版:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

2.3 安装

到官网复制命令https://packages.gitlab.com/gitlab/gitlab-ce

sudo apt-get install gitlab-ce=17.1.1-ce.0

159.5.png

2.4 修改配置

vi /etc/gitlab/gitlab.rb

修改external_url 'http://ip'

2.5 重新加载配置

sudo gitlab-ctl reconfigure

2.6 查看root密码

cat /etc/gitlab/initial_root_password

2.7 访问gitlab

浏览器输入IP

159.6.png

查看gitlab版本命令
gitlab-rake gitlab:env:info

3 备份与恢复

3.1 文件备份

配置文件备份:备份etc/gitlab下的gitlab.rb和gitlab-sercrets.json
其余文件备份:上传的文件例如头像图片在/var/opt/gitlab/gitlab-rails/uploads下,需要备份

3.2 Docker环境下安装的gitlab的备份

sudo docker exec -t <container name> gitlab-backup create

文件生成在 data/backup下

3.3 Docker环境下安装的gitlab的恢复

前期工作,将备份文件放置data/backup目录下,将备份的gitlab.rb和gitlab-sercrets.json放入config目录下,其余文件放置/var/opt/gitlab/gitlab-rails/uploads下

3.3.1 进入容器

sudo docker exec -it gitlab /bin/bash 

3.3.2 停止服务

gitlab-ctl stop unicorn 
gitlab-ctl stop sidekiq

3.3.3 恢复备份

gitlab-backup restore BACKUP=1721694275_2024_07_23_13.7.2

中途报错

159.1.png

解决办法如下: 修改postgresql配置

vim /var/opt/gitlab/postgresql/data/postgresql.conf
listen_addresses = '*'  #修改为 *

159.2.png

vim /var/opt/gitlab/postgresql/data/pg_hba.conf     # 最下面新增两行,将原本的local那一栏注释
local   all         all                               trust  
host    all         all                               127.0.0.1/32 trust

159.3.png

gitlab-ctl restart  # 重启服务
su - gitlab-psql    # 修改gitlab账号为超级用户
/opt/gitlab/embedded/bin/psql -h 127.0.0.1 gitlabhq_production
psql (12.4)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help. 

gitlabhq_production=# ALTER USER gitlab WITH SUPERUSER;
ALTER ROLE
gitlabhq_production=# \q

159.4.png

3.3.4 重启gitlab

docker restart gitlab

3.4 非docker环境下的gitlab的备份

3.4.1 使用如下命令进行GitLab的备份:

执行命令(GitLab 12.1之后版本):gitlab-backup create
执行命令(GitLab 12.1及之前版本):gitlab-rake gitlab:backup:create
备份文件地址:/var/opt/gitlab/backups/

3.5 非docker环境下的gitlab的恢复

3.5.1 停止GitLab的数据库相关进程

gitlab-ctl stop sidekiq
gitlab-ctl stop puma

3.5.2 验证GitLab服务的状态

gitlab-ctl status

3.5.3 执行恢复

chmod 777 1721694275_2024_07_23_13.7.2_gitlab_backup.tar     //增加执行权限
sudo gitlab-backup restore BACKUP=1721694275_2024_07_23_13.7.2

3.5.4 重启gitlab

gitlab-ctl restart

4 更新

Gitlab升级需要遵循官方的升级路径进行升级,不可以跳过中间版本直接升级
升级路径查看:Upgrade Path (gitlab-com.gitlab.io)
13.7.2-13.8.8-13.12.15-14.0.12-14.3.6-14.9.5-14.10.5-15.0.5-15.4.6-15.11.13-16.3.7-16.7.8-16.11.6-17.2.0

4.1 docker方式升级

4.1.1 停止容器

docker-compose stop

4.1.2 修改docker-compose.yml

将image后面的版本号更改

4.1.3 重建

docker-compose up -d

License:  CC BY 4.0