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