Ini file yaml database saya:

apn_operation:
    action: create
    epg_version: 4G
    apn_name: internet_jack
    access-restrictions selection-mode: public
    routing-instance: sgi_nat
    pgw-enabled: yes
    uplink-dscp-map: test
    allow-rule-space:
      - RS_Mobile
      - RS_Mobile_OCC
    name-server:
      - ip_address: 10.0.0.1
        priority: 10
      - ip_address: 10.0.0.2
        priority: 20

Ini buku pedoman saya:

- hosts: all
  gather_facts: no
  vars_files:
    - apn_operation.yaml

  tasks:
  - name: show content
    debug:
       msg: "{{item}}"
    with_subelements:
    - "{{apn_operation}}"
    - name-server

Ketika saya menjalankan buku pedoman. Saya mendapatkan kesalahan berikut:

TUGAS [tampilkan konten] ********************************************* ************************************************** ************************************************** ***************************************** fatal: [11RRvEPG01]: GAGAL! => {"msg": "pencarian subelemen mengharapkan kamus, dapatkan 'OPTUS-QCIDSCP'"}

Saya tidak tahu apa masalahnya. ada yang bisa bantu?

1
jack liu 23 Maret 2020, 08:16

1 menjawab

Jawaban Terbaik

apn_operation adalah kamus. Tidak mungkin untuk mengulang kamus. Dimungkinkan untuk menggunakan dict2items tetapi bukan ini kamu sedang mencari.

with_subelements dapat mengulang daftar di mana setiap item adalah kamus yang terdiri dari daftar lain. Sebagai contoh

apn_operation:
  - action: create
    name-server:
      - ip_address: 10.0.0.1
        priority: 10
      - ip_address: 10.0.0.2
        priority: 20

Bekerja seperti yang diharapkan dan memberi

    "msg": [
        {
            "action": "create"
        }, 
        {
            "ip_address": "10.0.0.1", 
            "priority": 10
        }
    ]

    "msg": [
        {
            "action": "create"
        }, 
        {
            "ip_address": "10.0.0.2", 
            "priority": 20
        }
    ]
2
Vladimir Botka 23 Maret 2020, 05:37