登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
企业级DevOps系统服务搭建(Ubuntu)
企业级DevOps系统服务搭建(Ubuntu)
[ 复制链接 ]
敞撬
2025-6-1 18:19:11
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
系统架构概述
一个完整的企业级DevOps系统通常包含以下核心组件:
版本控制
:GitLab/Gitea
持续集成/持续部署(CI/CD)
:Jenkins/GitLab CI
容器编排
:Docker + Kubernetes
配置管理
:Ansible
监控告警
:Prometheus + Grafana
日志管理
:ELK Stack (Elasticsearch, Logstash, Kibana)
项目管理
:Jira/禅道 (可选)
环境准备
1. 系统要求
Ubuntu Server 20.04/22.04 LTS
建议配置:4核CPU,8GB内存,100GB存储(根据企业规模调整)
稳定的网络连接
2. 基础环境配置
# 更新系统sudo apt update && sudo apt upgrade -y
# 安装常用工具sudo apt install -y curl wget vim git net-tools
# 设置时区sudo timedatectl set-timezone Asia/Shanghai
# 关闭swap (Kubernetes需要)sudo swapoff -asudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
核心组件安装
1. 安装Docker和Docker Compose
# 安装依赖sudo apt install -y apt-transport-https ca-certificates software-properties-common
复制代码
# 添加Docker官方GPG密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
复制代码
# 添加Docker仓库echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
复制代码
# 安装Dockersudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io
复制代码
# 添加当前用户到docker组sudo usermod -aG docker $USERnewgrp docker
复制代码
# 安装Docker Composesudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose
复制代码
# 验证安装docker --versiondocker-compose --version
复制代码
2. 安装Kubernetes (可选)
# 添加Kubernetes仓库sudo apt install -y apt-transport-https ca-certificates curlsudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpgecho "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
复制代码
# 安装kubelet, kubeadm和kubectlsudo apt updatesudo apt install -y kubelet kubeadm kubectlsudo apt-mark hold kubelet kubeadm kubectl
复制代码
# 初始化Kubernetes集群 (在主节点上执行)sudo kubeadm init --pod-network-cidr=10.244.0.0/16
复制代码
# 配置kubectl (在主节点上执行)mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
复制代码
# 安装网络插件 (在主节点上执行)kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
复制代码
3. 安装GitLab (代码仓库和CI/CD)
# 安装依赖sudo apt install -y curl openssh-server ca-certificates postfix# 添加GitLab仓库curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
复制代码
# 安装GitLab (替换your-domain.com为您的域名)sudo EXTERNAL_URL="http://your-domain.com" apt install gitlab-ce
复制代码
# 初始配置完成后访问# http://your-server-ip
复制代码
# 首次访问需要设置root密码
复制代码
4. 安装Jenkins (CI/CD)
# 添加Jenkins仓库密钥curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
复制代码
# 添加Jenkins仓库echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
复制代码
# 安装Jenkinssudo apt updatesudo apt install -y jenkins
复制代码
# 启动Jenkinssudo systemctl enable jenkinssudo systemctl start jenkins
复制代码
# 查看初始管理员密码sudo cat /var/lib/jenkins/secrets/initialAdminPassword
复制代码
# 访问Jenkins# http://your-server-ip:8080
复制代码
5. 安装Prometheus + Grafana (监控)
使用Docker Compose安装:
# 创建docker-compose-monitoring.yml文件version: '3'services: prometheus: image: prom/prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' grafana: image: grafana/grafana ports: - "3000:3000" volumes: - grafana-storage:/var/lib/grafana depends_on: - prometheus node-exporter: image: prom/node-exporter ports: - "9100:9100" restart: unless-stoppedvolumes: grafana-storage:
复制代码
创建Prometheus配置文件 prometheus.yml:
global: scrape_interval: 15sscrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node-exporter' static_configs: - targets: ['node-exporter:9100']
复制代码
启动监控服务:
docker-compose -f docker-compose-monitoring.yml up -d
复制代码
6. 安装ELK Stack (日志管理)
# 创建docker-compose-elk.yml文件version: '3'services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.17.0 environment: - discovery.type=single-node - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata:/usr/share/elasticsearch/data ports: - "9200:9200" logstash: image: docker.elastic.co/logstash/logstash:7.17.0 volumes: - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf ports: - "5000:5000" depends_on: - elasticsearch kibana: image: docker.elastic.co/kibana/kibana:7.17.0 ports: - "5601:5601" depends_on: - elasticsearchvolumes: esdata:
复制代码
创建Logstash配置文件 logstash.conf:
input { tcp { port => 5000 codec => json } } output { elasticsearch { hosts => ["elasticsearch:9200"] index => "logstash-%{+YYYY.MM.dd}" } }
复制代码
启动ELK服务:
docker-compose -f docker-compose-elk.yml up -d
复制代码
系统集成与配置
1. 集成GitLab与Jenkins
(1)在GitLab中创建项目
(2)在Jenkins中安装GitLab插件
通过Jenkins管理界面安装(推荐)
登录Jenkins
打开浏览器,访问您的Jenkins地址(如:http://your-jenkins-server:8080)
使用管理员账号登录
进入插件管理页面
点击左侧导航栏的"Manage Jenkins"(管理Jenkins)
选择"Manage Plugins"(管理插件)
切换到可用插件标签页
点击"Available plugins"(可用插件)标签
在搜索框中输入"GitLab"进行过滤
选择并安装插件
GitLab Plugin
(核心插件,必须安装)
GitLab API Plugin
(提供API支持)
GitLab Authentication Plugin
(如需GitLab认证)
找到以下核心插件(建议全部安装):
勾选所需插件旁边的复选框
点击页面底部的"Install without restart"(不重启安装)或"Download now and install after restart"(下载并重启后安装)
等待安装完成
页面会显示安装进度条
安装完成后可能会提示需要重启Jenkins
重启Jenkins(如需要)
安装完成后,勾选"Restart Jenkins when installation is complete and no jobs are running"(当安装完成且没有任务运行时重启Jenkins)
或手动重启:
# 通过命令行重启sudo systemctl restart jenkins
复制代码
(3)配置Jenkins与GitLab的Webhook
前置条件
已完成 Jenkins 和 GitLab 的安装
已在 Jenkins 中安装 GitLab 插件
拥有 GitLab 项目的管理员权限
Jenkins 服务器可被 GitLab 访问(考虑防火墙/NAT设置)
第一部分:Jenkins 项目配置
1. 创建或配置 Jenkins 项目
新建项目
或
进入现有项目配置
:
点击 Jenkins 首页的 "新建项目" 或
选择现有项目 → 点击 "配置"
配置源码管理
:
选择 "Git"
填写 GitLab 仓库地址 (如 http://gitlab.example.com/group/project.git)
添加凭据(GitLab 用户名/密码或 SSH 密钥)
启用 GitLab 触发
:
找到 "构建触发器(Build Triggers)" 部分
勾选 "Build when a change is pushed to GitLab"
记录显示的 Webhook URL(如 http://jenkins.example.com/project/my-project)
高级设置(可选)
:
复制
[可选] 在 "高级" 设置中可以: - 设置允许的分支(白名单) - 配置合并请求(Merge Request)的构建策略 - 设置忽略的提交信息模式
复制代码
保存配置
:
点击页面底部的 "保存" 按钮
第二部分:GitLab Webhook 配置
2. 在 GitLab 中添加 Webhook
进入 GitLab 项目设置
:
导航到你的 GitLab 项目
点击左侧菜单 "Settings" → "Webhooks"
填写 Webhook 详情
:
在 Jenkins 项目配置的 GitLab 触发部分生成
复制并粘贴到 GitLab 的 "Secret Token" 字段
URL: 粘贴从 Jenkins 复制的 Webhook URL
Secret Token(可选但推荐):
选择触发事件
:
markdown
复制
推荐勾选:- Push events- Merge request events- Tag push events- Comments (可选,用于通过评论触发)
复制代码
SSL 验证(生产环境重要)
:
如果 Jenkins 使用 HTTPS,建议勾选 "Enable SSL verification"
确保 Jenkins 使用有效证书
测试 Webhook
:
点击 "Add webhook" 保存
添加后点击 "Test" → 选择 "
ush events"
观察 Jenkins 是否触发构建
(4)创建Jenkins Pipeline项目,使用Jenkinsfile定义CI/CD流程
2. 配置Kubernetes与Jenkins集成
(1)在Jenkins中安装Kubernetes插件
一、安装前准备
系统要求
运行中的 Jenkins 实例(版本 2.60.3 或更高)
访问 Kubernetes 集群的权限(kubeconfig 文件)
Jenkins 管理员权限
网络连通性(Jenkins 能访问 Kubernetes API Server)
推荐环境
# 验证 kubectl 配置kubectl cluster-info
复制代码
# 获取当前上下文kubectl config current-context
复制代码
二、安装 Kubernetes 插件
方法1:通过 Jenkins 管理界面安装(推荐)
登录 Jenkins 控制台
使用管理员账号访问 http://:8080
导航到插件管理
左侧菜单 → "Manage Jenkins" → "Manage Plugins"
安装插件
切换到 "Available" 标签页
搜索 "Kubernetes" 插件
勾选以下核心插件:
复制
✓ Kubernetes ✓ Kubernetes CLI ✓ Kubernetes Credentials
复制代码
下载并安装
点击页面底部的 "Install without restart"
或选择 "Download now and install after restart"
重启 Jenkins(可选)
# 通过命令行重启sudo systemctl restart jenkins
复制代码
方法2:通过 Jenkins CLI 安装
# 使用 Jenkins CLI 安装(需替换 JENKINS_URL)java -jar jenkins-cli.jar -s http://localhost:8080/ install-plugin kubernetes -deploy
复制代码
方法3:手动安装(离线环境)
从 Jenkins 插件中心 下载 .hpi 文件
在 "Advanced" 标签页上传插件
三、配置 Kubernetes 插件
基础配置步骤
进入系统配置
Manage Jenkins → Configure System
找到 Cloud 配置
滚动到 "Cloud" 部分 → 点击 "Add a new cloud" → 选择 "Kubernetes"
填写集群信息
Name: kubernetes # 连接名称Kubernetes URL: https://kubernetes.default.svc.cluster.local # 如果是集群内部署,使用上述内部地址
复制代码
# 外部访问使用 https://<external-ip>:6443
复制代码
配置凭据
"Kubernetes configuration (kubeconfig)":上传 kubeconfig 文件
"Secret text":直接粘贴 Service Account token
点击 "Add" → "Jenkins"
选择凭据类型:
测试连接:"Test Connection" 应显示 "Connected to Kubernetes v1.x.x"
高级配置项
Namespace: jenkins
复制代码
# 建议指定命名空间Jenkins URL: http://jenkins.jenkins.svc.cluster.local:8080
复制代码
# 集群内访问地址Jenkins tunnel: jenkins-agent.jenkins.svc.cluster.local:50000
复制代码
# 代理通信通道Pod Templates:
复制代码
# 配置动态创建的代理Pod - Name: jnlp Containers: - Name: jnlp Image: jenkins/inbound-agent:latest Resource Limits: CPU: 500m Memory: 512Mi
复制代码
四、验证安装
1. 创建测试流水线
// Jenkinsfile 示例pipeline { agent { kubernetes { label 'my-k8s-agent' yaml """ apiVersion: v1 kind: Pod metadata: labels: some-label: some-value spec: containers: - name: maven image: maven:3.8.6-jdk-11 command: ['cat'] tty: true - name: busybox image: busybox command: ['cat'] tty: true """ } } stages { stage('Run shell') { steps { container('maven') { sh 'mvn --version' } container('busybox') { sh 'echo "Hello from busybox"' } } } }}
复制代码
2. 观察 Pod 创建
# 在 Kubernetes 集群中查看kubectl get pods -n jenkins --watch
复制代码
(2)配置Kubernetes云,连接到您的Kubernetes集群
(3)创建Kubernetes部署的Jenkins Pipeline
3. 配置监控告警
在Grafana中配置Prometheus数据源
导入Kubernetes和服务器监控仪表板
配置告警规则和通知渠道
安全加固建议
防火墙配置
:
sudo ufw allow 22sudo ufw allow 80sudo ufw allow 443sudo ufw enable
复制代码
定期备份
:
GitLab数据
Jenkins配置
数据库数据
使用HTTPS
:
为所有Web服务配置SSL证书(可以使用Let's Encrypt)
访问控制
:
为所有服务配置强密码和双因素认证
使用LDAP/AD集成进行统一认证
维护与管理
定期更新
:
sudo apt update && sudo apt upgrade -ydocker-compose pull
复制代码
监控系统资源使用
:
使用Grafana监控服务器资源
设置资源使用告警
日志分析
:
定期检查Kibana中的系统日志
设置关键错误告警
扩展建议
高可用部署
:
考虑多节点Kubernetes集群
数据库主从复制
多云支持
:
配置Terraform实现多云部署
使用Ansible进行跨云配置管理
高级CI/CD功能
:
蓝绿部署
金丝雀发布
自动化测试集成
通过以上步骤,在Ubuntu系统上搭建一个功能完善的企业级DevOps系统,满足代码管理、持续集成、持续部署、监控告警等核心需求。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
企业级
DevOps
系统
服务
搭建
相关帖子
Quartz定时任务持久化(服务重启后自动恢复)
HiAgent vs Coze:企业级智能体平台大对比
Kubernetes集群的搭建与DevOps实践(下)- 部署实践篇
在windows平台搭建一个mini版本的k8s集群
多进程架构+多系统兼容,开发必备!
ROS2核心概念之服务
上海专业防水补漏服务:国家一级资质,免费勘察,根治渗漏
嵌入式系统内存魔法之分散加载
嵌入式系统内存魔法之分散加载
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
Quartz定时任务持久化(服务重启后自动恢复)
1
690
讲怔
2025-12-09
业界
HiAgent vs Coze:企业级智能体平台大对比
1
590
巫雪艷
2025-12-10
业界
Kubernetes集群的搭建与DevOps实践(下)- 部署实践篇
0
554
訾懵
2025-12-10
业界
在windows平台搭建一个mini版本的k8s集群
0
88
计海龄
2025-12-11
安全
多进程架构+多系统兼容,开发必备!
1
44
百里宵月
2025-12-11
业界
ROS2核心概念之服务
0
983
姨番单
2025-12-12
安全
上海专业防水补漏服务:国家一级资质,免费勘察,根治渗漏
0
937
山真柄
2025-12-13
业界
嵌入式系统内存魔法之分散加载
0
832
坪钗
2025-12-13
业界
嵌入式系统内存魔法之分散加载
0
746
梅克
2025-12-13
回复
(5)
窝酴
2025-11-22 07:53:07
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
用心讨论,共获提升!
荡俊屯
2025-11-22 22:38:31
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢分享,下载保存了,貌似很强大
麓吆
2025-12-3 22:53:52
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
鼓励转贴优秀软件安全工具和文档!
司空娅玲
前天 11:46
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,下载保存了,貌似很强大
高清宁
12 小时前
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
谢谢分享,试用一下
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
敞撬
12 小时前
关注
0
粉丝关注
24
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845356
3934307807
991123
4
xiangqian
638210
5
韶又彤
9999
6
宋子
9983
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
215
关于renpy游戏小范围QQ群内部测试的一个思
20
Java关键字解析之abstract:抽象的本质、规
444
10GB vs 600MB:我们弃用 GitLab,选择了这
160
Python 潮流周刊#131:从零开始构建智能体
871
flask基础知识深入——会话管理:Flask Ses
106
推荐几款免费免登录无损高质量图片压缩工具
639
玩转 | q群智能聊天机器人 —— MaiBot(麦
991
offline meta-RL | 近期工作速读记录
662
C#AI系列(5): C#离线实现高效OCR
195
这才是vibe coding正确的打开方式 - 手把手
547
huggingface_hub 1.0 正式版现已发布:开源
3
读捍卫隐私05数字照片
832
嵌入式系统内存魔法之分散加载
746
嵌入式系统内存魔法之分散加载
130
【Java】ThreadLocal源码解析
32
观察者模式,发布/订阅模式,与回调函数
700
用 GPT-5.2 Vibe Coding,做了一个可以“玩
937
上海专业防水补漏服务:国家一级资质,免费
359
基于深度学习的无人机视角检测系统演示与介
772
读书笔记 XILINX ug1137-Zynq UltraScale+