インスタンスの起動時に、セカンダリプライベート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つのコマンドでセカンダリアドレスを取得できます。
ネットワークインターフェイスの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
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