什么是CI/CD 持续集成(Continuous Integration,CI):代码合并.构建.部署.测试都在一起,不断地执行这个过程,并对结果反馈.持续部署(Continuous Deployment,CD):部署到测试环境.预生产环境.生产环境.持续交付(Continuous Delivery,CD):将最终产品发布到生产环境,给用户使用. 高效的CI/CD环境可以获得:• 及时发现问题• 大幅度减少故障率• 加快迭代速度• 减少时间成本 接下来是实战: 环境说明: 192.168.1.3…
第1章 大纲 CI/CD, DevOps介绍 Git安装与使用 Jenkins安装与使用 权限管理 参数化构建 Master-Slave 流水线(Pipeline) 邮件通知 应用案例 自动发布PHP项目 自动发布JAVA项目 第2章 环境 操作系统:CentOS7.4 第3章  CI/CD, DevOps介绍 持续集成(Continuous Integration, CI) : 代码合并. 构建. 部署. 测试都在一起, 不断地执行这个过程, 并对结果反馈. 持续部署(Continuous D…
1 环境说明 主机名称 IP cpu核数/内存/硬盘 安装软件 用途 controlnode 172.16.1.120 2/2/60 git 代码仓库 slavenode1 172.16.1.121 2/2/60 jenkins.jdk jenkins主节点 slavenode2 172.16.1.122 2/2/60 jdk.maven.tomcat jenkins从节点2(用于构建和部署java程序) slavenode3 172.16.1.123 2/2/60 jdk.lnmp环境 jen…
一.前提 插件:Maven Integration plugin 环境: maven.tomcat 用的博客系统代码: git clone https://github.com/b3log/solo.git 远端git服务器: [git@git repos]$ mkdir -p solo [git@git repos]$ cd solo/ [git@git solo]$ git --bare init Initialized empty Git repository in /home/git/r…
一.概览 二.安装 在对jenkins进行初始化安装时,默认已经安装了jenkins的相关插件,如下图所示: 三.实操 新建任务: 编写pipeline脚本: 我们可以借助流水线语法去做. test流水线脚本: node { def mvnHome stage('git checkout') { // for display purposes checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmodu…
一. 背景 针对开发.运维.测试针对不同角色进行不同权限划分, 基于插件: Role-based Authorization Strategy来实现. 一. 安装 安装该插件: 系统管理->管理插件-可选插件->搜索该插件选中直接安装即可. 二. 开启该插件功能 系统管理->全局安全设置-授权策略->选中该插件功能即可->保存 三. 实践 我们可以先将该功能关闭来进行实践测试. 1.策略改回原来的(全局安全配置) 2.开启允许用户注册(全局安全配置) 3.注册一个新用户 登录…
一.前提 环境为:lnmp PHP项目:wordpress(此处我们下载一个wordpress的源码.将其模拟为我们的代码上传到我们的git仓库) 二.配置 1)创建job 2)参数化构建 3)配置pipeline脚本(此处采用git仓库获取脚本) 4)最后,保存 三.编写jenkinsfile 接下里编写jenkinsfile文件: jenkinsfile-PHP: 源码文件: node ("slave01-172.16.1.2") { stage('git checkout') {…
一. 前提 前提: 服务器开启邮箱服务: 二. 基础配置 需要安装一个插件: 插件: Email Extension Plugin 进行配置: 系统管理->系统设置-> 相关配置如下图: 图1: 图2: 可以在此处进行测试发送!!!!检验配置是否正确 三. 配置到项目中 步骤1: 在项目的配置中选择构建后操作 步骤中选择我们对应的插件: 填写发件人信息 此处配置构建成功发送邮件: 可以观察到控制台也有邮件发送成功输出: 检查实际是否接收到邮件:…
一.介绍 jenkins的Master-slave分布式架构主要是为了解决jenkins单点构建任务多.负载较高.性能不足的场景. Master/Slave相当于Server和agent的概念.Master提供web接口让用户来管理job和slave,job可以运行在master本机或者被分配到slave上运行构建.一个master(jenkins服务所在机器)可以关联多个slave用来为不同的job或相同的job的不同配置来服务. 二.安装 前提:slave所在服务器必须有java环境 jen…
一. 背景 如果只是简单的构建,jenkins自己默认的插件可以做,但是如果我们想要在构建过程中有更多功能,比如说:选择性构建.传参.项目指定变量等等其他功能,基础的参数化构建可以实现一些简单功能,但是要想使用更多功能这时候我们就需要借助参数化构建来实现交互的功能.此处我们来借助以下插件来进行实现: 1)Extended Choice Parameter(更丰富的参数化构建插件) 2)Git Parameter 二.Extended Choice Parameter 首先还是安装该插件,去管理插…
CI/CD 流水线是 DevOps 团队软件交付过程的基本组成部分.该流水线利用自动化和持续监控来实现软件的无缝交付.通过持续自动化,确保 CI/CD 流水线每一步的安全性非常重要.在流水线的各个阶段,通常需要访问凭据等敏感信息.保护这些信息对于保持强大的安全态势至关重要.本文将带你了解如何在 Jenkins CI/CD 流水线中保护密钥(Secrets). 转自 SEAL安全 在 CI/CD 流水线中使用 Secrets 如前所述,CI/CD 流水线通常需要访问敏感信息,如密码和 API 密钥…
Jenkins与Docker的自动化CI/CD实战 互联网Java架构 2018-09-19 15:46:13 一.发布流程设计 工作流程: 开发人员提交代码到Git版本仓库:Jenkins人工/定时触发项目构建:Jenkins拉取代码.代码编码.打包镜像.推送到镜像仓库:Jenkins在Docker主机创建容器并发布. 二.环境规划: 角色IPGit/Registry192.168.56.11Docker192.168.56.12Jenkins/Docker192.168.56.13 三. 部…
前言:一直以来想学习与实践一下敏捷开发,之前项目虽说口口声声我们项目是敏捷开发,其实很扯. 敏捷开发如果有持续集成.持续部署的支持,那样开发.测试.运维将节省不少精力. 此系列博客只为记录CI/CD的实践与学习: 一.PHP运行环境的准备(centos7.4下安装docker环境搭建 PHP7.1 + MySQL5.7环境,openresty1.13.6.1做代理服务器) 服务器环境:阿里云ECS 操作系统:centos7.4 1. 安装docker https://help.aliyun.co…
https://mp.weixin.qq.com/s/UfGmCueEm8n2jdegng1F_g CI/CD 最佳实践的基本原则 互联网后端架构 2020-10-04…
前言 在上一篇文章中,我们使用docker编写Dockerfile文件,将我们自己的项目构建成镜像,然后发布到Docker Hub中,并且用自己的云服务器拉取Docker Hub上我们自己上传的项目镜像,并且由该镜像运行容器,使得我们成功将自己的项目用docker运行了起来,并且外网访问测试通过. 如果还没有使用过docker自己构建过镜像的同学还是建议先阅读第一篇文章:传送门 在本篇文章中,将讲解使用jenkins帮助我们监听git仓库的变化,一旦有新的push到master分支,jenkin…
pipeline { agent any tools { //工具必须预先在jenkins中预配置 maven 'mvn' jdk 'jdk' } stages { stage('Env') { steps { sh 'printenv' } } stage('git') { steps{ checkout([$class: 'GitSCM', branches: [[name: '*/develop']], doGenerateSubmoduleConfigurations: false, e…
如何搭建持续集成/持续交付平台?? 如何使用jenkins搭建持续交付流水线,以及和其他工具(如artifactory)集成?如何使用元数据,记录软件发布过程的构建信息,测试结果,并用rest Api完全自动化发布软件? 一.Jenkins 1.Jenkins 是 Continous Integration Server,是 Hadson 的继续. 类似的产品: CruiseControl, BuildBot,TeamCity,BuildForge 等. Jenkins 的突出特点: 开源免费;…
2019.11.9 的中国.NET开发者峰会将在上海举办,到目前为止,大会的主题基本确定,这两天就会和大家会面,很多社区的同学基于对社区的信任在我们议题没有确定的情况下已经购票超过了300张,而且分享的主题都来自于社区,来自于生产实践之中的经验分享,内容之中有一点非常值得分享-基于k8s的微服务实践内容很多,但是每一个分享的时间只有30分钟,难以全面阐述k8s 这样的一个大主题,因此陈计节.陈作.刘腾飞和我又特别策划了一个11.10号的workshop活动,采用一天的时间来带领大家使用.NET…
forge的官网是: http://forge.sh forge工具是一个部署工具, 将你的应用自动更新到kubernets集群中, 只需要配置简洁的配置文件和模板即可. 其它的就交给forge, 它能帮你搞定的事情: 一般k8s更新应用需要以下步骤: 1. 点击jenkins 构建job, 或者通过webhook的方式出发. 2. 拉取项目代码 3. 编译.打包  例如 go build , mvn 等 4. 根据Dockerfile 打包镜像 6. 上传镜像到docker 镜像仓库,打镜像的…
一.CI/CD 持续集成(continuous Integration,CI):代码合并.构建.部署.测试都在一起.不断执行这个过程,并对结果反馈. 持续部署(Continuous Deployment,CD): 部署到测试环境.预生产环境.生产环境. 持续交付(Continuous Delivery,CD):将最终产品发布到生产环境,给用户使用 CI/CD 的最终目的是自动化,减少人工干预,提高总体的产品交付质量. 非容器化的CI/CD常出现因为环境不一致导致各种问题. Pipeline优势:…
[摘要] 持续集成/持续交付(CI/CD,Continuous Integration/Continuous Deployment)在DevOps CMALS理念中具有支柱性地位,因而CI/CD流水线至关重要,将实现应用程序的构建.测试.部署与发布等自动化,提升软件交付的效率与质量. 引言:在"DevOps能力之屋(Capabilities House of DevOps)"中,华为云DevCloud提出(工程方法+最佳实践+生态)×工具平台=DevOps能力.华为云DevCloud将…
Drone 是一个使用 Go 语言编写的自助式的持续集成平台,和 Gitea 一样可以完全基于容器部署,轻松扩展流水线规模.开发者只需要将持续集成过程通过简单的 YAML 语法写入 Gitea 仓库目录下的描述文件 .drone.yml 就可以完成 CI/CD 配置. 下面,我们以 gitea.com 服务器为例,搭建一套使用 Gitea 与 Drone 的 CI/CD 系统. 系统结构 Drone 由两部分构成: Server 负责任务调度 Runner 执行 Pipeline 的具体任务 用…
前言 上一篇博文 .NetCore 配合 Gitlab CI&CD 实践 - 开篇,主要简单的介绍了一下 GitLab CI 的持续集成以及持续部署,这篇将通过 GitLab CI 发布一个 .net core 项目,来带小伙伴们感受一下自动化的魅力,从此告别手动发布. 准备工作 创建一个空MVC项目来进行演示: mkdir hello-world cd hello-world dotnet new sln -n HelloWorld mkdir src cd src dotnet new mv…
前言 Gitea 是一个用于代码托管的轻量级单体程序,它能与现有的经典应用集成,诸如代码分析工具 SonarQube.持续集成工具 Drone.Jenkins 以及用于工单管理的客户端插件(VSCode.Jenkins IDE). 不久之后,Gitea 也将迎来自身集成的一体化 CI/CD 功能. 今天要介绍的是 Gitea 与 Jenkins CI/CD 的集成. 关于 Jenkins Jenkins 是一款开源的.提供友好操作界面的持续集成(CI)工具,在国内外都有众多的使用者.Jenkin…
预期目标 源代码管理 借助GitLab实现源代码托管,私有化部署版本,创建项目,创建用户组,分配权限,项目的签入/牵出等. 自动化部署 源代码产生变更时(如签入),自动化编译并发布到指定服务器中部署,借助GitLab-runner实现持续交付部署,供用户访问项目新版,这里用在开发环境. 环境说明 硬件基本要求:4核4G RHEL8 Linux operating system:这里用官网提到的 AlamLinux8(安装GitLab时,系统的 /boot 需要有1GB以上的空间) GitLab:…
引言 这是一个系列的文章,讲述的是一个中小型开发团队如何从零开始使用搭建基建 GitLab 代码托管平台,以及使用 GitLab Runner 实现 CI/CD 的故事.本系列通过部署一个完整的 .net core 项目来做配合实战,可能这个案例并不能适合每个人,但希望可以给刚接触 GitLab 以及 CI/CD 的小伙伴带来一些启发.对 GitLab 以及 CI/CD 有一定了解的,可以略过本文,直接开启下一章. Gitlab CI&CD 是什么? 如上官方图示,可以理解为 Gitlab 给开…
本周四晚上8:30,第二期k3s在线培训如约开播!本期课程将介绍k3s的核心架构,如高可用架构以及containerd.一起来进阶探索k3s吧! 报名及观看链接:http://z-mz.cn/PmwZ 本文来自Rancher Labs 在云原生领域中,Kubernetes累积了大量用例.它能够在云中部署应用容器.安排批处理job.处理工作负载以及执行逐步升级.Kubernetes使用高效的编排算法来处理这些操作,即便是大规模集群这些算法依旧表现良好. 此外,Kubernetes主要用例之一是运行…
本示例基于开源的 KubeSphere 容器平台 演示如何通过 GitHub 仓库中的 Jenkinsfile 来创建流水线,流水线共包括 8 个阶段,最终将一个 Hello World 页面部署到 Kubernetes 集群中的不同 namespace. 流水线概览 下面的流程图简单说明了流水线完整的工作过程: 流程说明: 阶段一. Checkout SCM: 拉取 GitHub 仓库代码 阶段二. Unit test: 单元测试,如果测试通过了才继续下面的任务 阶段三. sonarQube…
上一篇文章分享了如何在 KubeSphere 对公共的代码仓库 GitHub 和镜像仓库 DockerHub 创建流水线,本文将继续使用 KubeSphere,基于 Harbor 和 GitLab 创建流水线,将 Spring Boot 项目发布至 Kubernetes. KubeSphere 集成了 Harbor 和 GitLab,内置的 Harbor 和 GitLab 作为可选安装项,需在安装前进行配置开启安装.用户可以根据团队项目的需求来安装,方便对项目的镜像和代码进行管理,非常适合内网环…