CI/CD流水线
文章平均质量分 89
Jenkins构建CI/CD流水线
木讷大叔爱运维
对的那条路,往往不是最好走的!
展开
-
传统架构应用快速横向扩容PK容器!
本次PK,传统架构虽然输了,但也并不是一败涂地。至少让我发现只要细心,坚持标准化、原子化、场景化的原则,我们还是有很大空间可以提升的。容器给了我们目标和方向,剩下就要看我们自己了。原创 2022-11-14 10:02:42 · 532 阅读 · 0 评论 -
让运维理直气壮的用数据说话!
在DevOps中有研发效能,如今放到运维自动化中,我们也需要重视下运维效能,运维也要理直气壮的用数据说话!原创 2022-10-16 19:33:48 · 533 阅读 · 0 评论 -
流水线:如何做到应用分钟级上线交付?
通过流水线我们实现了应用的分钟级交付,整个过程涉及到了基础的标准规范、配置管理工具、流水线等,因此需要在前期做大量的基础规划工作。另,通过容器化的解决方案其实可以将整个过程提升到秒级交付,这对传统应用来说简直是一个降维打击。因此企业最终推动容器化进程,向云原生领域迈进将是大势所趋。原创 2022-09-02 08:13:59 · 885 阅读 · 0 评论 -
Pipeline支撑运维自动化:Zabbix屏蔽/恢复监控
屏蔽/恢复告警 只作为系统监控级模块的原子操作,我们可以灵活地将其复用到其他流水线中,很好的满足了我们对不同场景的需求。原创 2022-03-21 19:47:05 · 1912 阅读 · 0 评论 -
Pipeline支撑运维自动化:sftp原子模块
随着对接的渠道越来越多,繁杂的sftp的权限配置将成为我们的一个负担,因此我们将此需求提取成一个原子模块,通过Pipeline编排的形式来处理。原创 2022-02-26 15:53:32 · 1124 阅读 · 0 评论 -
后话:PipeLine支撑运维自动化
Pipelin支撑起了各个动作的具体实现,各条Pipeline还可以被其他Pipeline调用,非常的灵活。原创 2022-02-23 08:24:03 · 901 阅读 · 0 评论 -
Jenkins 和 CMDB 优雅的互动
CI/CD参数中需提前知道目标主机的IP,对执行构建人员来说很不友好。那么我们能不能参照DNS的套路,通过特定的名称查询CMDB来获取IP呢?*原创 2022-01-12 20:29:49 · 1328 阅读 · 0 评论 -
CI/CD支撑运维自动化:系统监控级原子模块
通过pipeline对以上原子模块进行编排来满足不同场景的需求。原创 2021-12-28 08:34:34 · 877 阅读 · 0 评论 -
CI/CD如何支撑运维自动化
CI/CD不仅能够在企业DevOps进程中发挥重要作用,其实在运维自动化过程中也能做到足够有效的支撑。因此如果我们只将其当作成一个打包工具就大错特错了,其带给我们思想上的转变则更加有意义。原创 2021-12-06 16:41:04 · 1795 阅读 · 0 评论 -
docker-compose编排实现java多环境交付
简介Jenkins+Docker+git多分支实现springboot项目多环境快速交付一文我们介绍了CI/CD交付springboot项目过程中的环境校验、发版/回滚/重启、操作校验等步骤,在实际应用过程中有几点思考:构建前的运行参数定义构建前我们只按规范定义了APP_NAME(项目名)、IMAGE_NAME(镜像名)、MONITOR_URL(健康检查URL),相关的JVM参数、端口映射等与实际运行的参数仍然需要在后续的容器运行时手动修改,增加了配置难度,因此我们考虑将其提取到环境变量统一设置,原创 2021-08-28 13:18:29 · 911 阅读 · 0 评论 -
jenkins通过Docker plugin部署slave
Jenkis分布式预热Jenkins是Master-Slave架构,Master节点提供Web GUI 和API来管理、分配、运行构建任务;Slave节点只是用来运行Master节点分配的构建任务;因此Slave可以有效减轻Master的工作负载,这也意味着Slave节点可以分布在不同平台并且无需安装jenkins的完整包。Master和Slave通信方式:Master->Slave...原创 2020-03-30 16:28:43 · 2186 阅读 · 0 评论 -
Jenkins+Ansible:助力基础设施建设
这是我参与8月更文挑战的第11天。简述《ansible自动化:操作系统初始化具体实现》《ansible自动化:基础软件的自定义安装》两篇文章我们虽然通过ansible在字符界面满足了操作需求,但是这并不友好。我们希望团队内每个人都能直接上手无缝使用,因此就需要一个图形化界面来提高可操作性。在此我们借助Jenkins+Ansible 来实现图形化的参数化构建过程:我们在输入IP后,根据选择的PLAYBOOK(剧本),再进一步选择不同的TAG(标签),就可以按需自动化实现我们的需求。下面就来讲解下我原创 2021-08-13 22:02:08 · 2761 阅读 · 2 评论 -
Jenkins多分支流水线:Webhook按分支触发自动构建
需求Jenkins多分支流水线(Multibranch Pipeline )项目类型能够在同一个项目的不同分支上实现不同的Jenkinsfile。在多分支流水线项目中, Jenkins 自动的发现、管理和执行在源代码控制中包含Jenkinsfile的分支的流水线,这消除了手动创建和管理流水线的需要。在实际应用中,我们经常需要Git+Jenkins实现代码提交触发Job的自动构建。对于普通Job,webhook自动触发即可;但是对于多分支流水线,每次webhook触发的可能是master、develop或原创 2020-06-23 07:50:40 · 12051 阅读 · 9 评论 -
Jenkins+Docker+git多分支实现springboot项目多环境快速交付
简介jenkins通过Docker plugin部署slave中我们实现了spring项目在jenkins slave上动态构建。但是在实际CI/CD应用过程中,运维可能以下问题:环境校验springboot项目的多个git分支,不同分支对应不同的环境。例如:develop分支对应测试环境,master分支对应生产环境。运维部署过程中稍有疏忽,可能导致应用错用环境配置,给测试、生产引入不必要的问题。因此我们增加环境校验,来保证不同的分支使用正确的环境配置文件。发版/回滚/重启发版过程中不仅原创 2020-06-03 08:38:12 · 1138 阅读 · 1 评论 -
K8S+Jenkins实现SpringBoot项目的CI/CD
需求Jenkins master位于k8s集群外,实现jenkins slave的动态构建、k8s+jenkins中使用自定义maven镜像两篇文章实现了K8S+Jenkins+Maven基础环境,通过此环境我们进一步实现SpringBoot项目的CI/CD。K8S+Jenkins+Maven基础环境目前能够实现:Jenkins slave在K8S集群内的动态构建;Maven实现编译、打包、构建镜像并push到远程docker仓库;剩下的工作需在Jenkins流水线中调用kubectl 命令实原创 2020-08-21 10:10:27 · 2551 阅读 · 2 评论 -
jenkins流水线之pxe安装系统及系统初始化
简介之前通过jenkins+ansible实现了系统初始化的功能,另外内部还有一套tftp+dhcp+pxe实现的操作系统自动安装。虽然给工作带来了方便,但是仍需运维人员进行人工干预,借助于jenkins的流水线,我们在此将两项工作进行结合,自动化执行。规划jenkins构建时,通过传入IP及选择不同的操作系统模板参数,使用相应的修改后模板,进行不同规范的操作系统安装。注意: 结合我们的生...原创 2019-07-15 17:55:13 · 1234 阅读 · 0 评论 -
k8s+jenkins中使用自定义maven镜像
简述在k8s中使用工具不能像传统方式那样,在宿主机yum或编译安装,然后再挂载到容器中使用了;因为pod运行的节点不是固定的,如果继续按照传统方式,需要在pod可能运行的每个节点上都安装工具,这无疑非常繁琐!好在,现在的工具基本都支持docker部署,这样只需将工具的docker化添加到pod中,k8s就可以灵活使用了。需求k8s+jenkins中直接使用官方maven镜像虽然也可以打包,但是打包过程中下载存储在repository中依赖会随着容器的销毁而丢失,这样在下次打包时需要重新下载,严重影响原创 2020-08-07 16:17:01 · 2786 阅读 · 2 评论 -
Jenkins流水线即代码之扩展共享库初体验
简介Jenkin的多分支流水线,允许Jenkinsfile与需要 Jenkins 构建的应用程序代码放在一起,然后 Jenkins 从源代码管理系统中检出 Jenkinsfile 文件作为流水线项目构建过程的一部分并接着执行你的流水线。Jenkins这种构建方式正是“谁构建,谁运行”DevOps理念的一种体现。由于流水线代码(特别是脚本式流水线)是使用类似 Groovy 的语法编写的,因此我们要想学习需要了解Groovy的语法。目录结构共享库的目录结构如下:(root)+- src原创 2020-05-21 08:08:29 · 1928 阅读 · 0 评论 -
Jenkins master位于k8s集群外,实现jenkins slave的动态构建
简述Jenkins基于"kubernetes plugin"与k8s集成,可以使Jenkins slave以pod的形式在k8s集群内部动态构建、运行、销毁等。通过 jenkinsci/kubernetes-plugin 了解到,Jenkins master既可以运行在k8s集群内,也可运行在k8s集群外,但是Jenkins slave的整个生命周期都是在k8s集群内,并且通过JNLP与Jenkins master连接。要想Jenkins master在k8s运行,我们必须提前创建StatefulSe原创 2020-08-07 13:48:26 · 5368 阅读 · 1 评论