import_task не повторяется до цикла - PullRequest
1 голос
/ 25 февраля 2020

Так что я хочу l oop через import_tasks, пока последняя строка somefile не будет содержать 10 в виде строки (somefile - это просто вывод скрипта, который печатает от 1 до 10 с некоторой задержкой). но это повторяется только один раз. Я не знаю, как идет поток. Можете ли вы решить мою проблему и объяснить мне. Спасибо за вашу помощь

файл main.yml

 - name: displaying output
   import_tasks : printoutput.yml
   until: output_var.stdout_lines[-1] != '10'
   retries: 30

printoutput.yml

- name: print somefile content
  shell: cat /tmp/somefile
  register: output_var

somefile 1 2 3 4 . . 10

1 Ответ

1 голос
/ 25 февраля 2020

Q: "import_task не повторяется до тех пор, пока l oop"

A: Да import_task полностью игнорирует until. Например,

shell> cat printoutput.yml
- debug:
    var: completed
- hosts: localhost
  tasks:

    - set_fact:
        completed: false
    - import_tasks: printoutput.yml
      until: completed|bool

    - set_fact:
        completed: true
    - import_tasks: printoutput.yml
      until: completed|bool

и

PLAY [localhost] ***

TASK [set_fact] ***
ok: [localhost]

TASK [debug] ***
ok: [localhost] => {
    "completed": false
}

TASK [set_fact] ***
ok: [localhost]

TASK [debug] ***
ok: [localhost] => {
    "completed": true
}

PLAY RECAP ***
localhost: ok=4  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...