在 CentOS 上部署 Jenkins + GitLab 的完整自动化 DevOps 环境,
用于后续实现 Spring Boot 项目的自动构建、Docker 镜像打包、K8s 部署流水线。
下面给你一整套企业级部署方案(适用于 CentOS 7 / 8 / Stream)。
🚀 一、总体目标
| 组件 | 作用 | 部署方式 |
|---|---|---|
| GitLab | 代码托管、版本管理 | Docker 容器部署 |
| Jenkins | 自动构建 / CI/CD | Docker 容器部署 |
| Docker | 基础运行环境 | 系统安装 |
| Kubernetes | 目标部署平台 | 已安装在 5 台 Linux 服务器上 |
| Harbor(可选) | 镜像仓库 | 选配(可后续补上) |
🧰 二、系统准备
在一台 CentOS 服务器上(建议内存 ≥ 8GB)执行以下命令:
sudo yum update -y
sudo yum install -y curl vim git wget net-tools firewalld
sudo systemctl stop firewalld && sudo systemctl disable firewalld
🐳 三、安装 Docker
# 卸载旧版本(如有)
sudo yum remove -y docker docker-client docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置阿里云 Docker 源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
测试 Docker:
docker run hello-world
🧱 四、部署 GitLab
GitLab 占用内存较高(推荐至少 4GB RAM)
1️⃣ 创建配置目录
mkdir -p /data/gitlab/config /data/gitlab/logs /data/gitlab/data
2️⃣ 启动容器
docker run -d \
--hostname gitlab.local \
-p 8443:443 -p 8081:80 -p 2222:22 \
--name gitlab \
--restart always \
-v /data/gitlab/config:/etc/gitlab \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
3️⃣ 修改 /etc/hosts
echo "127.0.0.1 gitlab.local" >> /etc/hosts
4️⃣ 首次登录
访问:http://gitlab.local:8081
等待约 3~5 分钟初始化。
默认管理员账户:root
密码位置:
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
⚙️ 五、部署 Jenkins
1️⃣ 创建目录
mkdir -p /data/jenkins
chmod 777 /data/jenkins
2️⃣ 启动容器
docker run -d \
--name jenkins \
-u root \
-p 8080:8080 -p 50000:50000 \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/jenkins:/var/jenkins_home \
jenkins/jenkins:lts
3️⃣ 查看管理员密码
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
访问:http://<你的服务器IP>:8080
输入初始密码,安装推荐插件。
🔑 六、配置 Jenkins 集成 GitLab
1️⃣ 在 Jenkins 安装插件:
- GitLab Plugin
- Git Parameter Plugin
- Pipeline Plugin
- Docker Pipeline
- Kubernetes Plugin
2️⃣ 在 GitLab 中创建 Access Token
进入:
用户头像 → Edit Profile → Access Tokens
勾选:
- api
- read_user
- write_repository
- read_repository
生成后复制 token。
3️⃣ 在 Jenkins 中配置 GitLab 连接
路径:
Manage Jenkins → Configure System → GitLab
添加 GitLab 服务器地址:
http://gitlab.local:8081
并填入刚才的 Token。
🧩 七、创建 Jenkins Pipeline(CI/CD)
新建一个任务:Pipeline
示例 Jenkinsfile:
pipeline {
agent any
environment {
IMAGE_NAME = "yls1997/myapp"
NAMESPACE = "myapp-dev"
}
stages {
stage('拉取代码') {
steps {
git branch: 'main', url: 'http://gitlab.local:8081/root/myapp.git'
}
}
stage('构建Jar') {
steps {
sh 'mvn clean package -DskipTests'
}
}
stage('构建镜像') {
steps {
sh 'docker build -t $IMAGE_NAME:latest .'
}
}
stage('推送镜像') {
steps {
sh 'docker push $IMAGE_NAME:latest'
}
}
stage('部署K8s') {
steps {
sh '''
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yaml
'''
}
}
}
}
🧩 八、验证部署
查看 Jenkins 任务状态:
docker logs -f jenkins
查看 GitLab 容器状态:
docker ps | grep gitlab
测试访问:
- Jenkins: http://<服务器IP>:8080
- GitLab: http://<服务器IP>:8081
✅ 九、部署完成后结构图
+--------------------------------------------------+
| DevOps 一体化平台 |
+--------------------------------------------------+
| GitLab 代码仓库 | Jenkins 自动构建 |
| ---------------- | ---------------------------- |
| 触发 push 事件 → 拉取代码 → 构建 Docker 镜像 |
| → 推送镜像 → 部署到 K8s |
+--------------------------------------------------+
、在centos上部署jekins、gitlab&spm=1001.2101.3001.5002&articleId=154800512&d=1&t=3&u=173d8683ab784b47b17e82129828634d)
26万+

被折叠的 条评论
为什么被折叠?



