Jenkins流水线(pipeline)实战之:从部署到体验
关于Jenkins流水线(pipeline)
Jenkins 流水线 (pipeline) 是一套插件,让Jenkins可以实现持续交付管道的落地和实施。
关于blueocean
Blue Ocean是pipeline的可视化UI,本文中的demo暂时用不上blueocean,后续的文章中会用到;
系列文章地址
本篇实战概览
本文是《Jenkins流水线(pipeline)实战》系列的第一篇,本次实战的内容是部署好带有pipeline插件的Jenkins环境,然后创建流水线任务并执行,全文由以下几部分组成:
- 部署Jenkins;
- 体验pipeline;
环境信息
为了快速完成Jenkins部署,本次实战用到了Docker,请在实战前准备好以下环境:
- 操作系统:Ubuntu 18.04.2 LT
- Docker:19.03.1
本次使用的Jenkins版本是2.176.3。
部署Jenkins
- 以root的身份登录Linux,新建一个文件夹,例如我这里是/root/blueocean,进入此文件夹;
- 执行以下命令,即可创建好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并运行试试:
- 如下图,点击红框中的"新建Item":
- 在页面表单上填写任务名称,再选择"流水线",如下图:
- 接下来会弹出详细设置的表单,如下图,选择"流水线"的Tab页,在页面上直接输入一段pipeline内容,再点击左下角的"保存"按钮:
上图红框3的源码如下:
pipeline {
agent any
stages {
stage('Stage 1') {
steps {
echo 'Hello world!'
}
}
}
}
- 点击下图红框中的"立即构建",即可执行刚才输入的pipeline脚本:
- 任务执行完毕后如下图所示,点击红框中的图标,即可查看本次任务执行过程中的控制台输出:
- 如下图,控制台打印了pipeline的信息:
至此,Jenkins环境已经准备完毕,接下来的实战将一起体验流水线的更多功能。
欢迎关注我的公众号:程序员欣宸
Jenkins流水线(pipeline)实战之:从部署到体验的更多相关文章
- 远程触发Jenkins的Pipeline任务
场景 虽然能配置提交代码时触发Jenkins任务,但有时并不需要每次提交代码都触发,而是仅在有需要时才执行. 除了在Jenkins页面上手动执行任务,还可以向Jenkins网站发起HTTP请求,触发指 ...
- jenkins中的流水线( pipeline)的理解(未完)
目录 一.理论概述 Jenkins流水线的发展历程 什么是Jenkins流水线 一.理论概述 pipeline是流水线的英文释义,文档中统一称为流水线 Jenkins流水线的发展历程 在Jenki ...
- jenkins中的流水线( pipeline)的理解(未完)
目录 一.理论概述 Jenkins流水线的发展历程 什么是Jenkins流水线 一.理论概述 pipeline是流水线的英文释义,文档中统一称为流水线 Jenkins流水线的发展历程 在Jenki ...
- 8.Jenkins进阶之流水线pipeline基础使用实践(1)
目录一览: 0x01 基础实践 (1) Maven 构建之 Pipeline Script (2) Maven 构建之 Pipeline Script from SCM (3) Jenkins pi ...
- 6.Jenkins进阶之流水线pipeline语法入门学习(1)
目录一览: 0x00 前言简述 Pipeline 介绍 Pipeline 基础知识 Pipeline 扩展共享库 BlueOcean 介绍 0x01 Pipeline Syntax (0) Groov ...
- [转]利用Jenkins的Pipeline实现集群自动化部署SpringBoot项目
环境准备 Git: 安装部署使用略. Jenkins: 2.46.2版本安装部署略(修改jenkins执行用户为root,省得配置权限) JDK: 安装部署略. Maven: 安装部署略. 服务器免密 ...
- jenkins的流水线pipeline+项目实验php
声明:实验环境使用Jenkins的应用与搭建的环境 新建一个流水线 pipeline脚本语法架构 node('slave节点名'){ def 变量 #def可以进行变量声明 stage('阶段名A') ...
- Jenkins集群下的pipeline实战
关于Jenkins集群 在<快速搭建Jenkins集群>一文中,我们借助docker快速搭建了Jenkins集群,今天就在这个集群环境中创建pipeline任务,体验Jenkins集群下的 ...
- jenkins流水线部署springboot应用到k8s集群(k3s+jenkins+gitee+maven+docker)(1)
前言:前面写过2篇文章,介绍jenkins通过slave节点部署构建并发布应用到虚拟机中,本篇介绍k8s(k3s)环境下,部署jenkins,通过流水线脚本方式构建发布应用到k8s(k3s)集群环境中 ...
随机推荐
- JVM总结(三)
JVM总结(3)Class文件,类加载机制.编译过程 Java编译器先把Java代码编译为存储字节码的Class文件,再通过Class文件进行类加载. Class类文件的结构 Java编译器可以把Ja ...
- HashMap这些问题你知道吗?
HashMap是Java面试中的常考点之一,而且其<Key,Value>结构也是开发中常常用到的结构之一.或许你使用过HashMap,但是你知道下面这些问题吗? HashMap的底层结构是 ...
- 大数据学习之旅2——从零开始搭hadoop完全分布式集群
前言 本文从零开始搭hadoop完全分布式集群,大概花费了一天的时间边搭边写博客,一步一步完成完成集群配置,所以相信大家按照本文一步一步来完全可以搭建成功.需要注意的是本文限于篇幅和时间的限制,也是为 ...
- 6个美观的纯CSS渐变背景代码分享(亲测有效)
样式1 background-image: linear-gradient(160deg, #b100ff 20%,#00b3ff 80%); 样式2 background-image: linear ...
- Gin + Vue全栈开发实战(二)
尝试地写了第一篇自己学习Go Web框架的感受和入门的文章,发现反响还不错,大家也提出了很多的问题来一起交流.近期也渐渐地出现了很多有关go语言开发的相关文章,包括有在蚂蚁金服的大牛的分享,我也一直有 ...
- OpenGL入门第一天:环境
本文是个人学习记录,学习建议看教程 https://learnopengl-cn.github.io/ 非常感谢原作者JoeyDeVries和各位翻译提供的优质教程 近况(牢骚 这几天教母校初中的OI ...
- 使用 php 内部web服务器
使用 php 内部web服务器如网站目录 d:\web\index.php1.打开命令窗口,输入下列3条命令cd d:cd d:\web\index.phpphp -S localhost:80802 ...
- Could not determine type for java util List
问题场景:在实体类中需要使用List集合存储字段,启动时找不到List类型 问题解决:在字段上添加@ElementColletion(targetClass=String.class)表示是一个集合映 ...
- DRF (Django REST framework) 中的Request 与 Response
DRF中的Request 与 Response 1. Request - REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST f ...
- day01计算机硬件基础
1.cpu\内存\硬盘 2.存储器 操作系统 是什么 为什么 如何用 1.什么是编程语言: 语言是一个事物与另一个事物沟通的表达方式 编程语言即程序员与计算机沟通的介质 计算机是程序员的奴隶 2.什么 ...