開発者から「IPアドレスの一覧が欲しい」と言われて必要になったので作りました。メモとして残しておきます。
aws ec2 describe-instances | jq -c '.Reservations[].Instances[] | [ (.Tags[]? | select(.Key == "Name")).Value, .PrivateIpAddress, .PublicIpAddress]' | sed -E 's/\[|\]//g' | sed -E 's/,/\|/g' | tr -d '"' | sed -E 's/^/\|/g'| sed -E 's/$/\|/g' | sort
すると以下のような結果が取れます。(IPはサンプル)
|morihaya-test-01|192.168.1.13|203.0.113.1| |morihaya-test-02|192.168.2.11|203.0.113.2|
ヘッダーをつけて、esaなどのMarkdown対応なドキュメントに載せます。
| Hostname | Private IP | Public IP | | --- | --- | --- | |morihaya-test-01 |192.168.1.13|203.0.113.1 | |morihaya-test-02|192.168.2.11|203.0.113.2 |
すると以下のように一覧になって良さ、という話でした。
Hostname | Private IP | Public IP |
---|---|---|
morihaya-test-01 | 192.168.1.13 | 203.0.113.1 |
morihaya-test-02 | 192.168.2.11 | 203.0.113.2 |
もちろんサーバは日々変動することがあり、現実とのデグレが発生する未来が見えるので必要なメンバにAWSコンソールを渡してしまうのも手なのですが、ささっと閲覧可能なドキュメントとして作る分には良し。