Я автоматически назначаю вторичный частный IPv4-адрес во время запуска моих экземпляров. Чтобы настроить Ubuntu для распознавания этого вторичного IP-адреса, мне нужно запустить
ip addr add 10.0.1.15/24 dev eth0
Для доступа к первичному частному IP-адресу я нашел эту команду (описанную в Документы AWS И в фигарос вопрос):
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`
Получить все IP-адреса для этого Mac-адреса
curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC}/local-ipv4s
Из-за антрост ответ (его запрос curl возвращает все IP-адреса) Я смог написать следующий сценарий bash, который возвращает вторичный только частный IP-адрес и настраивает 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