关于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. HTML5 Device Access (设备访问)

    camera api (含图片预览) 参考地址 主要为利用input type=file, accept="image/*" 进行处理 图片预览方式(两种) const file ...

  2. Struts1.x 跨站脚本(XSS)漏洞的解决

    一. 演示XSS   当访问一个不存在的网址时,例如[url]http://localhost:8080/demo/noAction.do[/url],那么Struts处理后都会跳到提示“Invali ...

  3. 2019最新最全Java开发面试常见问题答案总结

    2019最新最全Java开发面试常见问题答案总结 马上准备9月份出去面试Java开发,自己学习丢西瓜捡芝麻,学了的都忘了,所以有机会自己做个学习笔记,摘录自各个博文以及总结. 1.JAVA面向对象的特 ...

  4. Spring项目集成ShiroFilter简单实现权限管理

    Shiros是我们开发中常用的用来实现权限控制的一种工具包,它主要有认证.授权.加密.会话管理.与Web集成.缓存等功能.我是从事javaweb工作的,我就经常遇到需要实现权限控制的项目,之前我们都是 ...

  5. c#引用本地dll发布后运行exe错误

    在config 文件夹 configuration 配置节点下面 添加 <runtime> <gcConcurrent enabled="true" /> ...

  6. 洛谷 P2152 [SDOI2009]SuperGCD

    题意简述 求两个整数a,b的最大公约数0 < a , b ≤ 10 ^ 10000. 题解思路 如果 a % 2 == 0 && b % 2 == 0 gcd(a,b) = gc ...

  7. 记一次 Windows MySQL 恢复

    0x00 事件 因为本地的服务器硬件出现故障,导致一台 Windows 系统的开发环境挂了,且无法短时间内恢复状态. 应急方案是使用了云上的系统重建了开发环境. 开发人员说需要挂了的那台 Window ...

  8. powerdesigner16.6版本resource的重复使用

    今天早上遇到想要重复使用resource ,但是发现powerdesigner16.6版本跟16.5版本有关重复使用name的设置已经不一样了,网上找了好久没找到,软件上找了好久也没找到相应的设置. ...

  9. CSS3的滤镜filter属性

    css3的滤镜filter属性,可以对网页中的图片进行类似Photoshop图片处理的效果,例如背景的毛玻璃效果.老照片(黑白照片).火焰效果等. 一.blur(px)高斯模糊 二.brightnes ...

  10. mybatis 源码分析(四)一二级缓存分析

    本篇博客主要讲了 mybatis 一二级缓存的构成,以及一些容易出错地方的示例分析: 一.mybatis 缓存体系 mybatis 的一二级缓存体系大致如下: 首先当一二级缓存同时开启的时候,首先命中 ...