ANSIBLE итерации по результатам от нескольких хостов, чтобы получить определенное значение ключа - PullRequest
0 голосов
/ 06 ноября 2019

Team,

Я зацикливаюсь на всех хостах в определенной группе инвентаризации, чтобы проверить ответы ключ-значение из вывода stat в файле, но мне не удается сопоставить его. Может кто-нибудь намекнуть, пожалуйста, как отобразить это?

      - debug:
          var: result
      - debug:
          msg: "FOUND: /etc/cachefilesd.conf exists..."
        when: result.results.stat.exists
        delegate_to: "{{ item }}"
        with_items: "{{ groups['gpu_node'] }}"

вывод:

   TASK [services-pre-install-checks : debug] 
 ok: [localhost] => {[0m
     "result": {[0m
         "changed": false, [0m
         "msg": "All items completed", [0m
         "results": [[0m
             {[0m
                 "ansible_loop_var": "item", [0m
                 "changed": false, [0m
                 "invocation": {[0m
                     "module_args": {[0m
                         "checksum_algorithm": "sha1", [0m
                          "path": "/etc/cachefilesd.conf"[0m
                     }                 }, 
                 "item": "hostA", [0m
                 "stat": {[0m
                     "atime": 1573005811.023855, [0m
                      exists": true, [0m


                 }[0m
             }, [0m
             {[0m
                 "ansible_loop_var": "item", [0m
                 "changed": false, [0m
                 "failed": false, [0m
                 "invocation": {[0m
                     "module_args": {[0m
                         "checksum_algorithm": "sha1", [0m

                         "path": "/etc/cachefilesd.conf"[0m
                     }[0m
                 }, [0m
                 "item": "hostB", [0m
                 "stat": {[0m
                     "atime": 1573005811.023855, [0m
                      exists": true, [0m



ошибка:

[localhost]: FAILED! => {"msg": "The conditional check 'result.results.stat.exists' failed. The error was: error while evaluating conditional (result.results.stat.exists): 'list object' has no attribute 'stat'\n\nThe error appears to be in '/home/run_ansible_playbook/tasks/main.yml':

1 Ответ

1 голос
/ 06 ноября 2019

В приведенном выше примере result.results - это список.

Вы пытаетесь получить доступ к result.results.stat: эта переменная не определена.

Но вы можете получить доступ, например, result.results[0].statдля первого элемента. Теперь вам нужно выяснить, как вы хотите зациклить другие эти результаты для достижения своей цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...