Ansible с_элементом | сначала не возвращает никаких предметов? - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть массив JSON, как показано ниже:

[
  {
    "item": {
              "item": "SERVERNAME" 
            } 
  },
  {
    "item": {
              "item": "SERVERNAME2" 
            } 
  }
]

При предыдущем вызове API я использовал

     with_items: "{{ cluster_server.results }}"

И смог захватить каждое имя сервера через { {item.item.item}}

НО на этом вызове API мне нужен только первый результат, поэтому при использовании

     with_items: "{{ cluster_server.results | first}}"

все же возвращается эта ошибка:

fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'ansible.utils.unsafe_proxy.AnsibleUnsafeText object' has no attribute 'item'\n\nThe error appears to be in '/home/mycomp/Documents/ansible/build-auth.yml': line 177, column 6, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n   - copy:\n     ^ here\n"}

Что я здесь не так делаю? Совершенно новый для Ansible.

1 Ответ

0 голосов
/ 28 февраля 2020

Вы перезаписываете item, которая является вашей переменной l oop. Используйте другое имя для переменной l oop:

  - debug:
      msg: "{{ server.item.item }}"
    with_items:
      - "{{ cluster_server.results | first }}"
    loop_control:
      loop_var: server
...