jenkins持续化部署2-构建流水线项目

本文介绍了Jenkins项目搭建与部署流程。先安装代码托管插件(如gitee插件)和Rancher插件,手动下载并上传Redeploy Rancher2.x Workload插件。新建项目选择流水线构建,配置钩子触发器,生成钩子函数。构建镜像需生成Dockfile文件,上传镜像到私服registry,最后创建rancher执行步骤。

1.安装插件

  • 安装代码托管插件,我用的自己gitee,就安装gitee插件 在这里插入图片描述
  • 还需要安装Rancher的插件用于后续的Rancher自动拉取镜像进行重新创建容器部署
    手动下载插件:Redeploy Rancher2.x Workload ,地址:使用Redeploy Rancher2.x Workload插件时发现的问题解决.
    下载之后手动上传插件。

2.新建项目

  • 选择流水线构建
    在这里插入图片描述

  • 配置钩子触发器
    在这里插入图片描述

  • 生成钩子webhook密码,这个密码要用在git托管仓库处用来生成钩子函数
    在这里插入图片描述

  • 去git仓库处生成钩子函数,url地址在上图的jenkins配中有
    在这里插入图片描述
    在这里插入图片描述
    注意:弄完可以点击测试是否可以发送post测试请求,响应码200就成功,不成功则是可能用了内网的ip,识别不了,可以用ngrox穿透 内网ip端口来代替。

  • 最后生成pipeline语句

pipeline{
    agent any
    stages{
        stage("更新代码"){
           steps{
               echo "pull code"
               git credentialsId: '**************', url: 'https://******/devops.git'
           }
        }
        stage('代码打包') { 
            steps {
                echo "--------------代码打包-----------------"
                sh 'mvn clean package -DskipTests' 
            }
        }
        stage('构建镜像') { 
            steps {
                echo "--------------构建镜像-----------------"
                sh 'docker build -t aopdemo .'
            }
        }
         stage('上传到私服') { 
            steps {
                echo "--------------上传到私服-----------------"
                sh 'docker tag aopdemo 10.10.0.17:5000/aopdemo'
                sh 'docker push 10.10.0.17:5000/aopdemo'
            }
        }
         stage('清理虚悬镜像') { 
            steps {
                echo "--------------清理虚悬镜像-----------------"
                sh 'docker rmi $(docker images -f "dangling=true" -q)'
            }
        }
    }
}

  • git credentialsId---------》可在流水线语法生成处生成,添加的是gitee的账号密码。
    在这里插入图片描述
  • 构建镜像------》在项目文件夹下生成一个Dockfile文件来生成镜像
    在这里插入图片描述

# 镜像出处 WangLin
FROM openjdk:8-jre-alpine

USER root

#中文乱码问题
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8

# 时间
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 将本地项目 jar 包拷贝到 Docker 容器中的位置
COPY target/*.jar /app.jar

# 执行批处理文件
ENTRYPOINT ["java", "-jar", "-Djava.security.egd=file:/dev/./urandom", "app.jar"]

  • 然后保存,点击构建测试是否成功。流水线中用到了上传镜像到私服registry以便rancher进行pull以及创建容器进行构建,私服registry需要docker创建。
  • 私服创建要让访问的ip受信任:
vim /etc/docker/daemon.json
# 加下面的配置
"insecure-registries":["10.10.0.17:5000"]

最后再执行后再创建rancher的执行步骤,添加rancher的秘钥:勾选总是拉取镜像,这样就可以在执行后不用在rancher手动进行拉取镜像并启动新的容器。
在这里插入图片描述

最近的三年多时间,随着容器技术的火爆及Kubernetes成为容器编排管理的标准,国内外厂商均已开始了全面拥抱Kubernetes的转型, 无数中小型企业已经落地 Kubernetes,或正走在容器化的道路上 。 第一章介绍docker的前世今生,了 解docker的实现原理,以Django项目为例,教大家如何编写最佳的Dockerfile实现构业务镜像的制作。通过本章的学习,大家会知道docker的概念及基本操作,并学会构建自己的业务镜像,并通过抓包的方式掌握Docker最常用的bridge网络模式的通信。 第二章本章学习kubernetes的架构及工作流程,重点介绍如本章学习kubernetes的架构及工作流程,重点介绍如断的滚动更新,通过服务发现来实现集群内部的服务间访问,并通过ingress- -nginx实现外部使用域名访问集群内部的服务。同时介绍基于EFK如何搭建Kubernetes集群的日志收集系统。学完本章,我们的Django demo项目已经可以运行在k8s集群中,同时我们可以使用域名进行服务的访问。第三章本章基于k8s集群部署gitlab、sonarQube、 Jenkins等工具,并把上述工具集成到Jenkins中,以Django项目为例,通过多分支流水线Jenkinsfle实现项目代码提交到不同的仓库分支,实现自动代码扫描、单元测试、docker容器构建、k8s服务的自动部署。第四章由于公司内部项目众多,大量的项目使用同一套流程做CICD,那么势必会存在大量的重复代码,因此本章主要通过使用groovy实现Jenkins的sharedL ibrary的开发,以提取项目在CICD实践过程中的公共逻辑,提供一系列的流程的接口供公司内各项目调用,开发完成后,还是以Django的demo项目为例,进行Jenkinsfle的改造,最后仅需通过简单的Jenkinsfle的配置,即可优雅的完成CICD流程的整个过程,此方式已在大型企业内部落地应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值