jck28 - 小柒 - 持续集成DevOps - jenkins job配置L2

一,凭据管理

  • 凭据管理的作用:管理ssh、邮箱、git等认证信息

1.1 凭据配置

1.2 凭据使用

二,Jenkins环境变量

2.1 定义

  • Jenkins 环境变量就是通过 env 关键字暴露出来的全局变量,可以在 Jenkins 文件的任何位置使用

2.2 分类:

  • 系统内置环境变量
  • 用户自定义环境变量

2.3 常用内置环境变量

  • BUILD_NUMBER
  • BUILD_URL
  • JOB_NAME
  • GIT_URL

2.4 用户自定义环境变量新增

  • 全局环境变量入口 Dashboard → 系统管理(Manage Jenkins) → 系统配置(Configure System)-> 全局属性

2.5 环境变量的使用

  • Windows:%变量名称%
  • Linux: $变量名称

三,Jenkins 节点配置

3.1 节点定义:

  • docker 搭建的内建节点 (built-in或者master) 缺少许多的环境
  • 同一时间需要多台机器来执行Jenkins任务。
  • 不同的Jenkins任务有不同的操作环境需求。

3.2 常用节点

  • 内建节点

  • SSH节点

    • java环境
    • 防火墙设置
    • 连接的用户名/密码
    • 入口 Dashboard → 系统管理(Manage Jenkins) → 节点管理(Manage Nodes and Clouds)
    • 需要插件:SSH Agent Plugin
  • Java web节点

    • 入口 Dashboard → 系统管理(Manage Jenkins) → 节点管理(Manage Nodes and Clouds)
    • 需要打开全局安全配置代理的端口

四, Jenkins节点环境变量

4.1 定义

  • Jenkins在构建的时候,如果使用节点构建可能存在一些个性化环境变量,此时需要在节点中单独管理

4.2 节点变量类型

  • 节点工具配置
  • 节点环境变量配置

4.3 节点工具配置

  • 节点工具的使用顺序 节点工具 > 全局工具
  • 节点工具配置方式 先配置全局工具,后配置节点工具
  • 全局工具路径 Dashboard → 系统管理(Manage Jenkins) → 全局工具配置(Global Tool Configuration)
  • 节点工具配置路径 Dashboard → 系统管理(Manage Jenkins) → 节点管理(Manage Nodes and Clouds)-> 配置从节点 → 节点属性 → 工具位置

4.4 节点环境变量配置

  • 节点环境变量的使用顺序 节点环境变量 > 全局环境变量
  • 全局环境变量路径 Dashboard → 系统管理(Manage Jenkins) → 系统配置(Configure System)-> 全局属性
  • 节点环境变量配置路径 Dashboard → 系统管理(Manage Jenkins) → 节点管理(Manage Nodes and Clouds)-> 配置从节点 → 节点属性 → 环境变量

4.5 Jenkins指定节点运行Job

  • 工作中通常会使用指定节点来运行Job,例如windows来执行ui测试
  • 指定节点运行Job的路径 选择一个Job → 配置 → General → 限制项目的运行节点(Restrict where this project can be run )

五, Jenkins 参数化 Job

5.1 使用场景

  • 同一个项目需要在不同环境下测试

5.2 参数化 Job 的配置

    1. 选择参数化构建过程,选择选项参数
    1. 名称填入 env
    1. 选项配置三个值分别: dev、test、online
    1. 添加描述

5.3 配置shell

# 判断 env 参数的值,如果是dev,则输出 dev runtime
if [ "$env" = "dev" ]
then echo "dev runtime"
# 判断 env 参数的值,如果是test,则输出 test runtime
elif [ "$env" = "test" ]
then echo "test runtime"
# 判断 env 参数的值,如果是online,则输出 online runtime
elif [ "$env" = "online" ]
then echo "online runtime"
# 判断 env 参数的值,如果是其他,则输出 other runtime
else echo "other runtime"
fi

5.4 查看运行效果

六, Jenkins 插件安装

6.1 入口

  • Dashboard → 系统管理(Manage Jenkins) → 插件管理(Manage Plugins)

6.2 插件管理代理

  • Dashboard → 系统管理(Manage Jenkins) → 插件管理(Manage Plugins)-> 高级(Advanced)
  • 可以配置代理服务和ip 或者使用国内插件源

6.3 插件新装

  • Dashboard → 系统管理(Manage Jenkins) → 插件管理(Manage Plugins)-> 可选插件(Available)
  • 模糊搜索
  • 勾选后点击安装

6.4 插件更新

  • Dashboard → 系统管理(Manage Jenkins) → 插件管理(Manage Plugins)-> 可更新(Updates)
  • 插件有更新后,会出现在此列表
  • 勾选后点击安装

6.5 插件移除和禁用

  • Dashboard → 系统管理(Manage Jenkins) → 插件管理(Manage Plugins)-> 已安装(Installed)
  • 每个插件后有开关实现禁用和启用
  • “x” 进行插件的移除

6.6 SSH插件

  • 在Jenkins 配置从节点执行构建操作的时候需要用到 SSHAgent
  • 在可选插件搜索 SSH Build Agents plugin 安装
  • 在节点管理中,能使用ssh节点 选项为 Launch agents via SSH

6.7 git版本管理

  • 插件下载:

      1. 进入菜单 Dashboard → 系统管理(Manage Jenkins) → 插件管理(Manage Plugins)
      1. 在可选插件搜索 Git 找到 Git plugin 安装
  • 配置全局工具

      1. 进入菜单 Dashboard → 系统管理(Manage Jenkins) → 全局工具配置(Tool)
      1. 找到 Git,点击新增
      1. 键入name 和 Path to Git executable 或者使用自动安装(对网络要求高)
  • Git 相关使用

    • 自由风格 job 中源码管理中 选择 Git
    • 在 Repositories 中配置 git 的 url,认证信息
    • 在 Branches to build 中设置构建的分支
    • 在 Additional Behaviours 中添加需要的个性化 ,比如检出到子目录

6.8 maven插件配置

  • 在 Jenkins 上构建 Java 项目时需要使用 Maven 来进行构建打包

  • 在执行job的机器上安装好maven

      1. 下载 maven 程序压缩包
      1. 解压 maven 压缩包
      1. 配置环境变量
      1. 在settings.xml文件设置好仓库、国内源(配置公司的仓库和jar包下载地址)
        image
  • 下载 maven 插件

      1. 进入菜单 Dashboard → 系统管理(Manage Jenkins) → 插件管理(Manage Plugins)
      1. 在可选插件搜索 maven 找到 Maven IntegrationVersion并安装
  • 配置全局工具

      1. 进入菜单 Dashboard → 系统管理(Manage Jenkins) → 全局工具配置(Tool)
      1. 找到 Maven,点击新增
      1. 键入name 和 MAVEN_HOME 或者使用自动安装(对网络要求高)
  • Maven 相关使用

      1. 新建 job 的时候选用构建一个 Maven 项目
      1. 自由风格: job 中命令行使用 mvn 命令

七, Jenkins 邮件告警

7.1 作用:Jenkins job 构建结果的提取并通知相关人士

7.2 下载 Email Extension 插件

    1. 进入菜单 Dashboard → 系统管理(Manage Jenkins) → 插件管理(Manage Plugins)
    1. 在可选插件搜索 Email Extension 找到 Email Extension 安装

7.3 修改系统配置项目

(1) Jenkins Location 配置

(2) 邮件通知配置(用于测试连通性)

(3) Extended E-mail Notification 配置

八, Jenkins 父子job