Я ищу способ передать IP-адрес в метаданные cloud-init. Поэтому, когда мой qcow загружается, ему не нужно ждать 120–180 секунд для загрузки.
В настоящее время я создал обходной путь, добавив информацию об IP-адресе в часть userdata cloud-init. Минус в том, что это занимает некоторое время, потому что пользовательские данные cloud-init выполняются только после загрузки виртуальной машины.
echo -e "
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
\taddress $address
\tnetmask $netmask
\tgateway $gateway
\tdns-nameservers $dnsnameservers
" > /etc/network/interfaces
ifdown eth0; ifup eth0
В настоящее время, чтобы установить имя хоста в метаданных cloud-init, я уже получил эту часть:
cat > $config_dir/meta-data <<-EOF
instance-id: $uuid
hostname: $hostname
local-hostname: $hostname
EOF
Но мне нужно что-то более прочное, более конкретное, потому что документация cloud-init очень расплывчата.
РЕДАКТИРОВАТЬ: Я видел, что это возможно, потому что Openstack может это сделать.