
方法/步骤
打开Jenkins>点击Manage Jenkins >再点击Manage Nodes
进入node界面,选中你需要注入环境变量的node,node名为test,label也设置为test。用于后面指定job运行在特定的node上。
勾选Node Properties下面的Environment variables选项框,然后点击Add按钮就会出现输入环境变量的名字和值的选项框。
输入你需要的变量名和变量值,例如 Name:IPAdress, Value: 192168113然后点击save
返回Jenkins首页,点击进入名为testjob的job >然后单击configure,确认该job的标签是test
点击Add build step,选择Excute Windows batch command
在command框中输入你的需要引用到环境变量的命令,例如
telnet %IPAdress%
Same Parameters Jenkins Job
解决
Jenkins中,有这样的一个规则:
当有一个任务,正在排队(排队等待正在进行的任务);这时候,重新开始一个新的任务,而这个任务的参数,完全跟正在排队的任务的参数(Parameters)一样时,这个新的任务,将不会进入排队,也就是直接被忽略了。
既然知道了原理,解决方法很简单,只要添加一个参数项,填入与其它Job不一样的参数,任务的参数判断不一样,就不会被忽略掉了。
有两种建议的方法:
方法1:添加一个参数项叫DESCRIPTION,让触发任务的同学把“为什么要进行这个任务”写上去。 这样也方便了后边进行任务的追踪。
方法2:使用Jenkins插件 Random String Parameter ,然后添加参数类别选择Random String Parameter。这样,每次触发任务,都会生成一个随机字符串的参数,来避免相同参数的任务被过滤。
对于我,是两种方法都同时使用了
参考文章:
>
1 、 系统 参数
(1)构建服务器访问路径:
(2)JDK版本(根据各产品的具体要求选择):
1) jdk170_60
(3)Maven版本(根据各产品的具体要求选择):
1) apache-maven-323
2) apache-maven-322
3) apache-maven-321
4) apache-maven-cif
(4)Jenkins信息:
1) Jenkins version 1609 可升级
2) $Jenkins_home: home/ciserver/jenkins
3)Jenkins工作目录:/app/Jenkins/
2 、 授权 策略
(1)Configure Global Security中的授权策略,采用Role_Based_Strategy方式;
(2)根据人员的角色和职责建立Global roles;
(3)根据不同的产品系统及其开发阶段,建立project_roles;
(4)为jenkins账户建立global role和project role的授权矩阵,即用户访问权限矩阵;
(5)用户界面是基于他拥有的权限和任务所属的阶段和所归属的视图(View)进行显示;
Jenkins构件任务命名规范参考32章节,jenkins账户管理参考第4章节。
3、构建管理
3 1 构建 命名 规范
用户登录后,界面所能执行的 *** 作的基于以下2点,缺一不可:
(1)用户所拥有的权限;
(2)根据命名规则过滤后的任务视图和任务;
请务必按照下面的命名规范进行任务的创建和修改。
3 11 任务视图 命名
任务视图命名格式:
产品/系统名称(缩写)_阶段,阶段缩如(DEV、ST、UAT、PRD),如下图红线标注所示:
图3-1 任务视图命名示例
3 1 2 任务 命名
任务的命名格式:
系统任务:阶段缩写_产品/系统(缩写);
子系统和模块任务:阶段缩写_产品/系统缩写_子系统/模块缩写
3 2 参数化构建
321 构建 参数列表
321 常 用 的参数 配置
3 3 分布式构建
考虑到构建效率和后续构建任务的扩张;通过配置jenkins Master-slave架构进行分布式构建;
DEV阶段的构建在slave进行。
3 31 slave节点 配置
3 32 slave节点任务 配置
(1)DEV阶段的构建,在20610jenkins服务器上建立slave节点,将各产品部的构建任务分配到对应的节点去运行(包括工作空间,本地仓库,编译运行环境);
在DEV阶段的任务配置中,勾选“Retrict where this project can be run”, Label Expression填写各slave标签名。
4 、 jenkins账户 管理
(1)jenkins账户统一由组织级管理员建立和维护,jenkins账户命名格式为:姓名全拼;用户可登陆后修改;
(2)jenkins账户按照用户类别分为,admin,系统管理员,构建人员,guest;
1) Admin负责整个jenkins服务器的管理;
2)系统管理员的具有其负责的产品库的4个阶段所有任务的创建,配置权限;
3)构建人员为产品开发人员,根据需要开放四个阶段的构建任务的执行和配置权限;
4)guest账户仅供有查看需求的员工使用;
5)普通用户账户权限申请和权限变更,由系统管理员或分支管理员向组织级CM申请。
5、J enkins基本 *** 作
51 登录jenkins
申请账户后,在浏览器中输入 >
1 rebuild 按钮: 需要装 rebuilder 插件
2 hidden类型的parameter: 需要安装 hidden parameter 插件
3 jenkins 任务参数的值随其他的变量值改变而改变: 需要安装 active choice 插件
>
研究jenkins parameters发现其提供了file 类型的参数。但是发现官方文档和我们大大小小的job,都没有推荐或使用这个参数。那么这个参数有用吗?还有为啥官网都没有示例,但是参数类型却在呢?
带着疑问,搜了下jenkins issues。发现这个参数其实很早就提出来了,但是一直还处于开发阶段,涉及到file,影响的点很多。我们能想到包含这些:IO,文件大小,文件类型,文件样式,文件解析,文件存储,异常处理等等。
但是有没有办法解决呢?有的。我去爬楼发现了这个方法:
在share library里配置以下信息(share library的配置可以看早期写的文章: >
下载Jenkins包
注意这里直接下载war文件,以Java服务的形式启动。
启动命令
启动日志
访问本地端口:8090
该页面会提示初始登录密码的位置,查看该文件中初始密码,并完成登录。
安装推荐插件
登录之后先把推荐的插件装上。
创建用户
插件安装完成之后会提示创建用户。
这样初始化完成。
重新启动:restart
基础配置
打开: Manage-Jenkins 选项,配置 Global-Tool-Configuration 选项:
配置组件:JDK、Git、Maven,采用开发环境的组件版本;
插件安装
安装如下插件:
简介:基于Jenkins完成本地的Git仓库项目打包;
保持构建的天数:3天,保持构建的最大个数:10个;
前置 Pre-Steps 步骤,这里执行一次maven版本查看:
构建 Build 步骤,这里直接写项目的pom路径,注意执行的maven命令:
后置 Post Steps 步骤,注意选择构建成功后才执行,自行忽略这里shell语法的不入流组合:
上述配置完成后,打开任务页面,执行如下 *** 作:
这样就可以通过jenkins完成本地项目的打包和启动了。
简介:通过配置用户API访问的token令牌,脱离jenkins控制台,直接触发构建任务;
进入用户面板的设置选项,配置 API Token :
注意这里生成令牌后要立刻复制下来,页面会提示token无法复现。
任务配置的构建触发器模块,设置远程构建的令牌:
上面已经给到token的使用方式。
通过如下方式,直接触发上述构建任务的流程:
这里通过脚本直接请求URL的方式触发流程。
创建MavGit任务,这里不做过多的配置,与本地仓库相比,只是把仓库地址换成Gitee地址,只配置仓库url和分支即可,其他采用默认:
因为是开放的仓库地址,所以不用配置账号密码,默认指定master分支,然后执行build构建。
上面流程执行完后,查看MavGit的工作空间: /jenkins/workspace/MavGit :
这里可以明显发现,仓库的代码已经被pull下来,并且完成了自动打包流程,后续结合shell脚本完成jar启动管理即可。
同系列文章 : 服务部署发布 灰度模式 自动化流程 消息中间件改造 微服务组件二次浅封装 源码仓库
在 上一篇文章 中,我们介绍了Jenkins的安装,本篇文章,继续介绍Jenkins,进入Jenkins *** 作界面之后,先了解一下系统管理的相关配置。
这几个目录都是可以修改的, 一般没有特殊需求不做修改,如果指定某个目录需求修改,对于Jenkins来说只是改了数据的存储目录,并不会影响Jenkins的执行。
执行者数量,可以理解为并发量,即Jenkins配置多个项目构建任务,同时执行的最大数量。
一般会通过自动执行配置错开,尽量不要并发。当然如果涉及多个项目需要同时处理的时候,就需要把执行者数量改大,来支持更多的并发处理。
生成前等待时间,是为了给构建任务一个缓冲时间。默认为5秒,一般也不用修改。
工具位置(Tool Locations),是配置所有项目构建任务的默认工具,配置之后新建项目构建任务时便默认将这个工具加入到此项目的配置之中,而不需要单独对其进行设置。
环境变量(Environment variables):定义键值对(Key-Value),只需要引用该参数,就可以获取对应的值。
Jenkins URL,这个设置用于邮件发送的地址,用来在邮件中产生链接地址。一般可以配置内网IP和对应的端口8080。
需要设置该邮箱对应的SMTP服务器,以及认证的账号密码。设置完成之后就可以通过邮箱发送邮件了。
点击插件管理,即可进入插件管理页面。
Jenkins有着非常易于管理和配置的可视化管理界面,算是很人性化的管理,所有的 *** 作只需要点击界面按钮就可以完成,配置非常简单,相当容易上手学习。
扩展参考:Jenkins+Gitlab通过脚本自动部署回滚web项目至集群
1):Gitlab服务器:ubuntu 192168152131 ---参考搭建:Linux安装gitlab,docker安装gitlab教程
2):Jenkins服务器:ubunu 192168152130 ---参考搭建:linux安装Jenkins,或docker安装Jenkins教程
在服务器上生成ssh-keygen,用于配置web服务器和Gitlab服务器。
3):web服务器:centos 192168152150 ---已搭建好LNMP环境
4):开发者电脑:Windows+key密钥 (用于提交代码)
1:在gitlab创建项目Test Project
21): 配置一个开发者电脑的ssh公钥到gitlab
配置一个开发者电脑的ssh公钥到gitlab,这样才能模拟开发上传代码到gitlab。
windows生成key过程及git安装,可参考:Windows下git和github的使用图文详细教程_the丶only的博客-CSDN博客_github win
在windows测试clone,和提交代码。
注:最新版git 已经将默认分支master改为main了。所以看到main,而不是master不要太奇怪
测试成功,在gitlab也显示有indexhtml文件。
22): 配置jenkins公钥到gitlab
同理,同样需要jenkins公钥,因为jenkins也需要拉去gitlab的代码。
在 jenkins服务器 上查看公钥并复制添加到gitlab,并命名为jekins。
1:插件管理,安装插件
jenkins本身没什么功能,主要是依靠插件来实现各种强大的功能。
基本需要添加的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter
可以在 Manage Jenkins >> Manage Plugins 查看管理插件。在Available 选项搜索安装插件即可。
安装完成后,重启Jenkins。
2:添加需要部署的web主机
在 Manage Jenkins >> Configure System 中往下翻,找到 Publish over SSH 选项,点击add ssh server。
在Jenkins服务器上,查看私钥,注,是私钥,不是公钥。
将私钥填写在key位置,还有添加web服务器相关信息。
注:如果测试报错如下
Failed to connect or change directory
jenkinspluginspublish_overBapPublisherException: Failed to add SSH key Message [invalid privatekey: [B@2e54414f]
是因为默认用ssh-keygen命令,默认生成了OPENSSH 格式密钥。而Jenkins暂时不支持这种私钥,私钥开头结尾如下:
所以,需要生成rsa密钥格式的。用开头说的ssh-keygen加其他参数生成即可。
私钥开头结尾如下:
再次测试,显示success,则成功。然后点击save保存即可。
3:构建任务项目
首页创建任务或者一个项目
命名为web-project,选择为freestyle project 自由项目。然后ok确认。
31):源码管理 Source Code Management
选择源码管理,添加gitlab的项目clone地址。
注:最后路径选择分支,我gitlab主分支名字为main,如果是master,则写master,或者合并的其他分支。
在add添加用户
添加完成后,选择git用户,这时没有红色提醒,说明已成功连接
32):构建触发器 Build Triggers
现在Build Triggers,勾选build when,其他默认,并记下链接 >
以上就是关于jenkins执行脚本的环境变量中,如何获取执行全部的内容,包括:jenkins执行脚本的环境变量中,如何获取执行、Jenkins同参数Job无法进入排队的问题解决、Jenkins持续集成使用指南等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)