web-dev-qa-db-ja.com

AmazonEC2インスタンスのセカンダリプライベートIPアドレスを取得する方法

インスタンスの起動時に、セカンダリプライベートIPv4アドレスを自動的に割り当てています。このセカンダリIPを認識するようにUbuntuを構成するには、実行する必要があります

ip addr add 10.0.1.15/24 dev eth0

プライマリプライベートIPアドレスにアクセスするために、私はこのコマンドを見つけました( AWS Docs および figaros質問 で説明されています):

curl http://169.254.169.254/latest/meta-data/local-ipv4

しかし、起動時にipコマンドを自動的に実行するためにセカンダリIPアドレスを取得するにはどうすればよいですか? Amazon Linuxシステムの場合、これを自動的に処理できるec2-net-utilsパッケージがあります。

2
benedikt

2つのコマンドでセカンダリアドレスを取得できます。

ネットワークインターフェイスのMACアドレスを取得します

MAC=`curl http://169.254.169.254/latest/meta-data/mac` 

このMACアドレスのすべてのIPアドレスを取得します

curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC}/local-ipv4s
4
antrost

antrost answer (彼のcurlリクエストはすべてのIPアドレスを返します)のため、セカンダリプライベートIPのみを返し、設定する次のbashスクリプトを書くことができましたそれを認識するUbuntu:

#!/bin/bash
MAC=`curl -s http://169.254.169.254/latest/meta-data/mac`
ADDRESSES=`curl -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC}/local-ipv4s`
arr=($ADDRESSES)
if [ ${#arr[@]} -ge 2 ];
then
  ip addr add ${arr[1]}/24 dev eth0
fi
2
benedikt