我正在寻找一种将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可以做到。
答案 0 :(得分:7)
可以使用以下格式:
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:|'
,接口文件看起来就像希望能回答你的问题!