我有一个沿着这些方向的实例资源:
masters:
type: OS::Heat::ResourceGroup
properties:
count: { get_param: num_masters }
resource_def:
type: heat_stack_server.yaml
properties:
name:
str_replace:
template: cluster_id-k8s_type-%index%
params:
cluster_id: { get_param: cluster_id }
k8s_type: master
cluster_env: { get_param: cluster_env }
cluster_id: { get_param: cluster_id }
type: master
image: { get_param: master_image }
flavor: { get_param: master_flavor }
key_name: { get_resource: keypair }
net: { get_resource: net }
subnet: { get_resource: subnet }
secgrp:
- { get_resource: master-secgrp }
- { get_resource: node-secgrp }
floating_network: { get_param: external_net }
net_name:
str_replace:
template: openshift-ansible-cluster_id-net
params:
cluster_id: { get_param: cluster_id }
depends_on:
- interface
它创建num_masters
. 现在,我想保证这些 master 将在不同的可用区域中创建(这样当其中一个失败时,另一个将继续工作)。
说,我有 3 个可用区和num_masters == 5
. 如何传播它们,使 zone1 包含节点 1 和 4,zone2 - 2 和 5,等等?
Ansible 有那个 loop.cycle 东西,你可以一遍又一遍地传递一个选项列表。任何想法如何在操作系统中做到这一点?