一.说明 1.1 说明 前面介绍采用 Jenkinsfile + KubernetesPod.yaml 方式进行部署项目(Rancher 构建 CI/CD 自动化流程 - 动态配置 Jenkins-slave(一)),maven.kubectl 等容器工具需要在 KubernetesPod.yaml 中定义,一同存放在代码仓库中托管,比较繁琐. 这里采用 Jenkinsfile + docker in docker 方式进行部署,把 maven 等工具都运行在 docker 容器中,这样减少了…
一.说明 1)需求: Rancher 上部署 Jenkins-master,服务采用 Jenkins-slave 发布,发布完成后 Jenkins-slave 自动销毁. 2)环境: Rancher 2.2.7 (部署Rancher参考之前文章:离线安装 Rancher2.2.4 HA 集群) Jenkins 2.176.2 二.安装 Jenkins 2.1 安装 Jenkins 在 Rancher 2 上部署 Jenkins-master 1)添加工作负载 名称:jenkins-master…
转载自:https://www.cnblogs.com/wellful/archive/2004/01/13/10604151.html 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不少人踩到过很多坑. 很多公司没有把配置独立出去,代码的构建.发版通过一个Jenkins job实现,这样很不好.弊端如下: 如果你有N个环境,你将会有N次编译.N次配置.产生N个包.发布N次......: 配置变更困难,可读性比较差: 版本发布总体时间长等等. 事实上我们需要: 一次构建多次发布:…
Jenkins CI&CD 自动化发布项目实战(下篇) 作者 刘畅 时间 2020-12-04 实验环境 centos7.5 主机名 ip 服务配置 软件 gitlab 172.16.1.71 2核/4G/60G docker.gitlab jenkins-master 172.16.1.72 2核/4G/60G docker.jdk.maven.jenkins jenkins-slave01 172.16.1.73 2核/2G/60G jdk.maven.ansible java-web01…
Jenkins CI&CD 自动化发布项目实战(上篇) 作者 刘畅 时间 2020-11-28 实验环境 centos7.5 主机名 ip 服务配置 软件 gitlab 172.16.1.71 2核/4G/60G docker.gitlab jenkins-master 172.16.1.72 2核/4G/60G docker.jdk.maven.jenkins jenkins-slave01 172.16.1.73 2核/2G/60G jdk.maven.ansible java-web01…
1. CI/CD 1.1 CI - 持续集成 持续集成( Continuous integration , 简称 CI )指的是,频繁地(一天多次)将代码集成到主干.持续集成的目的就是让产品可以快速迭代,同时还能保持高质量.它的核心措施是代码集成到主干之前,必须通过自动化测试.只要有一个测试用例失败,就不能集成.通过持续集成团队可以快速的从一个功能到另一个功能,简而言之,敏捷软件开发很大一部分都要归功于持续集成. 持续集成的组成要素 一个自动构建过程, 从检出代码. 编译构建. 运行测试. 结果…
前言:因为找了B站内推,测试开发,正好知道内部使用GitLab做自动化测试,所以简单学了一下,有错误的地方请指正. 入门 初始化 cp: 无法获取'/root/node-v12.9.0-linux-x64' 的文件状态(stat): 权限不够 原因:源地址或目标地址有问题 E212:无法打开并写入文件 原因:权限不够;解决:从root权限终端打开sudo su 安装启动Nginx: # 启动 nginx # 停止 nginx stop # 安全退出 nginx -s quit # 重新加载配置文…
至于nginx的docker制作,前面已介绍过. 现在使用gitlab在线编辑的方式,可实现Nginx的自定义配置并更新. .gitlab-ci.yml内容如下: variables: project_root: ./nginx www_root: /nginx/conf.d stages: - deploy php-deploy: when: manual stage: deploy script: - ls - echo deploy - sh -x deploy.sh tags: - ph…
[注意:]jenkins的docker镜像,需要从官网进入直接获取,其他地方获取到的docker镜像,可能因为Jenkins版本过低,导致后续插件安装失败等问题!!! ============================================================================================ 1.拉取镜像 需要从官网进入:https://jenkins.io/download/ 命令: docker pull jenkins/jenki…
一.需求 结合上一篇,使用djcelery模块开发定时任务时,定时任务的参数都保存在djcelery_periodictask表的args.kwargs字段里,并且是json格式.那么,当定时任务多了之后,批量修改定时任务的某个参数时很草蛋, 比如,我的平台目前有100多个定时任务,定时任务的功能就是去生产数据库里执行SQL,并将结果生成excel表,然后自动发送给相关收件人.定时任务的参数就是SQL语句.生产库IP.收件人地址等等,当运营部门说, 我们需要在20个定时任务里增加3个人员的收件人…
本篇适用于jenkins是启动的docker容器,自动安装JDK  Maven  Git   Docker等全局工具 ============================================================= docker启动的Jenkins容器 - 系统管理 - 全局工具配置 - 自动安装JDK.Maven.Git.Docker 1.打开系统管理---全局工具配置 2.配置JDK的自动安装[可以安装多个,根据项目JDK版本需求] JDK名称自定义 勾选自动安装[…
环境说明 一台git服务器(192.168.169.7),安装gitlab,docker. 一台web服务器(192.168.169.6),安装git,gitlab runner,docker,dotnet sdk. 为了方便讲述,给两台服务器取个别名吧,7酱和6酱…
每日一句 没有人会因学问而成为智者.学问或许能由勤奋得来,而机智与智慧却有懒于天赋. 前提概要 Jenkins下用DockerFile自动部署Java项目,项目的部署放心推向容器化时代机制. 本节需要对jenkinsfile有点了解,对dockerfile有点了解,对shell有点了解,对docker有点了解 环境准备 新建-构建一个Maven项目 需要提一下,现在新安装的没有这个选项,需要在插件里安装一下 Maven Integration java配置,其他配置查看以前文章 发布到服务器,D…
因为需要需要搭建一套自动化环境的windows电脑作为slave,简单的把原来用来mac上的job配置一模一样的配置了下,运行时遇到如上问题,google半天百思不得其解, 后来尝试把SCM里面的branch specifier 由原来的 ${sha1}去掉,愉快解决问题,遂记录下…
[前言] 一年多以前就听说Jenkins了,那时知道是它可以完成自动构建,感觉蛮强大的.后来,很多人都说它很恶心.最近,公司需要搭建新的服务器,小编就负责从头开始配置并且发布部署成功每一条线每一个项目.构建的时候不可避免的会遇到各种各样的问题,不过总结一下,其实它的问题也不是那么复杂. [代码环境问题] 1.环境问题 如上图错误为IDE中的jdk版本不一致造成的. 2.代码问题 代码本身报错,即提交到svn上的代码有问题. [权限不足] 解决办法: 给当前用户以及文件路径权限. 具体操作办法可使…
前面已经完成了 二进制部署Kubernetes集群,下面进行CI/CD集成. 一.流程说明 应用构建和发布流程说明: 1.用户向Gitlab提交代码,代码中必须包含Dockerfile: 2.将代码提交到远程仓库: 3.用户在发布应用时需要填写git仓库地址和分支.服务类型.服务名称.资源数量.实例个数,确定后触发Jenkins自动构建: 4.Jenkins的CI流水线自动编译代码并打包成docker镜像推送到Nexus镜像仓库: 5.Jenkins的CI流水线中包括了自定义脚本,根据我们已准备…
搭建平台目的: k8s中搭建jenkins master/slave架构,解决单jenkins执行效率低,资源不足等问题(jenkins master 调度任务到 slave上,并发执行任务,提升任务执行的效率) CI/CD环境特点: Slave弹性伸缩 基于镜像隔离构建环境 流水线发布,易维护 一.环境准备 服务名 地址 版本 k8s-master 10.48.14.100 v1.22.3 k8s-node1 10.48.14.50 v1.22.3 k8s-node2 10.48.14.51…
一.各个组件的功能描述: Docker 是一个开源的应用容器引擎. Jenkis 是一个开源自动化服务器. (1).负责监控gitlab代码.gitlab中配置文件的变动: (2).负责执行镜像文件的构建.上传与下载; (3).通过Rancher插件系统构建stack/service; GitLab: 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具. (1).保存项目配置文件; (2).nginx定制配置文件; (3).Dockerfile文件; Harbor:开源的docker镜…
前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费.函数计算更多信息参考. Funcraft:Funcraft 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算.API 网关.日志服务等资源.它通过一个资源配置文件(templa…
CI/CD 流水线是 DevOps 团队软件交付过程的基本组成部分.该流水线利用自动化和持续监控来实现软件的无缝交付.通过持续自动化,确保 CI/CD 流水线每一步的安全性非常重要.在流水线的各个阶段,通常需要访问凭据等敏感信息.保护这些信息对于保持强大的安全态势至关重要.本文将带你了解如何在 Jenkins CI/CD 流水线中保护密钥(Secrets). 转自 SEAL安全 在 CI/CD 流水线中使用 Secrets 如前所述,CI/CD 流水线通常需要访问敏感信息,如密码和 API 密钥…
时至今日,越来越多的工程团队开始实行敏捷开发,借以推动更短.更快的发布周期.而代码库的增长与更高的生产构建频率,也带动持续集成与持续部署/交付工具快速兴起.如果您有意提升发布频率,或者是不太清楚哪些工具能够帮助您达成这一目标——别担心.在今天的文章中,我们将探讨一系列最流行的CI / CD工具,并对其特性作出剖析. 什么是CI / CD?其意义何在? 在深入研究CI / CD自动化工具之前,我们首先需要了解其基本概念.正如我们所提到的,持续集成和持续部署通常与敏捷开发环境齐头并进.在这类环境中,…
Jenkins Jenkins是CI市场中最知名且最常见的名号之一.其最初是由Sun公司的一位工程师打造的一个辅助项目,并迅速扩展为最大的开源CI工具之一,可帮助工程团队实现自动化部署.顺带一提:我们OverOps也在使用Jenkins以及自己开发的CLI工具. 它有什么作用? 与其它CI工具一样,Jenkins可以自动构建.测试及部署任务.该工具支持Windows.Mac OSX以及各类Unix系统,可以使用本机系统软件包以及Docker进行安装,也可以在安装了Java Runtime Env…
近两个月由于个人处于新环境.新项目的适应阶段,没怎么提笔写些文章.中间有好几个想法想记录下来分享,但受限于没有很好的时间段供自己总结思考(也可以总结为间歇性懒癌和剧癌发作),便啥也没有更新.借这个周末闲适的下午和明媚的阳光,决定把近来项目上的CI/CD(持续集成/持续交付)策略以及git分支模型和以前的项目做一下分析比较,希望对各位有所帮助,也能有所思考,尤其是那些期望搭建项目部署流水线或者想了解git分支模型的开发.运维人员.背景  废话不多说,由于近期做了N次release,所以对自己目前所…
随着项目的不断增多,最开始单体项目手动执行 docker build 命令,手动发布项目就不再适用了.一两个项目可能还吃得消,10 多个项目每天让你构建一次还是够呛.即便你的项目少,每次花费在发布上面的时间累计起来都够你改几个 BUG 了. 所以我们需要自动化这个流程,让项目的发布和测试不再这么繁琐.在这里我使用了 Jenkins 作为基础的 CI/CD Pipeline 工具,关于 Jenkins 的具体介绍这里就不再赘述.在版本管理.构建项目.单元测试.集成测试.环境部署我分别使用到了 Go…
CI / CD方法简介 软件开发的持续集成基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性.从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预. 它涉及在每次小迭代中不断构建,测试和部署代码更改,从而减少基于有缺陷或失败的先前版本开发新代码的风险. 这有三种主要方法,每种方法都根据最适合您的策略进行应用. 持续集成(Continuous Integration, 简称CI) 考虑一个应用程序,其代码存储在GitLab中的Git存储库中.开发人员每天多次推送代码更改.…
1 - CI与CD的联系与区别 持续集成(Continuous Integration).持续交付(Continuous Delivery)和持续部署(Continuous Deployment)的过程,其实就是一个软件开发优化的过程. 统一流程:自动化地触发编译.集成.测试.交付和部署 保证集成的有序性.可靠性,减少版本发布的不合规性,避免手工打包.测试不充分等 版本可控,问题可追溯:可以回溯到具体版本 三者有着不同的目的 持续集成的目的是尽早发现问题 持续交付的目的是实现快速发布 持续部署的…
本文档不讲解jenkins的基础用法,主要讲解配合k8s的插件,和pipeline的用途和k8s ci/cd的流程. 以及部署在k8s集群内和集群外的注意事项. 1.准备工作 以下在整个CI/CD流程中需要使用到的插件,可能有时候pipeline等插件没安装,这里不做记录. 插件 版本 用途 Kubernetes 1.18.1 1.Kubernetes集群中运行动态代理,简单来说就是使用改插件运行jenkins slave镜像 Kubernetes Continuous Deploy 2.1.0…
前言 Gitea 是一个用于代码托管的轻量级单体程序,它能与现有的经典应用集成,诸如代码分析工具 SonarQube.持续集成工具 Drone.Jenkins 以及用于工单管理的客户端插件(VSCode.Jenkins IDE). 不久之后,Gitea 也将迎来自身集成的一体化 CI/CD 功能. 今天要介绍的是 Gitea 与 Jenkins CI/CD 的集成. 关于 Jenkins Jenkins 是一款开源的.提供友好操作界面的持续集成(CI)工具,在国内外都有众多的使用者.Jenkin…
Github 原生 CI/CD,初尝 Github Actions Intro Github 目前已经推出了自己的 CICD 服务 -- Github Actions,而且比微软的 Azure DevOps Pipelines 对开发者来说更友好,使用起来更好用. Github Actions 核心概念 总体看下来感觉是从 Azure Pipelines 迁移过来的东西,有许多概念和 Azure Pipelines 是类似的,如果你之前用过 azure pipelines,应该很容易上手 Run…
原文地址:http://www.iteye.com/topic/399980 在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间,非常easy.比如:每天凌晨几点定时运行一个程序,这只要在工程中的spring配置文件中配置好spring整合quartz的几个属性就好. Spring配置文件 引用 <bean id="jobDetail&quo…