Ansible — как сделать так, чтобы задача не удалась на основе определенного вывода

Привет, у меня есть задача, которая требует ftp-файла с удаленного ящика на управляемую машину с помощью ansible. Я использую FTP на основе ожидания, поэтому хочу, чтобы ansible не работал, если файл не существует на удаленном ящике. Ниже приведен мой код. Я использую переменную регистра. Но я не вижу отладки, отображающей содержимое регистра.

     - name: copy files remote
       shell: |
         set timeout 1000
         spawn ftp {{ buildIP }}

         expect ":"
         send "{{ build_user }}\n"

    expect "ssword:"
    send "{{ build_password }}\n"

    expect "ftp>"
    send "get {{ build_path }} /root/Desktop/Sanity/{{  TID }}/{{ Image_dir }}/{{ build_filename }}\n"

    expect "ftp>"
    send "quit\n"

    set multiPrompt {[#$]}
    expect -re $multiPrompt
    exit 0
  args:
    executable: /usr/bin/expect
  register: shell_output
  tags: copy_source_code
- debug:
    var: shell_output.stdout_lines

person Suzanno Hogwarts    schedule 21.10.2018    source источник
comment
я не вижу отладки, отображающей содержимое регистра... а вместо этого вы видите что? Кроме того, я очень надеюсь, что ваш файл yaml не на самом деле имеет такой отступ, иначе, конечно, вы ничего не увидите   -  person mdaniel    schedule 21.10.2018
comment
Я не вижу отлаживания как задание как перечисленная shell_result.stdout_lines: [1, 10.106.81.102_46_1_A_P101_main.info, 10.217.204.80_48_6_p10_main.info, 10.220.225.4_65_p2_main.info, 10.220.2255.4_65_p2_main.info, 10.220.2255.4_6_p2_main.info, 10.220.2255.4_6_p2_main.info, 10.220.22. пл, 17.138.8.12.пл, 17.138.8.1.пл, 17.138.8.2.пл, 17.138.8.3.пл, 17.138.8.4.пл, 17.138.8.6.пл, 17.138.8.7.пл, 17.138.8.8.пл, } отладка не воспроизводится   -  person Suzanno Hogwarts    schedule 23.10.2018


Ответы (1)


Я бы порекомендовал использовать get_url для получения файлов с FTP вместо ожидаемого. Он покажет, не удалось выполнить задание или удалось, в обзоре игры.

пример игры:

---
- hosts: localhost
  tasks:
    - name: FTP Download
      get_url: url=ftp://username:password@localhost/file.zip dest=/tmp
      register: get_url_result

если файл отсутствует на FTP-сервере, вывод будет примерно таким:

ОБЗОР ИГРЫ ******************************************************* ********

localhost : ok=1 изменено=0 недоступно=0
не удалось=1

В деталях ошибки задачи вы также можете найти ошибку «не найдено».

person ClumsyPuffin    schedule 21.10.2018