Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 带_项的可用双冒号_Ansible - Fatal编程技术网

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"
        }
    ]
}