一 什么是Jenkins的分布式构建和部署
  Jenkins的分布式构建,在Jenkins的配置中叫做节点,分布式构建能够让同一套代码或项目在不同的环境(如:Windows和Linux系统)中编译、部署等。

二 什么时候使用节点和作用
  当我们使用多台服务器时,并且配置了tomcat或jboss集群服务,可通过jenkins的节点配置,将jenkins项目发布在不同服务器上(分布jenkins工作空间,部署项目到不同服务器的tomcat或jboss),这就形成了jenkins的分布式。节点服务器不需要安装jenkins(只需要运行一个slave节点服务),构建事件的分发由master端(jenkins主服务)来执行。

三 节点服务器的要求
注意:如果节点主机上不存在JDK,Jenkins会去自动下载,但Oracle对程序自动下载做了限制,会导致下载失败,然后一直循环这个问题。
建议:所有Linux或者Windows机器的环境路径统一(如:JDK、Maven),安装位置和jenkins所在服务器的JDK和maven必须一致,也就是说jenkins所在服务器和各个节点服务器中的JDK和Maven目录和文件名都是一样的。以便于管理、不容易出现问题。
四 节点管理
通常的情况下在我们的一个项目当中,项目会有多个分支系统,而我们不可能为每个分支系统都配置一个jenkins服务,这样既浪费资源,也增加构建部署的难度,为了解决这个问题jenkins给使用者提供了非常强大的分布式部署功能,也就是节点的管理,我们只需要在master节点配置好jenkins服务,通过指定slave节点来进行对应的系统进行部署就可以达到分布式部署
系统管理,进入管理节点页面

jenkins服务所在服务器为master节点,master负责分发任务给slave节点
这里展示了节点的部分信息

以windows为例 slave节点配置
1.点击新建节点

2.输入节点的名称,并且选中permanent agent,点击ok

3.节点创建成功后会自动跳转到配置页面
名字:节点的名字
描述:说明这个节点的用途等
of executors:并发构建数量
远程工作目录:用于存放jenkins的工作空间的
标签:分配job会以标签的名称去分配
用法:节点的使用策略
启动方法:windows的话就不要给自己添堵了,选择 Java web start

4.这时节点也配置好了,但是slave节点还是没有连接的状态,这时我们使用slave机器进入Jenkins的管理节点页面

点击该节点,进入节点页面,可能出现这样的状态

点击Go to security configuration screen and change it,然后将 TCP port for JNLP agents选择随机选取

然后进入控制面板,将防火墙关闭(不做描述,自行处理)
回到slave页面,这时页面出现launch 按钮

点击launch ,这时会让我们下载一个文件,下载到我们的slave节点的远程工作目录就可以了

点击图中的launch按钮,他会提示你下载该文件slave-agent.jnlp.按照提示下载该文件,并保存在本地。我们这里需要确认两个问题是否存在:

问题一,确认slave-agent.jnlp 是用javaws来运行的,而不是java.exe 或者是javaw.exe来运行,因为一般的机器默认是采用java.exe启动的。我曾经因为这个问题折腾了好久。

问题二,将slave-agent.jnlp用notepad打开后,确认其中的URL是可用的Jenkins地址。其中的配置可能是这样的:

<jnlp spec="1.0+" codebase="http://16.158.69.53:9999/jenkins/computer/irshost12.tc.tb.com/">
<information>
<title>Slave Agent for irshost12.tc.tb.com</title>
<vendor>Jenkins project</vendor>
<homepage href="https://jenkins-ci.org/"/>
</information>
<security><all-permissions/></security>
<resources><j2se version="1.5+"/><jar href="http://16.158.69.53:9999/jenkins/jnlpJars/remoting.jar"/><property name="hudson.showWindowsServiceInstallLink" value="true"/>
</resources><application-desc main-class="hudson.remoting.jnlp.Main">
<argument>60c101541d377ad629da21b37c24cd6227edef74b97ff663c5b09e261ac2d5d6</argument><argument>irshost12.tc.tb.com</argument><argument>-url</argument>
<argument>http://16.158.69.53:9999/jenkins/</argument>
</application-desc>
</jnlp>
确认其中的url地址是上面的正确的地址,而不是localhost,因为我的jenkins部署在本地测试。

安装slave-agent.jnlp之前必须要在节点服务器安装JDK环境,至于如何安装JDK这里就不在说明了,网上教程很多,下面安装slave-agent.jnlp,双击slave-agent.jnlp文件,出现下图界面:

然后双击slave-agent,出现connected说明连接成功

上面的窗口关闭或者电脑重启后,这个节点也就关闭了,所以最好把这个节点加入window服务。

点击窗口的file菜单,点击Install as a service,完成

  

成功示例:(红框所示)

现在回到jenkins的管理节点页面,刷新一下界面,发现slave节点的红色 的那个X已经没有了,说明连接成功

5.关联job,进入job的配置页面,勾选Restrict where this project can be run,并且在Label Expression输入奴隶节点的标签名(一个标签有可能对应多台slave节点),也可以输入slave节点的名称

6.配置一条构建的命令

7.进行构建,查看控制台信息,可以看到运行的确实是windows的机器

linux与mac的配置大同小异,只需稍加改动就可以了,这样配置好之后就可以实现分布式构建,在做自动化测试的时候我们只需要将测试服务器配置为slave节点,配置好相应的job来监控开发job或者开发的代码是否有变动或者构建的动作,根据自己的情况执行测试项目的构建动作,从而实现持续集成

在安装过程中,可能会出现以下报错,导致安装失败:

在一些文档中,说是主机不信任客户机,但是没有说明该如何去解决(主机和客户机两边的防火墙都已经关闭了)

最终我用以下的方法成功运行了它:将"slave-agent.jnlp“文件用notepad打开,将文本中的“localhost”用主机的IP地址去代替,保存文件后用Java打开(Launch)即可;

Jenkins的分布式构建及部署(master~slaver)相关推荐

  1. Jenkins分布式构建和部署(master-slave)

    VOL 327 01 2021-12 今天距2022年31天 这是ITester软件测试小栈第327次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...

  2. Jenkins的Windows Slave分布式构建和部署

    1.新建的Slave:系统管理-->管理节点-->新建节点 远程工作目录 即是 节点服务器 站点文件存放目录 在配置节点时 启动方法 配置的选项中的 Launch agent via Ja ...

  3. 怎么把项目推到gitlab上_Gitlab利用Webhook+jenkins实现自动构建与部署

    之前部署了Gitlab的代码托管平台和Jenkins的代码发布平台.通常是开发后的代码先推到Gitlab上管理,然后在Jenkins里通过脚本构建代码发布. 这种方式每次在发版的时候,需要人工去执行j ...

  4. gitlab 自动推送代码到gitee_Gitlab 利用 Webhook+jenkins 实现自动构建与部署

    之前部署了Gitlab的代码托管平台和Jenkins的代码发布平台.通常是开发后的代码先推到Gitlab上管理,然后在Jenkins里通过脚本构建代码发布. 这种方式每次在发版的时候,需要人工去执行j ...

  5. 【Gitlab+Jenkins+Ansible】构建自动化部署

    说明: Gitlab.Jenkins.生产服务器.测试服务器上都需要安装Git. 一.安装Gitlab 1.主机配置 IP: 10.10.10.105OS: CentOs7.5Gitlab版本:git ...

  6. [原]接上-Linux环境-Jenkins实战-分布式构建-自动化持续集成(二)SVN构建及发布

    2019独角兽企业重金招聘Python工程师标准>>> 这次先解决同事使用过程中遇到的几个问题: 1.项目依赖jar包下载失败? 查看配置的maven 中 setting文件,和项目 ...

  7. 阿里云 jenkins svn maven 构建自动化部署

    第一步:下载 jdk .tomcat.jenkins.maven jdk:http://www.oracle.com/technetwork/java/javase/downloads/index.h ...

  8. k8s实现jenkins master-slave分布式构建方案

  9. gitlab ci 自动化部署_前端gitLab加jenkins自动化构建和部署,以及服务器常用的linux命令行操作,免密登录...

    常用的linux命令行操作 将项目部署到服务器后,需要查看文件是否已经部署成功,已经对文件进行增删改查操作,就需要用到命令行操作,常用操作如下: ll 罗列出当前文件或目录的详细信息,含有时间.读写权 ...

  10. jenkins pipeline api获取stage的详细信息_Jenkins + Docker 助力 Serverless 应用构建与部署...

    本文来源: ServerlessLife 公众号 近日,使用 Serverless 开发了一个应用.其中 CI/CD,是需要考虑的一个问题.这里用到了 Jenkins 和 Docker.并且 Jenk ...

最新文章

  1. QoS策略及通过BGP传播—Vecloud微云
  2. js防止表单重复提交
  3. 用户如何有效地利用数据字典(转)
  4. Spring Tool Suite 4 自动提示功能
  5. oracle必备文件,oracle初学者必备基础
  6. 写给自己,梳理一下我现在对前端知识结构的理解
  7. ETL调优的一些分享
  8. 愤怒的小鸟python代码_Python 愤怒的小鸟代码实现:物理引擎pymunk使用
  9. 微型计算机原理与接口技术(慕课版),微机原理与接口技术
  10. 网络运营和网络营销有什么区别?
  11. gradle切换online/offline mode模式
  12. Box2D翻译_第二章
  13. Tcpdf操作html转pdf带页眉和页脚
  14. Spring mvc 中使用 kaptcha 验证码
  15. 宝塔BT面板专业版(付费)和免费版有什么区别?
  16. 职称评审被淘汰的诸多原因,可以赶紧为2022年评职称做准备
  17. 浅谈一个新人的大数据之路
  18. 马丁福勒《UML精粹》读书笔记_第一章
  19. 强凸性带来的 距离最优值的上下界
  20. 零基础ATMEGA8(1)

热门文章

  1. 笔记本重置找不到恢复环境_Win10重置找不到恢复环境需要安装介质的修复图文教程...
  2. hive查看表中列的信息命令_Linux查看硬件信息之dmidecode命令详解
  3. 【游戏客户端】制作节奏大师Like音游(下)
  4. 旧瓶装新酒——memcache作为DRDOS反射放大器
  5. MASM调试汇编代码(命令行方式)
  6. pythonmacd指标编写_利用python编写macd、kdj、rsi、ma等指标
  7. Ubuntu下将dmg文件转换成dcr和ISO文件
  8. 什么是Vue生命周期函数,有哪些函数?各自在什么时候执行?
  9. 【初级篇】网页引入live2d
  10. python文件转换为pyd