Ansible 带_项的可用双冒号
我的主机变量的第一个键有一个Ansible 带_项的可用双冒号,ansible,Ansible,我的主机变量的第一个键有一个:。这样, --- openconfig-vlan:vlans: vlan: - vlan-id: '1001' config: vlan-id: 1001 name: test22 status: ACTIVE 然而,我似乎找不到一种方法来逃避它,因此我可以在vlan中循环列表 剧本 --- - name: Configure Devices via Native hosts: ios gather_fa
:
。这样,
---
openconfig-vlan:vlans:
vlan:
- vlan-id: '1001'
config:
vlan-id: 1001
name: test22
status: ACTIVE
然而,我似乎找不到一种方法来逃避它,因此我可以在vlan
中循环列表
剧本
---
- name: Configure Devices via Native
hosts: ios
gather_facts: no
tasks:
- name: Create VLAN
ios_vlan:
vlan_id: "{{ item.config.vlan-id }}"
name: "{{ item.config.name }}"
state: present
with_items: "{{ openconfig-vlan:vlans['vlan'] }}"
错误
TASK [Create VLAN] ********************************************************************************************************************************************************************
fatal: [ios1]: FAILED! => {"msg": "template error while templating string: expected token 'end of print statement', got ':'. String: {{ openconfig-vlan:vlans['vlan'] }}"}
有什么想法吗?谢谢
问:“我的host_var的第一个键有:。就像这样,”
答:主机变量中有变量,没有键。引述自:
变量名称应为字母、数字和下划线。变量应始终以字母开头
只有一个想法。修正语法
不管好坏例如,包括错误的主机变量并将其放入有效变量中。下面的剧本
- hosts: localhost
tasks:
- include_vars:
file: vars-1-data.yml
name: test_var
- debug:
var: test_var['openconfig-vlan:vlans']
用数据
$ cat vars-1-data.yml
openconfig-vlan:vlans:
vlan:
- vlan-id: '1001'
config:
vlan-id: 1001
name: test22
status: ACTIVE
工作如期进行
"test_var['openconfig-vlan:vlans']": {
"vlan": [
{
"config": {
"name": "test22",
"status": "ACTIVE",
"vlan-id": 1001
},
"vlan-id": "1001"
}
]
}
这应该会有帮助。。
"test_var['openconfig-vlan:vlans']": {
"vlan": [
{
"config": {
"name": "test22",
"status": "ACTIVE",
"vlan-id": 1001
},
"vlan-id": "1001"
}
]
}