还在手动部署jar包吗?快速掌握jenkins安装,教你使用jenkins实现持续交付

攻城狮Chova      2022-02-11     248

关键词:

Jenkins

  • Jenkins:

    • 开源软件项目
    • 基于Java开发的一种持续集成工具
    • 用于监控持续重复的工作
    • 旨在提供一个开放易用的软件平台, 便于软件的持续集成

      基于Docker安装Jenkins

      与持续集成中的GitLab Runner应该分布在不同的服务器上

  • 创建工作目录: /usr/local/docker/jenkins
  • 因为要在docker-compose.yml中使用volumes创建数据卷,执行命令赋予Docker数据卷权限:

    chown -R 1000 /usr/local/docker/jenkins/data
  • 在/usr/local/docker/jenkins创建docker-compose.yml

    version: '3.1'
    services:
     jenkins:
    restart: always
    image: jenkins
    container_name: jenkins
    ports:
    # 发布端口
    - 8080:8080
    # 基于JNLP的Jenkins代理通过TCP端口50000与Jenkins master进行通信
    - 50000:50000
    environment:
     TZ: Asia/shanghai
    volumes:
     - ./data:/var/jenkins_home 
  • 执行docker-compose.yml文件启动Jenkins:

    docker-compose up -d
  • 解锁Jenkins: Jenkins第一次启动时需要输入初始密码解锁安装流程,使用命令查看初始密码

    docker logs jenkins
  • 使用自定义插件的方式安装Jenkins:

    Dashboard View
    Publish Over SSH
    Extend Choice Parameter
    
    也可以在Jenkins运行界面中的Manage Jekins中的Manage Plugins自定义下载安装

    配置Jenkins

    配置JDK&Maven

  • 上传JDK和Maven的tar包到服务器(容器的数据卷目录)
  • Manage Jekins -> Global Tool Configuration
  • 安装JDK,==注意:== JAVA_HOME的路径是==宿主机==目录:(宿主机是相对宿体而言的)

    /var/jenkins_home/jdk1.8.0_152
  • 安装Maven,==注意:== MAVEN_HOME的路径是==宿主机==目录:(宿主机是相对宿体而言的)

    /var/jenkins_home/apache-maven-3.5.3

    安装动态参数插件(Extend Choice Parameter)

  • 目的是方便在做项目构建时按照版本进行构建
  • 支持一键回滚

    使用Jenkins实现持续交付

  • Jenkins持续交付流程与GitLab Runner持续集成流程类似,只是GitLab Runner默认已经配置好Git,Jenkins需要配置多一个GitLab的SSH登录
  • Jenkins持续交付流程:

    • 拉取代码
    • 打包构建
    • 上传镜像
    • 运行容器
    • 维护清理

      配置Jenkins的GitLab SSH免密登录

  • 交互式进入Jenkins容器

    docker exec -it jenkins /bin/bash
  • 生成 SSH KEY

    ssh-keygen -t rsa -C "email@example.com"
  • 查看公钥

    cat /var/jenkins_home/.ssh/id_rsa.pub
  • 复制公钥到GitLab
  • 克隆项目获取到known_hosts文件

    配置Publish Over SSH

    在Jenkins管理页面中系统设置增加SSH Server配置

  • Name

    测试环境-192.168.32.255
  • Hostname

    192.168.32.255
  • Username

    root
  • Remote Directory(宿主机中可操作的目录)

    /usr/local/jenkins
  • 高级:Password

    123456
  • 高级:Port

    22
  • 高级:Timeout(ms)

    300000

    持续交付依赖管理项目

    第一步是实现所有项目的父工程依赖项目的持续交付

  • 项目创建标签: 在GitLab中给项目创建标签(版本号)
  • 创建Maven Project: 在Jenkins中新建一个基于Maven的任务
  • 配置Maven Project: 配置第一次构建初始化

    • General: 丢弃旧的构建
    • 源码管理: Git

      • Repository URL: ssh://git@192.168.32.255:8000/myshop/myshop-dependencies.git
      • Branches to build: */master
  • 第二次配置Maven Project开始使用

    • General: 参数化构建过程

      • Extended Choice Parameter:

        • name: RELEASE_VERSION
        • Basic Parameter Types: Parameter Type
      • Choose Source for Value:

        • Groovy Script

          def var_key=['bash','-C','cd/var/jenkins_home/workspace/myshop-dependencies;git pull >/dev/null;git remote prune origin>/dev/null;git tag -l|sort -r |head -10']
          var_key.excute().text.tokenize('\n')
    • 源码管理: none
    • Post Steps: Add post-build step

      • Excute shell

        echo $RELEASE_VERSION
        cd /var/jenkins_home/workspace/myshop-depedencies
        git checkout $RELEASE_VERSION
        git pull origin $RELEASE_VERSION
        mvn clean package
    • Add post-build step: Send files or execute commands over SSH

      • SSH Publishers:

        • SSH Server:

          • name: 测试环境-192.168.32.255
          • Transfers:

            • Source files: /*.jar, docker/ (远程传送文件)
            • (Remove prefix): target(删除远程传送过程中前缀为target的文件,只适用于在上传过程中删除,不会删除已经上传成功到远程服务器上的文件)
            • Remote Directory: myshop-service-user-provider(远程创建目录,并把文件远程传送到此目录中)
            • Exec command (在远程服务器进行命令操作:进入provider目录,拷贝项目jar包到docker目录,进入docker目录,构建项目jar包的镜像,上传镜像,停止容器,启动容器,清理虚悬镜像)

              cd /usr/local/jenkins/myshop-service-user-provider
              cp target/myshop-service-user-provider-1.0.0-SNAPSHOT.jar docker
              cd docker
              docker build -t 192.168.32.133:5000/myshop-service-user-provider:v1.0.0
              docker push 192.168.32.133:5000/myshop-service-user-provider:v1.0.0
              docker-compose down
              docker-compose up -d
              docker image prune -f
  • 保存
  • Build with Parameters

docker容器-快速部署jenkins

1.在本地虚拟机环境、安装CentOS7,并安装docker容器2.在docker容器中执行  dockerpulljenkinsci/blueocean3.查看已经下载的Jenkins镜像dockerimages4.创建jenkins_home启动一个Jenkins容器创建一个jenkins目录mkdir/home/jenkins_home启动一个jenkins容器&... 查看详情

jenkins环境搭建-下载与安装(代码片段)

...类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins目的1.持续、自动地构建/测试软件项目;2.监控软件开放流程,快速问题定位及处理,提示开放效率。Jenkins特性开源的java语言开发持续集成工具,支持CI,C... 查看详情

还在手动部署springboot项目?不妨试试它,让你部署项目飞起来!

目录docker介绍安装dockerUbuntu安装dockerCentOS安装docker通过脚本安装拉取java环境创建springboot项目打包springboot到dockerdocker查看容器的日志查看log4j2输出问文件日志docker介绍Docker是一个开源的应用容器引擎,让开发者可以打包他们的应... 查看详情

jenkins流水线自动化部署手动下载安装插件包

如果有些插件不能通过可选插件安装,可以进行选择高级并上传插件包,插件包链接地址为:http://updates.jenkins-ci.org/download/plugins/同时在高级中可以更换下载源,能够加快下载速度:https://mirrors.tuna.tsinghua.edu.cn/j本文来自博客园... 查看详情

docker_快速部署jenkins

开门见山,如何在利用docker快速部署jenkins服务?下面详解1:docker的基本按照与部署,前文已经详述,这里不多说。2:pull一个jenkins镜像dockerpulljenkins3:查看已经安装的jenkins镜像dockerimages4:创建一个jenkins目录 mkdir/home/jenkins_ho... 查看详情

jenkins的安装部署

...同的Job类型来创建不同的任务freestyle自由风格(通过gui,手动创建job)流水线(通过pipline脚本来自动创建job)其他类型4.非常细化的权限管理可以实现不同job,不同的角色5.高可靠性负载均衡三、安装1.下载根据所在平台下载相... 查看详情

linux上gitlab+jenkins实现vuespringcloud项目的自动部署

...相关插件安装1.安装GitLab相关插件2.NodeJS插件3.Maven插件4.手动安装插件网络或者其他原因,可能导致插件安装失败。可以采用手动安装的方式。手动下载jenkins插件:jenkins插件下载地址:http://mirror.xmission.com/jenkins/plugins/,一般下... 查看详情

jenkins+saltstack+pipeline部署springcloud多模块jar包

在jenkins上安装salt-master,pipeline{agent{   node{        label‘master‘        customWorkspace‘/srv/salt/xxx/ 查看详情

docker快速安装jenkins详细过程(代码片段)

...前提需要安装docker,参考文章:docker容器安装与部署1ÿ 查看详情

jenkins介绍(代码片段)

...,广泛用于项目开发,具有自动化构建、测试和部署等功能。官网:http://jenkins-ci.org/。Jenkins的特征:①开源的Java语言开发持续集成工具,支持持续集成,持续部署。②易于安装部署配置:可通过yum安... 查看详情

快速部署docker-ce心得

Docker-cedocker有多种安装和部署方法,对于不同的需要,做相应的部署!本文是基于CICD来快速部署的,是基于jenkins自动部署打包来安装docker-ce,从而构建一个Maven项目(本文不提供jenkins部署流程) 实验环境:三台CentOS分别做... 查看详情

jenkins介绍部署及三种构建方式配置

...s部署2.1下面内容介绍2.2环境介绍2.3jenkins安装3插件安装3.1手动下载jenkins插件4Jenkins密钥配置5jenkins触发式构建6jenkins参数化构建7jenkins定时构建8Jenkins用户权限设置8.1新创建一个用户8.2用户权限设 查看详情

如何使用jenkins部署jar包

参考技术A#!/bin/bashcd/deploy_cmp_scriptecho"ExecuteshellStart"shstop.shshreplace.shecho"ExecuteshellFinish" 查看详情

jenkins+gitlab快速部署(代码片段)

1,jenkins部署yuminstall-yjava-1.8.0cd/etc/yum.repos.d/wgethttp://pkg.jenkins.io/redhat/jenkins.reporpm--importhttp://pkg.jenkins.io/redhat/jenkins.io.keyyuminstall-yjenkinssystemctlstartjenkinsJenkinsWe 查看详情

使用 jenkins 管道在 Windows 服务器上部署 jar

】使用jenkins管道在Windows服务器上部署jar【英文标题】:deployjaronwindowsserverwithjenkinspipeline【发布时间】:2018-06-2907:29:03【问题描述】:我有一个可以作为服务器运行的maven构建的jar文件。我想使用jenkins-pipeline将此jar文件部署到我... 查看详情

掌握tidb数据库的安装部署

https://pingcap.com/docs-cn/stable/overview/#部署方式一、部署方式选择部署方式选择tidb:TiDBisanopensourcedistributedHTAPdatabasecompatiblewiththeMySQLprotocol通过查阅官方文档和网友踩坑经验,我们学习测试时就就直接使用官网推荐的DockerCompose方式快速... 查看详情

jenkins安装

...这样操作之后jenkins会作为一个服务进行启动,不必每次手动启动jenkins了。1.jenkins下载在官网 https://jenkins.io/点击下载需要的jenkins版本,下载操作如图所示选择适合安 查看详情

jenkins——安装部署(代码片段)

 1、部署Jdk由于jenkins需要jdk环境,所以先部署jdk,解压并设置环境变量就行:#tarzxfjdk-8u45-linux-x64.tar.gz#mvjdk-8u45-linux-x64/usr/local/jdk1.8#vi/etc/profileJAVA_HOME=/usr/local/jdk1.8PATH=$PATH:$JAVA_HOME/binCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.j... 查看详情