Jenkinsのマスター・スレーブについて

https://qiita.com/yasuhiroki/items/d618796a1ba1366c4f80
設定自体は超簡単。
Linux使っているなら、ssh接続でslaveからmasterへの鍵認証設定をすればいい。

ただ、masterとslaveで環境変数が違うとslaveでジョブがうまく動かなかったりする。
Jenkinsのポリシー上は、slaveに環境変数を自動で引き継ぐってことらしいのだが、ぜんぜん引き継いでないような気がする・・・。

■masterの環境変数確認方法
Jenkinsの管理⇒システム情報の「環境変数」欄

■slaveの環境変数確認方法
Jenkinsの管理⇒ノードの管理⇒スレーブ選択⇒システム情報の「環境変数」欄

これで、masterとslaveの環境変数が違うと、色々起こったりする。
slaveのミドルウェアパスが違うこともあると思うので、必ずしもmasterと完全一致させる必要はないような気もする。

slaveの環境変数をいじる場合は、slaveの設定画面の「ノードプロパティ」欄で設定する。
個別に設定するなら、「環境変数」にチェックをいれて、ポチポチ追加する。

環境変数設定後は、Jenkinsのmasterを再起動することで、slaveを再起動させないと設定が反映されない模様。

■備考
参考リンク先にあるように、

「slaveへは、non-interactive モードでSSH接続するため、/ect/profile や .bashrc といったファイルは読み込まれません」

ってことらしい。
つまり、コンソールでログインしていて、環境変数設定されているのにな・・・と思っているとハマる。
システム情報で表示される値が正しい。
/etc/profileや、.bashrcを読み込ませる方法も記載されているが、機種固有の内容はJenkins上で集中管理するっていうのが、Jenkinsのポリシーっぽいので、ノードの設定でポチポチ追加していくのがいいだろう。多分。

ノードプロパティの他の設定が何を意味するのかは若干気になるが。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする