ansible: comment itérer sur tous enregistré des résultats?

Le suivant playbook:

---
- name: Check if log directory exists - Step 1
  stat: path="{{ wl_base }}/{{ item.0.name }}/{{ wl_dom }}/servers/{{ item.1 }}/logs" get_md5=no
  register: log_dir
  with_subelements:
    - wl_instances
    - servers

- name: Check if log directory exists - Step 2
  fail: msg="Log directory does not exists or it is not a symlink."
  failed_when: >
    log_dir.results[0].stat.islnk is not defined
    or log_dir.results[0].stat.islnk != true
    or log_dir.results[0].stat.lnk_source != "{{ wl_base }}/logs/{{ wl_dom }}/{{ item.1 }}"
  with_subelements:
    - wl_instances
    - servers

c'est à l'aide de la suite de vars:

---
wl_instances:
  - name: aservers
    servers:
      - AdminServer
  - name: mservers
    servers:
       - "{{ ansible_hostname }}"

la deuxième tâche n'utilise actuellement que l'un des deux résultats possibles (results[0]).

Ma question est: comment pourrais-je effectuer une itération sur tous les articles disponibles stockées dans log_dir.results?

Un exemple de sortie debug:hostvars[inventory_hostname] suit:

    "log_dir": {
        "changed": false,
        "msg": "All items completed",
        "results": [
            {
                "changed": false,
                "invocation": {
                    "module_args": "path=\"/path/to/servers/aservers/domain/AdminServer/logs\" get_md5=no",
                    "module_name": "stat"
                },
                "item": [
                    {
                        "name": "aservers"
                    },
                    "AdminServer"
                ],
                "stat": {
                    ...
                    "lnk_source": "/path/to/logs/domain/AdminServer",
                    ...
                }
            },
            {
                "changed": false,
                "invocation": {
                    "module_args": "path=\"/path/to/servers/mservers/domain/servers/some_hostname/logs\" get_md5=no",
                    "module_name": "stat"
                },
                "item": [
                    {
                        "name": "mservers"
                    },
                    "some_hostname"
                ],
                "stat": {
                    ...
                    "lnk_source": "/path/to/logs/domain/some_hostname",
                    ...
  • Avez-vous trouvé une solution?
  • Pas pour l'itération, je suis passé à une structure de données adaptée pour un with_dict itération.
  • Trouvé une solution qui a fonctionné pour moi, posté ci-dessous.
InformationsquelleAutor dawud | 2014-11-19