在 Openstack 中使用 HEAT 模板创建的集群中资源的自定义名称

Custom names for resources in cluster created using HEAT templates in Openstack

我正在尝试使用 Openstack 的 Heat 模板创建集群。我有以下模板定义我的资源组。

cluster:
    type: OS::Heat::ResourceGroup
    properties:
        count: { get_param: instance_count }
        resource_def:
            type: ../templates/vm.yaml
            properties:
                image: { get_param: image }
                flavor: { get_param: flavor }
                private_network : { get_attr : [network, name] }

这行得通,但是所有这些服务器的名称都非常神秘。我想知道是否可以为每个实例提供一个前缀来命名。

或者另一种方法是我可以 str_replace 一个模板值与集群计数的当前索引。

有办法实现吗?

没关系,从 ResourceGroup documentation 得到它。使用 %index%.

这是文档中的示例。

resources:
  my_indexed_group:
    type: OS::Heat::ResourceGroup
    properties:
      count: 3
      resource_def:
        type: OS::Nova::Server
        properties:
          # create a unique name for each server
          # using its index in the group
          name: my_server_%index%
          image: CentOS 6.5
          flavor: 4GB Performance