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のポリシーっぽいので、ノードの設定でポチポチ追加していくのがいいだろう。多分。
ノードプロパティの他の設定が何を意味するのかは若干気になるが。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です