2017-11-25 2 views
0

Ich kann keine deepely eingebettet ansible_fact mit dieser Zeichenfolge zuzugreifen scheinen:Ansible - Wie benutze ich ein ansible_fact tief eingebettet?

hostvars[inventory_hostname]['ansible_devices']['sda']['partitions']['sda2']['holders'] }} 

Hier ist ein Teil der Tatsache Baum ist, dass ich zu verweisen bin versucht.

"ansible_devices": { 
      "sda": { 
       "holders": [], 
       "host": "RAID bus controller: LSI Logic/Symbios Logic MegaRAID                                        SAS-3 3108 [Invader] (rev 02)", 
       "partitions": { 
        "sda1": { 
         "holders": [], 
         "sectors": "614400", 
         "sectorsize": 512, 
         "size": "300.00 MB", 
         "start": "2048", 
        }, 
        "sda2": { 
         "holders": [ 
          "root-root", 
          "root-swap", 
          "root-home", 
          "root-opt", 
          "root-tmpl", 
          "root-usr", 
          "root-var" 
         ], 

Wie würde ich nach der Partition "root-home" suchen? Danke!

Antwort

0

Es ist eine Liste, verwenden Sie den Index der gewünschten Feld:

hostvars[inventory_hostname]['ansible_devices']['sda']['partitions']['sda2']['holders'][2]

oder hostvars.inventory_hostname.ansible_devices.sda.partitions.sda2.holders[2]

Mein Vorschlag jq Befehl, um zu versuchen:

ansible -m setup -l your_hostgroup | sed '1c {' | jq '.|keyes'