我正在寻找一种将ip-address传递给cloud-init元数据的方法.因此,当我的qcow启动时,它不必等待120 - 180秒启动.
目前,我已经通过将IP地址信息添加到cloud-init的userdata部分来创建了一种解决方法.问题是,它确实需要一些时间,因为cloud-init userdata仅在引导VM后执行.
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可以做到这一点.
可以使用以下格式:
network-interfaces: | auto lo iface lo inet loopback iface eth0 inet static address xxx.xxx.xxx.xxx (static ip) netmask xxx.xxx.xxx.xxx gateway xxx.xxx.xxx.xxx (gateway ip, usually ip address of router)
您基本上写出了您希望接口具有的配置,因为只要您具有"network-interfaces:|",接口文件就会显示出来.
希望这能回答你的问题!