Loops 带_序列循环的可解嵌套变量
我试图通过将机器数量设置为一个变量来创建多个VM,然后使用with_序列对该数量进行迭代。问题是,我想手动将静态IP地址分配给我的虚拟机,因此我必须使用嵌套变量进行迭代 我的主文件:Loops 带_序列循环的可解嵌套变量,loops,variables,ansible,Loops,Variables,Ansible,我试图通过将机器数量设置为一个变量来创建多个VM,然后使用with_序列对该数量进行迭代。问题是,我想手动将静态IP地址分配给我的虚拟机,因此我必须使用嵌套变量进行迭代 我的主文件: - name: Create Azure VM hosts: localhost connection: local vars_files: - vault.yml pre_tasks: - set_fact: cluster: "testvm"
- name: Create Azure VM
hosts: localhost
connection: local
vars_files:
- vault.yml
pre_tasks:
- set_fact:
cluster: "testvm"
- set_fact:
subnetName: "default"
- set_fact:
instancesCount: 2
- set_fact:
IP1: "172.16.32.83"
- set_fact:
IP2: "172.16.32.84"
- set_fact:
vmSize: "Standard_DS1_v2"
- set_fact:
osDiskType: "Standard_LRS"
- set_fact:
dataDiskType: "Premium_LRS"
- set_fact:
diskSize: "4"
roles:
- azure
上面使用的azure
角色的代码片段存在问题:
- name: Create virtual network interface cards
azure_rm_networkinterface:
resource_group: "{{ envir }}-emp-{{ cluster }}"
name: "{{ envir }}-emp-{{ cluster }}-nic-{{ item }}"
virtual_network: "/subscriptions/{{ subscriptionId }}/resourceGroups/{{ vnetResourceGroup }}/providers/Microsoft.Network/virtualNetworks/{{ virtualNetworkName }}"
subnet: "{{ subnetName }}"
public_ip: no
create_with_security_group: False
ip_configurations:
- name: ipconfig1
primary: yes
private_ip_address: "{{vars[IP].instancesCount}}" --->> here lies the question
private_ip_allocation_method: Static
primary: True
with_sequence: "count={{ instancesCount }}"
在
with_sequence
块下的循环中,如何调用IP1
和IP2
的值?您可能需要尝试以下方法:
"{{ lookup('vars', 'IP{}'.format(instancesCount)) }}"