关于Jenkins流水线(pipeline)

Jenkins 流水线 (pipeline) 是一套插件,让Jenkins可以实现持续交付管道的落地和实施。

关于blueocean

Blue Ocean是pipeline的可视化UI,本文中的demo暂时用不上blueocean,后续的文章中会用到;

系列文章地址

  1. 《Jenkins流水线(pipeline)实战之:从部署到体验》
  2. 《让Jenkins执行GitHub上的pipeline脚本》

本篇实战概览

本文是《Jenkins流水线(pipeline)实战》系列的第一篇,本次实战的内容是部署好带有pipeline插件的Jenkins环境,然后创建流水线任务并执行,全文由以下几部分组成:

  1. 部署Jenkins;
  2. 体验pipeline;

环境信息

为了快速完成Jenkins部署,本次实战用到了Docker,请在实战前准备好以下环境:

  1. 操作系统:Ubuntu 18.04.2 LT
  2. Docker:19.03.1

本次使用的Jenkins版本是2.176.3。

部署Jenkins

  1. 以root的身份登录Linux,新建一个文件夹,例如我这里是/root/blueocean,进入此文件夹;
  2. 执行以下命令,即可创建好Jenkins环境:
docker run \
-u root \
-idt \
--name blueocean \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean:1.19.0

上述命令参数中有几处需要注意:

a. 镜像是jenkinsci/blueocean:1.19.0:这是Jenkins官方的开源镜像(https://github.com/jenkinsci/blueocean-plugin ),里面已经集成了pipeline和blueocean,十分方便;

b. -v jenkins-data:/var/jenkins_home:Jenkins容器在工作的时候,如果要执行Docker的命令(例如 docker ps、docker run等),需要有个途径能连接到宿主机的docker服务,此参数就是用来建立容器和宿主机docker服务的连接的,如果您想了解这方面的详情,请参考《docker的/var/run/docker.sock参数》

c. -v /var/run/docker.sock:/var/run/docker.sock:将该容器的数据保留在宿主机的目录,这样即使容器崩溃了,里面的配置和任务都不会丢失;

3. 执行命令 docker exec blueocean cat /var/jenkins_home/secrets/initialAdminPassword,用于获取Jenkins容器的登录token,如下所示,控制台输出登录token为 a60f9aa5ebd4400e92886ca49d574198:

root@hedy:~# docker exec blueocean cat /var/jenkins_home/secrets/initialAdminPassword
a60f9aa5ebd4400e92886ca49d574198

4. 用浏览器访问:http://192.168.50.75:8080 ,192.168.50.75是宿主机IP地址,页面如下所示,在红框中填入刚才得到的登录token a60f9aa5ebd4400e92886ca49d574198,再点击右下角的"继续"按钮:



6. 接下来的页面是让用户选择安装哪些插件,如下图,点击红框内部,安装官方推荐插件:



7. Jenkins开始自动安装插件,如下图,需要您稍作等待:



8. 插件安装完成后,会要求设置账号和密码,设置完毕后点击右下角的“保存并完成”按钮:



9. 点击右下角的"保存并完成":



10. 至此Jenkins环境已经部署完成,查看已安装的插件列表,发现pipeline和blueocean都已装好:

体验pipeline

环境准备完毕,我们来创建一个pipeline并运行试试:

  1. 如下图,点击红框中的"新建Item":

  2. 在页面表单上填写任务名称,再选择"流水线",如下图:

  3. 接下来会弹出详细设置的表单,如下图,选择"流水线"的Tab页,在页面上直接输入一段pipeline内容,再点击左下角的"保存"按钮:



    上图红框3的源码如下:
pipeline {
agent any
stages {
stage('Stage 1') {
steps {
echo 'Hello world!'
}
}
}
}
  1. 点击下图红框中的"立即构建",即可执行刚才输入的pipeline脚本:

  2. 任务执行完毕后如下图所示,点击红框中的图标,即可查看本次任务执行过程中的控制台输出:

  3. 如下图,控制台打印了pipeline的信息:



    至此,Jenkins环境已经准备完毕,接下来的实战将一起体验流水线的更多功能。

欢迎关注我的公众号:程序员欣宸

Jenkins流水线(pipeline)实战之:从部署到体验的更多相关文章

  1. 远程触发Jenkins的Pipeline任务

    场景 虽然能配置提交代码时触发Jenkins任务,但有时并不需要每次提交代码都触发,而是仅在有需要时才执行. 除了在Jenkins页面上手动执行任务,还可以向Jenkins网站发起HTTP请求,触发指 ...

  2. jenkins中的流水线( pipeline)的理解(未完)

    目录 一.理论概述 Jenkins流水线的发展历程 什么是Jenkins流水线 一.理论概述 pipeline是流水线的英文释义,文档中统一称为流水线 Jenkins流水线的发展历程 ​ 在Jenki ...

  3. jenkins中的流水线( pipeline)的理解(未完)

    目录 一.理论概述 Jenkins流水线的发展历程 什么是Jenkins流水线 一.理论概述 pipeline是流水线的英文释义,文档中统一称为流水线 Jenkins流水线的发展历程 ​ 在Jenki ...

  4. 8.Jenkins进阶之流水线pipeline基础使用实践(1)

    ​目录一览: 0x01 基础实践 (1) Maven 构建之 Pipeline Script (2) Maven 构建之 Pipeline Script from SCM (3) Jenkins pi ...

  5. 6.Jenkins进阶之流水线pipeline语法入门学习(1)

    目录一览: 0x00 前言简述 Pipeline 介绍 Pipeline 基础知识 Pipeline 扩展共享库 BlueOcean 介绍 0x01 Pipeline Syntax (0) Groov ...

  6. [转]利用Jenkins的Pipeline实现集群自动化部署SpringBoot项目

    环境准备 Git: 安装部署使用略. Jenkins: 2.46.2版本安装部署略(修改jenkins执行用户为root,省得配置权限) JDK: 安装部署略. Maven: 安装部署略. 服务器免密 ...

  7. jenkins的流水线pipeline+项目实验php

    声明:实验环境使用Jenkins的应用与搭建的环境 新建一个流水线 pipeline脚本语法架构 node('slave节点名'){ def 变量 #def可以进行变量声明 stage('阶段名A') ...

  8. Jenkins集群下的pipeline实战

    关于Jenkins集群 在<快速搭建Jenkins集群>一文中,我们借助docker快速搭建了Jenkins集群,今天就在这个集群环境中创建pipeline任务,体验Jenkins集群下的 ...

  9. jenkins流水线部署springboot应用到k8s集群(k3s+jenkins+gitee+maven+docker)(1)

    前言:前面写过2篇文章,介绍jenkins通过slave节点部署构建并发布应用到虚拟机中,本篇介绍k8s(k3s)环境下,部署jenkins,通过流水线脚本方式构建发布应用到k8s(k3s)集群环境中 ...

随机推荐

  1. 素数筛法(Eratosthenes筛法)

    介绍 Eratosthenes筛法,又名埃氏筛法,对于求1~n区间内的素数,时间复杂度为n log n,对于10^6^ 以内的数比较合适,再超出此范围的就不建议用该方法了. 筛法的思想特别简单: 对于 ...

  2. java Timer工具类实现定时器任务

    第一 schedule 方法 三个参数 按照顺序 (执行的任务方法,开始执行时间,多少时间后循环去执行)  代码可用 public class TestScheedule { public stati ...

  3. 关于int的范围以及溢出问题

    最近在练一些算法题目的时候恰巧碰到了几道关于int范围与溢出相关的问题,于是就整理一下. 1.原码.补码 在计算机中数值都是用补码表示和存储的(正数补码与原码一致,负数补码是原码符号位不变,其余位取反 ...

  4. vscode中配置git

    vscode中配置git vscode 报错 未找到Git.请安装Git,或在"git.path" 设置中配置 第一步安装git git安装方法自行解决,提供git下载连接! gi ...

  5. 偏差和方差以及偏差方差权衡(Bias Variance Trade off)

    当我们在机器学习领域进行模型训练时,出现的误差是如何分类的? 我们首先来看一下,什么叫偏差(Bias),什么叫方差(Variance): 这是一张常见的靶心图 可以看左下角的这一张图,如果我们的目标是 ...

  6. 在linux中部署项目并创建shell脚本

    1.首先要在idea中父工程maven包下执行clean生成的target包 2.执行package打包,打包时候讲test勾去掉 3.将target包中生成的jar包cp出来 此处注意打包时必须要保 ...

  7. net start mysql

    net start mysql 解决的方法: 如何以管理员身份打开黑窗口 左下角开始菜单,找到小娜,cmd 回车, 命令提示符右击,以管理员身份打开 依次输入下面两行代码 mysqld -instal ...

  8. centos7.x 安装系统/配置网络/设置主机名

    1.安装系统     系统的安装就不多说了,自行查找百度,如:https://www.cnblogs.com/wcwen1990/p/7630545.html   2.配置网络(局域网上网) 修改配置 ...

  9. MQTT服务器(Win)

    系统环境准备 Java JDK >=1.6,系统环境变量配置JAVA HOME 链接:https://pan.baidu.com/s/1OO-KCdsCrdfjMtf6BVNl6Q 提取码:dy ...

  10. 初学HTML5做的小知识点

    新增的HTML5标签 语义化标签 :<header> 头标签      <nav> 导航标签      <section> 表示文档的结构.栏目      < ...