热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:Jenkins流水线(pipeline)实战之:从部署到体验

本文由编程笔记#小编为大家整理,主要介绍了Jenkins流水线(pipeline)实战之:从部署到体验相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了Jenkins流水线(pipeline)实战之:从部署到体验相关的知识,希望对你有一定的参考价值。




关于Jenkins流水线(pipeline)


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


关于blueocean


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


系列文章





  1. 《Jenkins流水线(pipeline)实战之:从部署到体验》;



  2. 《让Jenkins执行GitHub上的pipeline脚本》;



  3. 《Jenkins把GitHub项目做成Docker镜像》;


本篇实战概览


本文是《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服务的连接的,如果您想了解这方面的详情,请参《》; 


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. 接下来的页面是让用户选择安装哪些插件,如下图,点击红框内部,安装官方推荐插件:Jenkins流水线(pipeline)实战之:从部署到体验7. Jenkins开始自动安装插件,如下图,需要您稍作等待:Jenkins流水线(pipeline)实战之:从部署到体验8. 插件安装完成后,会要求设置账号和密码,设置完毕后点击右下角的“保存并完成”按钮:Jenkins流水线(pipeline)实战之:从部署到体验9. 点击右下角的"保存并完成":Jenkins流水线(pipeline)实战之:从部署到体验10. 至此Jenkins环境已经部署完成,查看已安装的插件列表,发现pipeline和blueocean都已装好:Jenkins流水线(pipeline)实战之:从部署到体验


体验pipeline


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





  1. 如下图,点击红框中的"新建Item":
    Jenkins流水线(pipeline)实战之:从部署到体验



  2. 在页面表单上填写任务名称,再选择"流水线",如下图:
    Jenkins流水线(pipeline)实战之:从部署到体验



  3. 接下来会弹出详细设置的表单,如下图,选择"流水线"的Tab页,在页面上直接输入一段pipeline内容,再点击左下角的"保存"按钮:
    Jenkins流水线(pipeline)实战之:从部署到体验上图红框3的源码如下:


pipeline {
    agent any 
    stages {
        stage('Stage 1') {
            steps {
                echo 'Hello world!' 
            }
        }
    }
}




  1. 点击下图红框中的"立即构建",即可执行刚才输入的pipeline脚本:
    Jenkins流水线(pipeline)实战之:从部署到体验



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



  3. 如下图,控制台打印了pipeline的信息: 至此,Jenkins环境已经准备完毕,接下来的实战将一起体验流水线的更多功能。




推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 本文介绍了Cocos2dx学习笔记中的更新函数scheduleUpdate、进度计时器CCProgressTo和滚动视图CCScrollView的用法。详细介绍了scheduleUpdate函数的作用和使用方法,以及schedule函数的区别。同时,还提供了相关的代码示例。 ... [详细]
author-avatar
欧毅儒
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有