此方法思路参考如下文章:
http://blog.oddbit.com/2014/05/28/booting-an-instance-with-multi/
Rather than playing network roulette, you can pass in a script via the--user-data
option that will take care of configuring the networkcorrectly. For example, something like this:
#!/bin/sh
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF
DEVICE=eth0
BOOTPROTO=none
IPADDR=10.0.0.18
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
ONBOOT=yes
EOF
cat > /etc/sysconfig/network-scripts/ifcfg-eth0:0 <<EOF
DEVICE=eth0:0
BOOTPROTO=none
IPADDR=10.0.0.19
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
ONBOOT=yes
EOF
ifdown eth0
ifup eth0
ifup eth0:0
And boot the instance like this:
$ nova boot --nic port-id=3c564dd5-fd45-4f61-88df-715f71667b3b \
--flavor m1.tiny --image fedora-20-x86_64 --key-name lars \
--user-data userdata.txt test0
Assuming that your image uses cloud-init or something similar, itshould execute the user-data
script at boot and set up thepersistent network configuration.