Ansible afficher le contenu d'une variable

Si j'ai ces 2 tâche

- name: Replace ServerIP in config_file on OTHER NODES
  set_fact:
    variable: "{{hostvars.localhost.new_ips.results}}"

- name: Display variable
  debug: var=variable

Le résultat de qui sont:

TASK: [Display variable] ********************************************************* 
ok: [vm2] => {
    "variable": [
        {
            "changed": true, 
            "cmd": "echo \"11.11.4.74\"", 
            "delta": "0:00:00.002244", 
            "end": "2014-08-26 02:34:22.880447", 
            "invocation": {
                "module_args": "echo \"11.11.4.74\"", 
                "module_name": "shell"
            }, 
            "item": "74", 
            "rc": 0, 
            "start": "2014-08-26 02:34:22.878203", 
            "stderr": "", 
            "stdout": "11.11.4.74"
        }, 
        {
            "changed": true, 
            "cmd": "echo \"11.11.4.138\"", 
            "delta": "0:00:00.002156", 
            "end": "2014-08-26 02:34:22.958337", 
            "invocation": {
                "module_args": "echo \"11.11.4.138\"", 
                "module_name": "shell"
            }, 
            "item": "138", 
            "rc": 0, 
            "start": "2014-08-26 02:34:22.956181", 
            "stderr": "", 
            "stdout": "11.11.4.138"
        }
    ]
}
ok: [vm1] => {
    "variable": [
        {
            "changed": true, 
            "cmd": "echo \"11.11.4.74\"", 
            "delta": "0:00:00.002244", 
            "end": "2014-08-26 02:34:22.880447", 
            "invocation": {
                "module_args": "echo \"11.11.4.74\"", 
                "module_name": "shell"
            }, 
            "item": "74", 
            "rc": 0, 
            "start": "2014-08-26 02:34:22.878203", 
            "stderr": "", 
            "stdout": "11.11.4.74"
        }, 
        {
            "changed": true, 
            "cmd": "echo \"11.11.4.138\"", 
            "delta": "0:00:00.002156", 
            "end": "2014-08-26 02:34:22.958337", 
            "invocation": {
                "module_args": "echo \"11.11.4.138\"", 
                "module_name": "shell"
            }, 
            "item": "138", 
            "rc": 0, 
            "start": "2014-08-26 02:34:22.956181", 
            "stderr": "", 
            "stdout": "11.11.4.138"
        }
    ]
}

Alors comment puis-je accéder à la sortie standard (stdout) de la partie variable. Veuillez noter, j'ai juste besoin de la stdout partie de cette variable.e 11.11.4.74 et 11.11.4.138 (dans une boucle de préférence)

Essayez variable.0.stdout ?
Si je fais qqch comme variable.stdout j'obtiens l'erreur suivante Une ou plusieurs variables indéfinies: 'dict objet" n'a pas d'attribut 'stdout' . Si je fais comme vous avez dit, puis je reçois l'erreur: Un ou plusieurs variables indéfinies: dict objet n'a pas d'élément 0
Hé, attendez: new_ips1: '{{variable.résultats.0.stdout}}' fonctionne, mais les magasins de la première entrée seulement! Est-il d'une certaine manière pour parcourir la liste et l'enregistrer comme '{{variable.résultats.{{i}}.stdout}}'
Peut-être {{variable.les résultats de[i].stdout}}
ou {{variables["results"]["i"]["stdout"]}} - vous ne savez pas comment Jinja interpolation fonctionne ici

OriginalL'auteur Khan | 2014-08-26