2017-04-06 67 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