Jenkins進級シリーズ——11 Jenkinsノードの構成を詳しく理解する


2014-03-02:lableラベルに対する理解を修正します.(1.532.1バージョンでは公式解釈が示されています)
2013-12-22:JNLPポートの修正を追加し、いくつかのエラーを修正しました.
 
Jenkinsには強力な機能があります.分散構築(Jenkinsの構成ではノードと呼ばれます)、分散構築は同じコードを異なる環境(WindowsやLinuxシステムなど)でコンパイル、テストすることができます.このようにするメリットはたくさんあるので、自分で考えてみましょう.そしてJenkinsが構築したコードと生成物は最後に主ノードに自動的にコピーされる.
注意:ノードホストにJDKが存在しない場合、Jenkinsは自動ダウンロードしますが、Oracleはプログラムの自動ダウンロードを制限し、ダウンロードに失敗し、この問題を繰り返します.
提案:すべてのUnixまたはWindowsマシンの環境パスが統一されている(JDK、Ant、Mavenなど)、管理が容易で、奇抜な問題が発生しにくいというメリットがあります.
 
Jenkinsバージョン:1.532(バージョンによって構成が異なる場合があります)
ノード構成インタフェースに入ります.
システム管理→管理ノード→新規ノード(左上隅)
 
ノード名:アルファベット、数値、またはアルファベットと数値の組み合わせを推奨します.名を見て意を知ったほうがいい.句読点や中国語は推奨されません(中国語のネーミングは問題ありませんが、Jobでは参照できません)
Dumb Slave:新規ノード
≪既存のノードのコピー|Copy Existing Nodes|oem_src≫:既存のノードから構成をコピーします(ノードが存在する場合のみ表示されます).
OKをクリックして次の構成に進みます
 
Name:ノード名
Description:ノードの説明、中国語のサポート
#of executors:最大同時構築数(マシンの性能に応じて、単一のクアッドコアcpuは5を超えないことを推奨)【数値でなければならない】
Remote FS root:ノードのルートディレクトリ(注意:ディレクトリが存在しない場合、自動的にディレクトリが作成されます.ディレクトリに読み書き権限が必要です.そうしないと、hudson.util.IOException 2:Failed to copy xxxとエラーが表示されます)
Labels:タグ(ラベルとも呼ばれる)は、マルチノードをグループ化するために使用され、タグ間をスペースで区切る.例えば'refression java 6'はノードに'regression'と'java 6'をマークします.
例えば、Windowsシステムの構築ノードが複数あり、ジョブもWindowsシステム上で実行する必要がある場合は、すべてのWindowsシステムノードを「windows」とマークし、ジョブを「windows」とマークするように構成することができます.これであなたのJobはWindowsノード以外のノードでは実行されません.
使用法:できるだけこのノードを使用する/このマシンにバインドされたJobのみを実行することを許可する(あなたのニーズに応じて、2つ選択してください)
Launch method:実行方法には4つのオプションがあります.第1、2の方式で構成することをお勧めします.詳細は次のとおりです.
  • 【推奨】Launch slave agents on Unix machines via SSH Unix(Linuxを含む)マシン上でSSHチャネルを介してノード(UnixとLinuxに適用)を接続するHost:ノードホストのipアドレスCredentials:認証情報(空または選択不可の場合は、システム管理→Manage Credentialsで構成してください.Manage Credentialsの構成は簡単ですが、ここでは説明していません.Manage Credentialsの構成が完了すると、ノード構成ページをリフレッシュして表示されます.)Port:ポートデフォルト22 JavaPath:[オプション]JDKパス、デフォルトはmasterノードと同じです.パスはJavaプログラムに指定する必要があります:/path/bin/java JVM Options:[オプション]JVMオプションパラメータPrefix Start Slave Command:[オプション]何に使うパラメータが分からないSuffix Start Slave Command:[オプション]何に使うパラメータテストを知らないUnixコマンドを使用して、[SSH]Starting slave process:[prefix Start Slave Command]cd'/path'&/path/bin/java-jar slave.jar [Suffix Start Slave Command]
  • 【推奨】Launch slave agents via Java Web Start Java Web Start Java Web Startを介してノード(Javaプログラムをサポートするすべてのシステムに適用)を接続するTunnel connection through:[オプション]ポート転送の場合にJVM options:[オプション]JVMオプションパラメータを使用する方法の欠点:ノードがダウンした場合、プライマリノードが自動的に再起動できない.   
  • Launch slave via execution of command on the Masterメインノードのコンソール接続ノードを通じて、内容を書く前にJenkinsの助けをツッコミ、雲の中の霧の中にあると言った.このオプションの下でLaunch commandの助けを見に行くべきです.Jenkinsの開発者は、いくつかの企業にN++ノードがある可能性があることを考慮しています(N>=あなたは推測します!).インタフェースで構成すると、バージョンアップなどの操作が面倒になります.shellスクリプトを使用して管理ノードを構成できます(便利そうです).具体的なシナリオは自分で書く必要があります.Launch command:Unixスクリプトを実行するコマンド:sh aaa.sh
  • 【使用を推奨しない】Let Jenkins control this Windows slave as a Windows serviceはJenkinsノードをWindowsサービスに追加します.このオプションはLaunch slave agents via Java Web Startよりもサービスに安定しています(ヘルプドキュメントはこのように言います).このような実行方式では、このシステムはユーザーにログインできません.この配置方式は非常に面倒で振り回されている.詳細については、Administrator user name:ドメイン/管理者アカウントPassword:パスワードHost:ノードホストIPまたはドメイン名Run service as:Use Local System User:ローカルシステムユーザーLog on using a different accountを使用:異なるユーザーを使用してUser nameにログインするアカウントPassword:パスワードUse Administrator account given above:上のユーザーを使用してPath to java executable:[オプション]JDKパスにログインします.C:Windowssystem 32javaなどのJavaプログラムに指定する必要があります.Exce JVM options:[オプション]JVMオプションパラメータ
  •     
    Availability:
  • Keep this slave on-line as much as possible:できるだけノードをオンラインに保つ【推奨】
  • Take this slave on-line according to a schedule:スケジュールに従ってオンライン(Linuxのようなタイミングタスク)
  • Startup Schedule:Linuxタイミングタスクと同様の時間.次のようになります.
                       # every fifteen minutes (perhaps at :07, :22, :37, :52)
                       H/15 * * * *
                       # every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24)
                       H(0-29)/10 * * * *
                       # once every two hours every weekday (perhaps at 10:38 AM, 12:38 PM, 2:38 PM, 4:38 PM)
                       H 9-16/2 * * 1-5
                       # once a day on the 1st and 15th of every month except December
                       H H 1,15 1-11 *
                            H Jenkins             ,              

    Scheduled Uptime:タスク時間を超えた後、何分遅れてオフラインになりますか.この値がオンラインの合計時間(単位:分)より大きい場合は、オンラインは維持されます(数値でなければなりません).
    Keep on-line while jobs are running:Jobが構築されている間(オフライン時間に達した)オンラインを維持し続けます
  • Take this slave on-line when in demand and off-line when idle:Jenkinsを必要に応じて自動的に接続またはオフラインにする
  • In demand delay:JenkinsにJobがこのノードで構築する必要がある場合、タスクキューがタスクステータスに入るまでどのくらい待つ必要があるかを教えます(数値でなければなりません).
    Idle delay:Jenkinsに何分以内にJobが構築しなければオフラインになるかを教えます【数字でなければなりません】
    Node Properties: 
  • Environment variables:環境変数の設定(スクリプトで参照できるので便利です(^o^)/~)
  • Tool Locations:ツールのディレクトリ【推奨】.説明:システム設定のさまざまなツールディレクトリを置き換えることができます.例えば、JDKディレクトリ、Antディレクトリ、Mavenディレクトリなど.利点は、Job構成を変更せずに、WindowsやLinuxなどの異なる環境でJob構成が共通していることです.便利ですね(^o^)/~
  • これで、ノードの構成作業が完了したら、「Save」をクリックして保存します.次のノードへの接続:
    Launch slave agents via Java Web Startの2つ目の接続方法だけを紹介します.Launch slave agents on Unix machines via SSHはクリックして保存すると自動的に接続されます.Launch slave via execution of command on the MasterとLet Jenkins control this Windows slave as a Windows serviceオプションは構成テストされていないので、自分で振り回しましょう.
     
    上の図に示すように、ノードを起動するには2つの方法があります(いずれもJNLP方式です.JNLP接続にはポートが必要ですが、デフォルト接続ポートはランダムで、ポート変更システム設定→Configure Global Security→JNLPノードエージェントのTCPポート)
    2つの方法で起動します.
    1.Launch agent from browser on slaveダウンロードファイルslave-agent.jnlpファイルをダブルクリックして開きます.
    一般的にWindowsシステムで使用するにはjavawsが必要です.exe(Javaのbinディレクトリで見つけられる)プログラムを開くことができます.エラーが表示された場合は、JDKをアンインストールして再インストールしてください.次の図のように正常に起動しました.
     
    左上隅のFileをクリックしてInstall as a serviceを選択するとWindowsのサービスに追加できます(デフォルトの起動は自動的に開始されます).
    2.Run from slave command line   javaws  http://xxxx/slave-agent.jnlp権限を設定すると、後ろには読めないランダムキーの列があります.
     
    ダウンロードjarはローカルに移動し、保存slaveに入ります.JArのディレクトリ、コピー貼り付けjava-jar slave.jar -jnlpUrl http://xxxxxを行ないます.
     
    さて、Jenkinsノードの配置展示は一段落しました.質問があれば、伝言をお願いします.
    回転:http://www.cnblogs.com/zz0412/p/jenkins_jj_12.htmlクリックしてリンクを開く