• Jenkins 持续交付


    什么是 Jenkins

    img

    Logo

    Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

    官方网站:https://jenkins.io/

    基于 Docker 安装 Jenkins

    docker-compose

    Jenkins 是一个简单易用的持续集成软件平台,我们依然采用 Docker 的方式部署,docker-compose.yml配置文件如下:

    version: '3.1'
    services:
      jenkins:
        restart: always
        image: jenkinsci/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 数据卷 权限问题,用以下命令解决:

    chown -R a+w data
    

    解锁 Jenkins

    Jenkins 第一次启动时需要输入一个初始密码用以解锁安装流程,使用 docker logs jenkins 即可方便的查看到初始密码

    img

    初始密码

    打开: http://10.3.50.160:8080
    

    img

    输入密码解锁

    注意: 安装时可能会因为网速等原因导致安装时间比较长,请大家耐心等待。如果长时间停留在安装页没反应,请尝试使用 F5 刷新一下。

    使用自定义插件的方式安装

    插件是 Jenkins 的核心,其丰富的插件(截止到 2018.10.29 共有 77350 个插件)可以满足不同人群的不同需求

    img

    image

    注意: 除了默认勾选的插件外,一定要勾选 Publish over SSH 插件,这是我们实现持续交付的重点插件。

    img

    image

    开始安装了,根据网络情况,安装时间可能会比较长,请耐心等待

    img

    image

    很多插件装不上怎么办?不要慌,记住这些插件的名字,咱们稍后可以手动安装

    img

    image

    安装成功效果图

    • 创建管理员

    img

    创建管理员

    • 安装完成,进入首页

    img

    image

    附:Jenkins 手动安装插件

    使用插件管理器安装
    • 系统管理 -> 插件管理 -> Avaliable

    img

    插件管理

    • 过滤出想要安装的插件,然后点击 Download now and install after restart

    img

    手动下载

    img

    image

    手动上传 .hpi 文件

    • 点击进入插件中心

    img

    image

    • 点击 Archives

    img

    image

    • 下载需要的版本

    img

    image

    • 在插件管理器中选择 Advanced

    img

    image

    • 选择上传即可

    img

    image

    重启 Jenkins

    docker-compose down
    docker-compose up -d
    

    注意: 请留意需要下载插件的警告信息,如果不满足安装条件,Jenkins 是会拒绝安装的。如下图:

    img

    image

    配置 Jenkins

    配置 JDK & Maven

    现在宿主机安装好JDK & Maven,然后挂载到jenkins容器

    ...
        volumes:
          - ./data:/var/jenkins_home
          - /usr/local/java/jdk1.8.0_152:/usr/local/java/jdk1.8.0_152
          - /usr/local/java/apache-maven-3.6.0:/usr/local/java/apache-maven-3.6.0
    系统管理`->`全局工具配置
    

    img

    jdk配置

    img

    maven配置

    • 别忘记保存

    配置本地化(显示中文)

    • 安装 Locale 插件

    img

    image

    • Manage Jenkins -> Configure System -> Locale

    img

    image

    • 本地化效果图

    img

    image

    安装动态参数插件

    该插件的主要目的是为了方便我们后面在做项目构建时可以按照版本进行构建(支持一键回滚哦)

    img

    image

    持续交付实战: 部署第一个Java应用

    img

    应用构建流程

    配置 Jenkins 的 GitLab SSH 免密登录

    • 交互式进入 Jenkins 容器
    docker exec -it jenkins /bin/bash
    
    • 生成 SSH KEY
    ssh-keygen -t rsa -C "suoron@163.com"
    
    • 查看公钥
    cat /var/jenkins_home/.ssh/id_rsa.pub
    
    • 复制公钥到 GitLab

    img

    image

    • 手动克隆一次项目,该步骤的主要作用是为了生成和服务器的验证信息

      img

      image

    • 查看刚才生成的文件

    img

    image

    新建构建项

    img

    下拉源码

    img

    构建方式

    点击立即构建

    配置发布项 (Publish over SSH)

    1. 添加docker服务器ssh远程管理
    • 系统管理 -> 系统设置 -> Publish over SSH

    img

    QQ浏览器截图20190320120127.png

    • 测试是否能够正常通信 点击Test Configuration
    • 别忘记保存
    1. 创建部署项

      img

      部署项目

    点击立即构建,成功后 docker ps -a 查看

    附:参考资料

    Jenkins之定时构建

  • 相关阅读:
    是否可以从一个静态(static)方法内部发出对非静态 (non-static)方法的调用?
    是否可以继承 String 类?
    如何实现字符串的反转及替换?
    String s = new String(“xyz”);创建了几个字符串对象?
    Serial 与 Parallel GC 之间的不同之处?
    SVG是什么?
    阐述静态变量和实例变量的区别?
    Java 中 ++ 操作符是线程安全的吗?
    什么是 REST / RESTful 以及它的用途是什么?
    WebSQL是HTML 5规范的一部分吗?
  • 原文地址:https://www.cnblogs.com/snake107/p/11938879.html
Copyright © 2020-2023  润新知