2017-04-06 39 views
0

我为热量模板中的接口分配固定IP。Openstack热量模板:固定IP的接口未自动配置

private_port_1: 
    type: OS::Neutron::Port 
    properties: 
     network: { get_param: private_net } 
     fixed_ips: [{"subnet": { get_param: private_subnet }, "ip_address": { get_param: private_ip_1 }}] 

my_vm_123: 
    type: OS::Nova::Server 
    properties: 
     image: { get_param: image_name } 
     flavor: { get_param: flavor_name } 
     name: { get_param: vm_name } 
    networks: 
     - network: { get_param: public_net } 
     - port: { get_resource: private_port_1 } 

VM已成功实例化,其私有IP(private_ip_1)显示在Horizo​​n GUI中。但是,“eth1”似乎已关闭,而/ etc/network/interfaces仅包含公共“eth0”的配置。

我可以通过手动填充“/ etc/network/interfaces”并打开“user_data:”部分中的eth1来解决此问题。问题是 - 这是应该的方式,还是我的散热或Openstack有什么问题可以阻止eth1被自动配置?

谢谢! Michael。

回答

0

是的,这是它应该的方式。 OpenStack(Nova,Neutron)设置虚拟机并提供正确的连接。但是,虚拟机中运行的操作系统必须提供接口。默认的cloud-init映像是硬编码的,只能启动eth0(使用DHCP)。所以,你必须明确地在你的虚拟机中启动eth1。

您可以使用OS :: Nova :: Server资源类型的user_data变量在启动虚拟机时运行自定义脚本。我有一个类似的用例,我需要自动调出eth1。你可以检查我是如何实现这个的https://github.com/ypraveen/openstack-installer/blob/master/vm-heat-template/devstack.yaml

第33行显示了user_data的用法。 您可以在启动脚本中检查第41-45行,以显示eth1:https://github.com/ypraveen/openstack-installer/blob/master/vm-heat-template/devstack_vm_init.sh

+0

感谢Praveen!这回答了我的问题。如果这是它在OpenStack中的应用,那很好。有趣的是,之前我使用过Rackspace,您不需要担心它。所有接口自动出现... – Michael