2

describe-instances が platform=>windows を返さないすべてのインスタンスのプライベート IP を取得し、それらを配列 $ips に格納する必要がある bash スクリプトを作成しています。

このスクリプトはこれまでのところ機能しています (プライベート IP を取得するだけです)。

 ips=$(aws ec2 describe-instances --region $r --filters "Name=tag:Name,Values=*$c*" | jq '.Reservations[].Instances[].NetworkInterfaces[].PrivateIpAddress')

しかし、私が理解できないのは、Windowsサーバーを除外する方法です(または、逆に、Windows以外のサーバーのみを含める方法です)

これが私が試したことです

--filters "Name=tag:Name,Values=*$c*" "Name=platform,Values="
--filters "Name=tag:Name,Values=*$c*" "Name=platform,Values=null"
--filters "Name=tag:Name,Values=*$c*" "Name=platform,Values=NULL"

パイプの jq 側でも試してみましたが、私の試みはばかげていたので、ここでは公開しません。その側で2つ以上のフィルターを実行できないことがわかりました(私もそれを台無しにしない限り)

何か案は?

4

1 に答える 1

1

私はAWSを使用していないので、あまり詳しくはありませんが、describe-instancesリファレンスに基づいて、このフィルターが機能すると思います.

.Reservations[].Instances |
    map(select(.Platform != "Windows") | .NetworkInterfaces[].PrivateIpAddress)
于 2014-11-06T22:22:12.043 に答える