AWS ELB コマンドライン呼び出しをラップする Ruby スクリプトをいくつか書いています。これは主に、複数の ELB インスタンスを同時に操作できるようにするためです。1 つのタスクは、elb-describe-instance-health 呼び出しを使用して、この ELB にアタッチされているインスタンス ID を確認することです。
インスタンス ID を、それらのインスタンスに設定したニックネームに一致させたいと考えています。これにより、インスタンス名を調べなくても、どのマシンが ELB に接続されているかを一目で確認できます。
だから私は発行しています:
cmd = "elb-describe-instance-health #{elbName}"
value = `#{cmd}`
elb 名を呼び出しに渡します。これにより、次のような出力が返されます。
INSTANCE_ID i-jfjtktykg InService N/A N/A
INSTANCE_ID i-ujelforos InService N/A N/A
ELB のインスタンスごとに 1 行が表示されます。各フィールドの間には 2 つのスペースがあります。
取得する必要があるのは、実際のインスタンス ID である 2 番目のフィールドです。基本的に、返される各行を取得して配列に変換し、2 番目のフィールドを取得して、サーバーのニックネームを検索するために使用しようとしています。
これが正しいアプローチかどうかはわかりませんが、これを実現する方法についての提案は大歓迎です。