【问题标题】:openstack heat: Add port to instance based on conditionopenstack heat:根据条件将端口添加到实例
【发布时间】:2017-12-15 11:27:20
【问题描述】:

仅当名称为 zee_1 时,我才想将端口添加到实例

模板文件:

resources:

  vm_port_routable:
    type: OS::Neutron::Port
    properties:
      network: { get_param: abc_routable_net }
      name:
        str_replace:
          template: $stack_$name_routable_port
          params:
            $stack: { get_param: stack }
            $name: { get_param: vm_name }
      security_groups: [{ get_param: security_group }]
      fixed_ips:
        - ip_address: { get_param: port_ip_routable }

  test_vm_port_routable:
    type: OS::Neutron::Port
    properties:

      network: { get_param: test_zee_routable_net }
      name:
        str_replace:
          template: $stack_$name_routable_port
          params:
            $stack: { get_param: stack }
            $name: { get_param: vm_name }
      security_groups: [{ get_param: security_group }]
      fixed_ips:
        - ip_address: { get_param: test_port_ip_routable }

      zee_server:
        type: OS::Nova::Server
        properties:
          block_device_mapping_v2:
            - boot_index: 0
              delete_on_termination: false
              volume_id: { get_resource: root_volume }
              device_name: vda
              device_type: disk
            - boot_index: -1
              delete_on_termination: false
              volume_id: { get_param: backup_volume }
              device_name: vdc
              device_type: disk
          flavor: { get_param: flavor }
          key_name: { get_param: ssh_keypair }
          name: { get_param: vm_name }

          networks:
            - port: { get_resource: vm_port_routable }
            - port: { get_resource: test_vm_port_routable }

仅当名称为 zee_1 时,我才想添加端口“test_vm_port_route”....

我尝试了以下条件,但它给出了错误:错误:模板部分无效:条件

conditions:
       create_prod_res: { equal: [{get_param: "vm_name"},"zee_1"]}
resources:

  vm_port_routable:
    type: OS::Neutron::Port
    properties:
      network: { get_param: abc_routable_net }
      name:
        str_replace:
          template: $stack_$name_routable_port
          params:
            $stack: { get_param: stack }
            $name: { get_param: vm_name }
      security_groups: [{ get_param: security_group }]
      fixed_ips:
        - ip_address: { get_param: port_ip_routable }

  test_vm_port_routable:
    type: OS::Neutron::Port
    properties:

      network: { get_param: test_zee_routable_net }
      name:
        str_replace:
          template: $stack_$name_routable_port
          params:
            $stack: { get_param: stack }
            $name: { get_param: vm_name }
      security_groups: [{ get_param: security_group }]
      fixed_ips:
        - ip_address: { get_param: test_port_ip_routable }

      zee_server:
        type: OS::Nova::Server
        properties:
          block_device_mapping_v2:
            - boot_index: 0
              delete_on_termination: false
              volume_id: { get_resource: root_volume }
              device_name: vda
              device_type: disk
            - boot_index: -1
              delete_on_termination: false
              volume_id: { get_param: backup_volume }
              device_name: vdc
              device_type: disk
          flavor: { get_param: flavor }
          key_name: { get_param: ssh_keypair }
          name: { get_param: vm_name }
          condition:create_prod_res  
          networks:
            - port: { get_resource: vm_port_routable }
            - port: { get_resource: test_vm_port_routable }

以上对模板的更改失败了
有人可以帮助我吗.....

【问题讨论】:

  • 我在您的模板文件中没有看到heat_template_version,这意味着根据 Heat 选择的默认值,您可能无法使用 conditions 键。如果您设置heat_template_version: pike(或您正在使用的任何版本的openstack)怎么办?
  • 我正在使用 heat_template_version: 2014-10-16 .....

标签: openstack openstack-heat


【解决方案1】:

如果您阅读 specification,您会注意到对 conditions 部分的支持仅在 Newton 中添加。所以你需要:

heat_template_version: newton

或者:

heat_template_version: 2016-10-14

或以后版本的等价物。如果您运行的是早于 Newton 的 openstack 版本,您将无法使用此功能。

【讨论】:

  • 你能给出一些关于如何在不使用 if 条件的情况下在旧版本中做到这一点的想法
  • 这里我有两个实例,我必须根据名称仅向一个实例添加端口.....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多