24時間365日フルマネージドホスティングサービスのデイーネット

[AWS Opsworks]レシピを実行してない同Layerの他ノードの情報を得る

Nオガワです。Opsworks用のレシピを書く際に、クラスタ構成を構築する際等、レシピを実行していない他ノードの情報がほしいケースがあります。 そんな時便利なのがOpsworksスタックのデータバッグ。ここでは他ノードのプライベートIPを取得する一例を記載してみました。 一読いただけたら幸いです。IPを固定したくない場合に便利です!

Opsworksスタックのデータバッグとは?

ノード情報(Opsworksスタックの同Layer内)

  • node1 10.186.144.58
  • node2 10.184.143.167

他ノードのIPを取得するメソッドを定義

def remote_instance_ip
  instance = search("aws_opsworks_instance", "self:false").first
  instance['private_ip']
end

[補足]aws_opsworks_instanceでデータバッグからインスタンス情報を取得する。self:falseで他ノードの情報を取得。

Opsworksのログで結果取得

Chef::Log.info("********** remote node ip address is '#{remote_instance_ip}' **********")

[補足]定義したremote_instance_ipで他ノードのIPを取得してOpsworksのログに出力。

node1(10.186.144.58)でのsetup実行時のログ出力結果

[2017-12-20T12:30:59+00:00] INFO: ********** remote node ip address is '10.184.143.167' **********

[補足]node2のIPアドレス10.184.143.167が取得できた。

最後に

読んでいただきありがとうございました。メインはAWS関連で次回からも更新していこうと思います。 またよろしくお願いします。

  • このページの先頭へ

  • 東京本社
    〒105-0001東京都港区虎ノ門2-3-22 第一秋山ビル5F
    TEL:03-3591-8887 FAX:03-3591-8886
  • 大阪本社
    〒541-0041 大阪市中央区北浜2-6-11北浜エクセルビル5F
    TEL:06-6231-8887 FAX:06-6231-8897

  • 認証範囲はこちらをご覧ください。

Denet logo

クラウドサービス・データセンタ・高機能専有サーバ・共有サーバホスティングサービス 株式会社ディーネット
dot_bar