У меня такой сценарий, мне нужно использовать два файла 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'
что я должен делать?
Я бы предложил визуально просмотреть структуру переменной 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