Openstack heat 模板:没有自动配置具有固定 IP 的接口

Openstack heat template: interfaces with fixed IPs are not configured automatically

我在heat模板中给一个接口分配了一个固定的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 仅包含 public "eth0".

的配置

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

谢谢! 迈克尔.

是的,它应该是这样的。 OpenStack(Nova、Neutron)设置虚拟机并提供正确的连接。但是,VM 中的操作系统 运行ning 必须调出接口。默认的 cloud-init 映像被硬编码为仅显示 eth0(使用 DHCP)。因此,您必须在您的 VM 中显式启动 eth1。

启动 VM 时,您可以将 OS::Nova::Server 资源类型的 user_data 变量用于 运行 自定义脚本。我有一个类似的用例,我需要自动启动 eth1。您可以在 https://github.com/ypraveen/openstack-installer/blob/master/vm-heat-template/devstack.yaml

查看我是如何做到这一点的

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