[ジェンキンス]クラスタノードの管理| |分散クラスタパッケージのビルド・ジェンキンス

シーンの説明:

  自動化パッケージiOSの上に構築ジェンキンスの採択前に、パッカーとして1のMac miniを使用して。今、毎回梱包は約55分で、同時に2つのだけの仕事をパックすることができ、髪のバージョン週間、テストの同僚は、多くの場合、多くの時間を無駄にパッケージ上のキューインチ

この問題を解決するために、我々は3台のマシンがあるので、一方で包装することができ、配布されたパッケージを行うことを決め、待ち時間を短縮することができます。

  いくつかの研究の後、別のマシン上で起動しようとしているがアイドル状態にあるが、検索の過程で包装することができるどのマシン上ジェンキンスを検出するために、そして、(書き込みに)インタフェースを介して、ジェンキンスがインストールされている、我々はジェンキンスが行うことができましたクラスタ管理を。その後、慎重に、見てここに私の設定プロセスをレコードに遭遇した迅速な問題を達成するために、自分の書き込みインタフェース機能よりも私のニーズを満たすだけでなく、設定プロセスとソリューションすることができます。

私のニーズ:

  分散IOSの完全なパッケージ

環境説明:

 4台のマシンの合計は、私がcentOS7にマスターとしてインストールジェンキンスを使用します

  • マスターcentOS7
  • SLAVE1マック 
  • スレーブ2マック 
  • slave3マック
  • slave4窓(この記事でカバーされていないが、一時的にwindows_slave構成です) 

その他の説明:

  1. centOS7機設置ジェンキンス
  2. スレーブマシンは、指定したディレクトリに新しいフォルダを作成し、ジェンキンスをインストールする必要はありません。 
  3. スレーブマシンにフォルダを作成します:agent_jenkins(カスタムファイル名、ディレクトリ)、それはディレクトリスレーブにジョブマシンとして動作します 

完全な結果を構築します。

1.接続スレーブマシンに成功master_jenkins 

2. master_jenkinsは、ジョブを作成、ジョブがビルドにスレーブランタイム環境を使用して制御することができます

master_jenkinsのキューの3建設は、スレーブ機建設の様子を見ることができます

具体配置:

STEP1:ノードを作成します。

ジェンキンス>>ノードマネージャのシステム管理>>新しいノードのノード名を記入し、[固定ノード]ラジオボタンをチェック>> OK

注意:如果从来没有配置过节点,不会出现 Copy Existing Node选项

 

点“OK”后,进入node配置

step2:配置节点:

前置条件:

在slave新建文件夹:agent_jenkins

我创建文件夹目录位置是:/Users/xxx/agent_jenkins (你可以自己定义agent_jenkins在哪个目录新建,可以与我的不一样) 

如果没有找到“通过java web启动代理”,需要到 系统管理-全局安装配置 打钩“Enable Agent”。 

注意:在启动方法这一项,这里选择通过java Web的方式启动,我试了其它2项,jenkins都抛了异常

可能是我的配置有问题吧,但是为了不浪费时间,当我试到[通过Java Web启动代理]这个选项,不抛异常时,就果断把之前的异常抛到脑后了

 

配置参数说明:

结点名称:随意填,不过最好能见名知义,我这里用的格式是:slave机型_ip

描述:随意填

并发构建数:同时进行构建的最大数量,我这里设置为2

工作目录:从节点上的jenkins工作目录,即一开始我们创建的agent_jenkins所在的目录

标签:随意填,我们将项目关联到节点时,可以根据标签来(也可以根据结点名称)。即master_jenkins通过这个标签来判断job在哪个slave机器上构建

该项配置在 job >> configure>>General选项下

 

 

用法:因为我是用这台机器作IOS打包机,所以选择“只允许运行绑定到这台机器的job”,这外选项相当于设置结点优先级。

启动方式:通过java Web的方式启动,由master连接到slave来执行任务

可用性:尽量保持在线

工具位置:不设置

环境变量:不设置

 

 step3:解决配置完成后,slave连接不成功的问题

点击SAVE,这时候看到的界面如图: 并没有正确连接到slave52的机器

 点进去看一下报错信息:

 

 从提示信息可以看出,jenkins提供了2种解决方案:

注意:这2个方法都要在salve机器上操作

方法1.通过浏览器下载 slave-agent.jnlp文件,并安装

方法2.下载 agent.jar文件,并在命令行执行命令 

我操作过程中,这2个方法的区别是:

方法1我需要登录slave机器,在浏览器中下载slave_agent.jnlp,通过可视化的方式,进行安装;

方法2则是直接在本地下载jar文件,然后通过scp命令将jar文件复制到slave机器,最后通过java命令运行jar文件.在操作过程中,并不需要直接去登录slave机器(我本地环境是ubuntu,slave是mac,本地可以通过ssh远程连接mac)

方法1操作过程:

首先在slave_mac机器打开master_jenkins网址,jenkins>>节点管理>>打开slave_51节点>>点击Launch,浏览器将会下载一个文件,文件名是:slave-agent.jnlp

 

我在slave_mac上安装这个文件,此时可能会遇到一个错误:mac只允许安装来自appstore的应用. 

解决办法是,打开 系统偏好设置>>安全性与隐私>>通用>>在 允许从以下位置下载的应用选项栏中,选择 App Store和被认可的开发者选项 

然后双击 slave-agent.jnlp文件,就可以安装了,这时候会出现下面这个窗口

 

注意,不能将这个窗口关闭,否则master就会失去对该 slave的连接 

 

方法2操作过程:

我是在本地下载agent.jar文件的,然后将该文件复制至slave机器,命令如下:

wangju@wangju-HP-348-G4:~/Downloads$ scp /home/wangju/Downloads/agent.jar <username>@10.1.71.51:/Users/xxxx/agent_jar/
agent.jar                                     100%  771KB  10.8MB/s   00:00  

 ssh 连接slave机器,查看agent.jar文件已经复制到agent_jar文件夹下了

Mac mini:~ xxx$ cd agent_jar
Mac mini:agent_jar xxx$ ls
agent.jar

在slave机器命令行,执行命令

java -jar agent.jar -jnlpUrl http://10.2.1.92:8080/jenkins/computer/mac_10.1.71.51/slave-agent.jnlp -secret 42c65d0c9de7b44ef8516ea01fd1e75c402fd5fc1a525db02e0da1437d8cde46 -workDir "/Users/5i5j/agent_jenkins"

执行效果:

注意:在需要master连接slave机器的时间段,不能关闭命令行窗口,一旦关闭命令行窗口,master就会失去slave机器的连接

   

此时再master机器查看刚才新建的slave51机器,已经连接成功了(小电脑图标旁边没有 X 号了)

 

验证配置效果:

通过master-jenkins创建1个job,该job可以在slave机器上进行构建

操作步骤:

1.在master-jenkins,新建1个job

2.General>>Restrict where this project can be run(选择job要运行的节点机器)

Label Expression 选择我们刚刚新建的slave51机器 标签:mac_mini_slave

 

 

 

 

3.构建job,可以看到job已经启动了

   

 至此,就完成了jenkins集群的配置

 

 

参考文档:

和我的需求场景一致:

搭建jenkins集群

配置步骤比较详细

Jenkins 集群搭建 

jenkins节点管理参考以下2篇文档:

 

jenkins 节点管理

 

Jenkins使用教程之管理节点

おすすめ

転載: www.cnblogs.com/kaerxifa/p/12091963.html