Переменные Ansible, зарегистрированные с помощью_items, как использовать эту переменную?

У меня такой сценарий, мне нужно использовать два файла A.bin, B.bin, сначала искать в каталоге files, если не нашел, скачать прямо с сервера

- name: Send A.bin and B.bin
  copy: src = {{item}}.bin dest=/opt/
  register: is_exist
  failed_when: False
  with_items:
    - A
    - B

- name: Download from a server A.bin, B.bin
  shell: wget -P /opt/{{item.item}} {{base_url}}{{item.item}}.bin
  when: item.item.exception is defined
  with_items:
    - is_exist.results

Но это выдаст ошибку:

The conditional check 'item.item.exception is defined' failed. The error was: error while evaluating conditional (item.item.exception is defined): 'ansible.utils.unsafe_proxy.AnsibleUnsafeText object' has no attribute 'item'

что я должен делать?

Введение в Ansible Roles
Введение в Ansible Roles
Ansible - это отличный инструмент управления конфигурацией, который можно использовать для автоматизации настройки или развертывания на большом...
0
0
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы предложил визуально просмотреть структуру переменной is_exist.

- debug: msg = "{{ is_exist }}"

Затем, если item.item.exception является ожидаемым именем переменной, всегда проверяйте, что item.item определено, чтобы избежать has no attribute 'item', прежде чем проверять его ключ exception:

when: item.item is defined and item.item.exception is defined

Другие вопросы по теме