Jenkins Master/Slaveアーキテクチャ
一Jenkins Master/Slaveアーキテクチャ
マスター/SlaveはServerとagentの概念に相当します。マスターはウェブインターフェースを提供して、ユーザーにjobとslaaveを管理させます。jobはマスターマシンで実行したり、slaaveに割り当てられて実行します。一つのマスターは、異なるjobまたは同じjobの異なる構成のために複数のslaaveを関連付けることができる。
jobがslaaveに割り当てられて実行されるとき、masterとslaaveは実は双方向のバイトストリームの接続であり、接続方法は主に以下の通りである。
1)マスターがsshでslaaveを起動する。
Jenkinsにはsshクライアントが内蔵されており、リモートのsshdと通信することでslaave agentを起動することができます。これは***unixシステムのslaaveにとって最も便利な方法です。***unixシステムは一般的にデフォルトでsshdがインストールされています。ssh接続のslaaveを作成するには、slaaveのhost名前とユーザ名とssh証明書が必要です。public/prvate keysを作成して、public keyをslaaveの~/.ssh/authorized_にコピーします。keysでは、prvate keyをマスターにあるppkファイルに保存します。junnkinsは自動的に他の構成作業を完成します。例えば、copy slavie agentのbinaryはslaaveを起動して停止します。しかし、あなたのjobは他のプロジェクトに依存しています。自分で設定してください。
2)マスターはWMI+DCOMでWindows slaaveを起動します。
WindowsのSlaveに対して、JenkinsはWindows 2000及び今後内蔵する遠隔管理機能(WMI+DCOM)を使用して、slaveに管理者アクセス権限があるユーザー名とパスワードを提供するだけで、jenkinsは遠隔的にwindows serviceを作成してから遠隔的に起動して停止します。
これはwindowsのシステムにとって最も便利な方法ですが、この方法は相互作用を示すGUIプログラムを実行することができません。
注意:他のタイプのリンクはしたくないです。この方式はslaveeの名前がとても重要で、slaveeのアドレスとしてslaveeにアクセスします。
3)自分のシナリオを実現してslaaveを起動する。
上のセットの方法が足りないなら、自分のシナリオを実現してslaaveを起動することができます。起動スクリプトをマスターに置いて、必要な時にこのスクリプトを呼び出してslaaveを起動する必要があります。
典型的には、あなたのスクリプトは、SSH、RSH、または同様の方法(windowsでは、cygwinまたはpspexecによって達成できます)のようなリモートプログラムを使用して実行されます。
スクリプトの最後に、Java-jar slaave.jarと同様にslaaveを起動する必要があります。slaave.jarはhttp://yourjenkinsserver:port/jnlpjars/slave.jarダウンロードは、このslaave.jarを台本の最初にダウンロードして、slaave.jarの正しいバージョンを保証することもできます。このpluginは、ssh slavie pluginを使用すると自動的にslavie.jarを更新します。
4)Java web startでslaaveを起動する。
jave web start(jnlp)は、他の方法でslaaveを起動します。この方法でslaaveにログインしてブラウザを開いてslaaveの設定ページを開いて接続してください。また、Windows serviceとしてインストールして、slaaveをバックグラウンドで動作させることもできます。
もしあなたが実行するプログラムがUIのインタラクションを必要とするなら、以下の方法を使います。slaaveシステム上でjunnkinsユーザを作成し、自動ログインを設定して、システムのstartup itemsでslaave JNLPファイルのショートカットを追加して、slaaveがシステム登録時に自動的に起動します。
5)直接slaaveを起動する
この方法はjavaウェブstartと似ています。簡単に***unixシステムでslaaveをdaemenとして実行できます。slaaveをJNLPタイプに接続して、slaaveマシンで実行する必要があります。
マスター/SlaveはServerとagentの概念に相当します。マスターはウェブインターフェースを提供して、ユーザーにjobとslaaveを管理させます。jobはマスターマシンで実行したり、slaaveに割り当てられて実行します。一つのマスターは、異なるjobまたは同じjobの異なる構成のために複数のslaaveを関連付けることができる。
jobがslaaveに割り当てられて実行されるとき、masterとslaaveは実は双方向のバイトストリームの接続であり、接続方法は主に以下の通りである。
1)マスターがsshでslaaveを起動する。
Jenkinsにはsshクライアントが内蔵されており、リモートのsshdと通信することでslaave agentを起動することができます。これは***unixシステムのslaaveにとって最も便利な方法です。***unixシステムは一般的にデフォルトでsshdがインストールされています。ssh接続のslaaveを作成するには、slaaveのhost名前とユーザ名とssh証明書が必要です。public/prvate keysを作成して、public keyをslaaveの~/.ssh/authorized_にコピーします。keysでは、prvate keyをマスターにあるppkファイルに保存します。junnkinsは自動的に他の構成作業を完成します。例えば、copy slavie agentのbinaryはslaaveを起動して停止します。しかし、あなたのjobは他のプロジェクトに依存しています。自分で設定してください。
2)マスターはWMI+DCOMでWindows slaaveを起動します。
WindowsのSlaveに対して、JenkinsはWindows 2000及び今後内蔵する遠隔管理機能(WMI+DCOM)を使用して、slaveに管理者アクセス権限があるユーザー名とパスワードを提供するだけで、jenkinsは遠隔的にwindows serviceを作成してから遠隔的に起動して停止します。
これはwindowsのシステムにとって最も便利な方法ですが、この方法は相互作用を示すGUIプログラムを実行することができません。
注意:他のタイプのリンクはしたくないです。この方式はslaveeの名前がとても重要で、slaveeのアドレスとしてslaveeにアクセスします。
3)自分のシナリオを実現してslaaveを起動する。
上のセットの方法が足りないなら、自分のシナリオを実現してslaaveを起動することができます。起動スクリプトをマスターに置いて、必要な時にこのスクリプトを呼び出してslaaveを起動する必要があります。
典型的には、あなたのスクリプトは、SSH、RSH、または同様の方法(windowsでは、cygwinまたはpspexecによって達成できます)のようなリモートプログラムを使用して実行されます。
スクリプトの最後に、Java-jar slaave.jarと同様にslaaveを起動する必要があります。slaave.jarはhttp://yourjenkinsserver:port/jnlpjars/slave.jarダウンロードは、このslaave.jarを台本の最初にダウンロードして、slaave.jarの正しいバージョンを保証することもできます。このpluginは、ssh slavie pluginを使用すると自動的にslavie.jarを更新します。
4)Java web startでslaaveを起動する。
jave web start(jnlp)は、他の方法でslaaveを起動します。この方法でslaaveにログインしてブラウザを開いてslaaveの設定ページを開いて接続してください。また、Windows serviceとしてインストールして、slaaveをバックグラウンドで動作させることもできます。
もしあなたが実行するプログラムがUIのインタラクションを必要とするなら、以下の方法を使います。slaaveシステム上でjunnkinsユーザを作成し、自動ログインを設定して、システムのstartup itemsでslaave JNLPファイルのショートカットを追加して、slaaveがシステム登録時に自動的に起動します。
5)直接slaaveを起動する
この方法はjavaウェブstartと似ています。簡単に***unixシステムでslaaveをdaemenとして実行できます。slaaveをJNLPタイプに接続して、slaaveマシンで実行する必要があります。
java -jar slave.jar -jnlpUrl http://yourserver:port/computer/slave-name/slave-agent.jnlp
Slave
* slave jenkins, UID GID, slave ;
* jenkins home /home/jenkins, ;
* slave sshd,windows cygwin sshd;
* slave ntp client, ntp server ;
* sh slave , jenkins , sshd, java,ant,maven ;
* slave, slave :
#!/bin/bash JAVA_HOME=/opt/SUN/jdk1.6.0_04 PATH=$PATH:$JAVA_HOME/bin export PATH java -jar /var/jenkins/bin/slave.jar