スレーブノードなしでJenkinsサーバーを使用しても問題ありませんか?


9

、私のチームは、我々は持つ1台のジェンキンスサーバ持つ1つのマスターノードと1つのスレーブノードと同じサーバ内に。Jenkins Pipelinesを使用し、すべてをで囲みますnode{}

同僚のチーム私はいくつかの理由のために、彼らが持っている、それを見てきた一つのマスターノードと無スレーブノードを。すべてのビルドはマスターノードで実行されます。

質問:

  • これは悪い習慣ですか?
  • マスターノードが1つしかない場合、悪い影響はありますか?
  • 私の設定(1つのマスターと1つのスレーブ)は悪い習慣ですか?

回答:


12

https://wiki.jenkins.io/display/JENKINS/Jenkins+Best+Practices

大規模なシステムでは、マスター上に構築しないでください。

一部のユーザーにジョブの設定のみを許可し、Jenkinsの管理は許可しない、より複雑なセキュリティ設定がある場合は、マスターノードでビルドを実行できないようにする必要があります。そうでない場合、JENKINS_HOMEディレクトリへの無制限のアクセス権があります。これを行うには、executorカウントをゼロに設定します。代わりに、すべてのジョブがスレーブで実行されることを確認してください。これにより、jenkinsマスターがより多くのジョブをサポートするようにスケーリングでき、$ JENKINS_HOMEの機密データが誤って/悪意を持って変更されることからビルドが保護されます。マスターで実行するジョブ(Jenkins自体のバックアップなど)が必要な場合は、ジョブ制限プラグインを使用して、そこで実行できるジョブを制限します。


1つのマスターノードとスレーブノードなし。すべてのビルドはマスターノードで実行されます。これは悪い習慣ですか?

マスターノードでジョブを実行すると、ジョブはJENKINS_HOMEディレクトリに無制限にアクセスできます

マスターノードが1つしかない場合、悪い影響はありますか?

スレーブはJENKINS_HOMEディレクトリに無制限にアクセスできるため、これは安全ではない可能性があります

私の設定(1つのマスターと1つのスレーブ)は悪い習慣ですか?

すべてのジョブがスレーブで実行される限り、1つのマスターだけよりも優れています


要約すると、セキュリティの観点から、マスターでジョブを実行することは悪い習慣です。


5

マスターノードでジョブを実行しても問題ない状況もありますが、注意が必要です。言及されている他の回答と同様に、ジョブはマスターノードでサンドボックス化されていないため、一般的にマスターでジョブを実行することは悪い習慣です。

そうは言っても、マスターノードでジョブを実行したい場合もあります。たとえば、私のJenkinsインストールの2つのジョブは次のとおりです。

  • 依存関係が更新されているジョブを見つけ、新しいバージョンの依存関係に対してそれらのビルドをスケジュールする
  • まだビルドされていないオープンプルリクエストを見つけ、それらのビルドをスケジュールする

私(Jenkins管理者として)はこれらのジョブを完全に制御しています。これらの特定のジョブはどちらもディスク上のファイルには影響しません(これらは本質的に「メタ」ジョブです)。私のスレーブは忙しいので、これらのジョブがキュー内のより重要なジョブをブロックしないことを望みます。これらの理由により、これら2つのジョブ(これら2つのジョブのみ)をマスターノードで実行することを許可します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.