GitLab及配套工具部署配置手册

GitLab及配套工具部署配置手册

一、Docker 方式部署 GitLab CE

1. 定义数据目录并创建子目录

# 定义GitLab数据根目录
GITLAB_HOME=/opt/gitlab
# 创建配置、日志、数据子目录
mkdir -p $GITLAB_HOME/config $GITLAB_HOME/logs $GITLAB_HOME/data

2. 启动 GitLab 容器

docker run --detach \
    --hostname gitlab.example.com \
    --env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com'" \
    --publish 443:443 --publish 80:80 --publish 2222:22 \
    --name gitlab \
    --restart always \
    --volume $GITLAB_HOME/config:/etc/gitlab \
    --volume $GITLAB_HOME/logs:/var/log/gitlab \
    --volume $GITLAB_HOME/data:/var/opt/gitlab \
    --shm-size 256m \
    gitlab/gitlab-ce:12.10.3-ce.0

3. 等待初始化并获取初始密码

# 提示用户等待容器初始化
echo "======================================"
echo "GitLab 容器已启动,正在进行首次初始化(需5-10分钟)..."
echo "请耐心等待,初始化完成后将自动输出登录密码!"
echo "======================================"

# 延时等待初始化完成(可根据服务器配置调整,建议至少5分钟)
sleep 300

# 自动提取并输出登录信息
GITLAB_ROOT_PWD=$(docker exec gitlab cat /etc/gitlab/initial_root_password 2>/dev/null | grep "Password: " | awk '{print $2}')
if [ -n "$GITLAB_ROOT_PWD" ]; then
    echo "======================================"
    echo "GitLab 首次登录信息:"
    echo "  用户名:root"
    echo "  密码:$GITLAB_ROOT_PWD"
    echo "======================================"
    echo "注意:该密码仅24小时内有效,首次登录后请立即修改新密码!"
else
    echo "======================================"
    echo "错误:未找到默认密码!可能是:"
    echo "  1. 容器初始化未完成(可延长sleep时间后重试)"
    echo "  2. 密码文件已过期(超过24小时)"
    echo "  3. 容器启动失败(可执行 docker logs gitlab 查看报错)"
    echo "======================================"
fi

二、RPM 包方式安装 GitLab CE

1. 下载并安装 RPM 包

# 从清华镜像源下载指定版本包
wget https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.10.3-ce.0.el7.x86_64.rpm
# 安装GitLab CE
yum install ./gitlab-ce-12.10.3-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure

2. 重置 admin 密码

# 进入GitLab控制台
gitlab-rails console -e production
# 在控制台执行以下命令(逐行输入)
irb(main):001:0> user = User.where(id: 1).first
irb(main):002:0> user.password = 'admin1234'
irb(main):003:0> user.password_confirmation = 'admin1234'
irb(main):004:0> user.save
irb(main):005:0> exit

三、安装并配置 GitLab Runner

1. 下载并安装 GitLab Runner

wget https://mirror.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/gitlab-runner-12.10.3-1.x86_64.rpm
yum install ./gitlab-runner-12.10.3-1.x86_64.rpm

2. 注册 GitLab Runner

gitlab-runner register \
    --non-interactive \
    --executor "shell" \
    --url "http://gitlab.example.com/" \
    --registration-token "pUtg5aEyD1b_wBvXfYvg" \
    --description "devops-runner" \
    --tag-list "build,deploy" \
    --run-untagged="true" \
    --locked="false" \
    --access-level="not_protected"

3. 配置 Runner 权限

# 创建docker用户组(如不存在)
groupadd docker
# 将gitlab-runner用户加入docker组
usermod -aG docker gitlab-runner

四、安装构建工具并配置环境变量

1. 解压安装各类构建工具

# 解压安装Maven
tar zxf apache-maven-3.6.3-bin.tar.gz -C /usr/local
# 解压安装Gradle
unzip -q gradle-5.3-bin.zip -d /usr/local
# 解压安装Node.js
tar Jxf node-v10.24.1-linux-x64.tar.xz -C /usr/local
# 解压安装Ant
tar zxf apache-ant-1.10.15-bin.tar.gz -C /usr/local
# 解压安装JDK8
tar zxf jdk-8u202-linux-x64.tar.gz -C /usr/local
# 解压安装Sonar Scanner
unzip -q sonar-scanner-cli-4.7.0.2747-linux.zip -d /usr/local

2. 配置系统环境变量

# 追加环境变量到系统配置文件
cat >>/etc/profile <<'EOF'

export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export ANT_HOME=/usr/local/apache-ant-1.10.15
export GRADLE_HOME=/usr/local/gradle-5.3
export NODE_HOME=/usr/local/node-v10.24.1-linux-x64
export SONAR_SCANNER_HOME=/usr/local/sonar-scanner-4.7.0.2747-linux
export JAVA_HOME=/usr/local/jdk1.8.0_202
export PATH=$PATH:$MAVEN_HOME/bin:$ANT_HOME/bin:$GRADLE_HOME/bin:$NODE_HOME/bin:$SONAR_SCANNER_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin

EOF

# 立即刷新环境变量
source /etc/profile

五、GitLab 额外配置

启用 JUnit 测试报告功能

gitlab-rails console -e production
# 在控制台执行以下命令
irb(main):001:0> Feature.enable(:junit_pipeline_view)
irb(main):002:0> exit

项目 CI/CD 环境变量配置(示例)

# 需在GitLab项目的CI/CD设置中添加以下环境变量
SONAR_SERVER_URL: "http://192.168.200.150:9000"
SONAR_SERVER_LOGIN: "9826fa31bde75a3bcfee755f42b8bc58cdcc2f82"

CI_REGISTRY="xxxx-xxxxxx.cn-chengdu.personal.cr.aliyuncs.com"
CI_REGISTRY_USER="aliyunxxxxxx"
CI_REGISTRY_PASSWD ="xxxxxx"

ARTIFACTORY_URL: "http://192.168.200.150:8081/repository/artifacts"
ARTIFACT_USER: "admin"
ARTIFACT_PASSWD: "xxxxxx"

六、部署代码质量检测工具 SonarQube

1. 启动 SonarQube 容器

docker run -d \
  --name sonarqube \
  -p 9000:9000 \
  -e TZ=Asia/Shanghai \
  -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true \
  --restart=always \
  sonarqube:8.9.10-community

初始账号密码:admin/admin

2. 配置多分支插件

# 进入SonarQube容器
docker exec -it sonarqube /bin/bash
# 在容器内添加插件配置
bash-5.1# echo "sonar.web.javaAdditionalOpts=-javaagent:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.8.3.jar=web" >> /opt/sonarqube/conf/sonar.properties
bash-5.1# echo "sonar.ce.javaAdditionalOpts=-javaagent:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.8.3.jar=ce" >> /opt/sonarqube/conf/sonar.properties
bash-5.1# exit
# 重启容器使配置生效
docker restart sonarqube

七、部署制品仓库 Nexus3

1. 启动 Nexus3 容器

docker run -d \
  --name nexus3 \
  -p 8081:8081 \
  -e TZ=Asia/Shanghai \
  --restart=always \
  -v /opt/nexus-data:/nexus-data \
  --user=root \
  sonatype/nexus3

2. 查看初始密码

cat /opt/nexus-data/admin.password

初始用户名:admin

总结

  1. GitLab 支持 Docker 容器和 RPM 包两种部署方式,容器部署需注意数据目录挂载和初始化等待时间;

  2. 配套工具包含 GitLab Runner(CI/CD 执行器)、SonarQube(代码检测)、Nexus3(制品仓库),需按顺序部署配置;

  3. 构建工具(JDK、Maven 等)需配置系统环境变量才能全局使用,且需确保解压路径与环境变量配置一致。

posted @ 2026-02-06 16:48  wanghongwei-dev  阅读(24)  评论(0)    收藏  举报