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
总结
-
GitLab 支持 Docker 容器和 RPM 包两种部署方式,容器部署需注意数据目录挂载和初始化等待时间;
-
配套工具包含 GitLab Runner(CI/CD 执行器)、SonarQube(代码检测)、Nexus3(制品仓库),需按顺序部署配置;
-
构建工具(JDK、Maven 等)需配置系统环境变量才能全局使用,且需确保解压路径与环境变量配置一致。
作者:wanghongwei
版权声明:本作品遵循<CC BY-NC-ND 4.0>版权协议,商业转载请联系作者获得授权,非商业转载请附上原文出处链接及本声明。

浙公网安备 33010602011771号