登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
每日签到
每天签到奖励2圆-6圆
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
VIP申请
VIP网盘
网盘
联系我们
每日签到
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
企业级DevOps系统服务搭建(Ubuntu)
企业级DevOps系统服务搭建(Ubuntu)
[ 复制链接 ]
敞撬
2025-6-1 18:19:11
系统架构概述
一个完整的企业级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
系统
服务
搭建
相关帖子
分布式系统-秒杀
多cms养站系统【AI原创】
让服务来“敲门”!HarmonyOS 近场能力激活服务找人新价值
企业级LLM已经到了next level:LangChain + DeepSeek = 王炸
高压直流系统及相关电气件
挑战用飞算JavaAI 半小时搭建 spring boot 入门程序 #飞算JavaAI炫技赛 #Java开发
软考高级“系统架构设计师”学习笔记
Linux系统编程入门(下)
软考高级“系统架构设计师”论文——论微服务架构及其应用
推荐系统中神经网络超参数调优—经验顺序方法
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
分布式系统-秒杀
0
616
辅箱肇
2025-09-01
软件
多cms养站系统【AI原创】
0
57
新程序
2025-09-02
业界
让服务来“敲门”!HarmonyOS 近场能力激活服务找人新价值
0
746
纪睐讦
2025-09-02
业界
企业级LLM已经到了next level:LangChain + DeepSeek = 王炸
0
80
倡粤
2025-09-06
安全
高压直流系统及相关电气件
0
384
恿深疏
2025-09-06
业界
挑战用飞算JavaAI 半小时搭建 spring boot 入门程序 #飞算JavaAI炫技赛 #Java开发
0
828
橘芜
2025-09-06
安全
软考高级“系统架构设计师”学习笔记
0
453
渭茱瀑
2025-09-07
业界
Linux系统编程入门(下)
0
781
卜笑
2025-09-07
安全
软考高级“系统架构设计师”论文——论微服务架构及其应用
0
938
乱蚣
2025-09-08
安全
推荐系统中神经网络超参数调优—经验顺序方法
0
68
港髁
2025-09-10
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
敞撬
2025-6-1 18:19:11
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
杭环
9988
凶契帽
9988
4
氛疵
9988
5
黎瑞芝
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
蝓俟佐
9984
10
虽裘侪
9984
查看更多