2017-06-12 15 views
3

私はジェンキンスをサーバーにインストールしました。デフォルトでは、そのジョブはそのサーバーでのみ実行されます。私の必要条件はJenkinsからです。同じジョブを複数のサーバーに実行する方法は?私はジェンキンスの新しいです、助けてください。基本的に私の目的は、複数のサーバーにアプリケーションを展開することです。複数の仮想サーバーでJenkinsジョブを実行する方法は?

答えて

2

あなたはジェンキンの仕事をすることができるように、ジェンキンの仕事として、シェフやカピスラノのような構成管理ツールを使用することができます。カピストラーノ料理の本の下にあるサーバーの数を言及することができます。また、ジョブを構築するときはいつでも、すべてのサーバーでタスクを実行します。

pssh(パラレルssh)のようなツールもあります。sshを使用したい場合に使用します。

0

複数のサーバーに展開できるポストビルド手順でシングルジョブを使用すると思います。

あなたはマスタースレーブの概念を使用することができます任意の修正

+0

Jenkinsが他のサーバーでsshを実行して、他のサーバーでジョブを実行する方法。 – Sidhartha

1

なら、私は場合に知ってみましょう。他のすべてのマシン、つまりあなたの場合は他のアプリケーションサーバーにjenkins slaveをインストールします。あなたはhereからJenkinsマスタースレーブの概念についてもっと知ることができます。

他のアプリケーションサーバーでも同じジョブを実行できます。

+0

これは本当に助けていただきありがとうございます。今度は、スレーブを追加することで複数のサーバに同じアプリケーションを配備することができました。 – Sidhartha

0

マスタースレーブの概念を使用すると、複数のスレーブノードにJenkinsスレーブエージェントを追加することができます。

あなたはジェンキンスノードのパイプラインの構文を使用して、またはビルスクリプトを通じてAnsible-脚本を使用して、いずれかの2通りの方法で展開することができます:

node('node1') { 
    // Building Stages on node 1 
} 

node('node2') { 
    // Building Stages node 2 
} 

セカンドを:Jenkinsfileに次のように

最初の方法は次のようになります

node('master_node'){ 
// master node has the ansible-playbook 

ansiblePlaybook credentialsId: 'ansible_ssh_user', inventory: 'path_to_inventory_file', playbook: 'path_to_playbook', sudo: true, sudoUser: 'sudo_user_name' 

} 

この方法では、ジェンキンスマスターノード上Ansible-プラグインをインストールする必要があります。Jenkinsfileに従うような方法は次のようになります。 とし、インベントリファイルに必要なすべてのノードを配置することができます。

偶数に加えて2つの方法の主な違いは、第1の方法は逐次実行を提供し、第2の方法はAnsibleを使用して並列実行を提供します。

関連する問題