检查异步Ansible任务的stdout

Fra*_*ris 4 ansible

你怎么能failed_when基于stdout异步Ansible任务?我尝试过各种变化:

- name: Run command
  command: arbitrary_command
  async: 3600
  poll: 10
  register: result
  failed_when: "Finished 'command'" in result.stdout
Run Code Online (Sandbox Code Playgroud)

这导致:

fatal: [localhost] => error while evaluating conditional: "Finished 'command'" in result.stdout
Run Code Online (Sandbox Code Playgroud)

Fra*_*ris 6

任务完成后,获取异步任务的状态async_status:

- name: Run command
  command: arbitrary_command
  async: 3600
  poll: 10
  register: result_async

- name: Check command
  async_status: jid="{{ result_async.ansible_job_id }}"
  register: result
  failed_when: result.finished != 1 or "Finished 'command'" not in result.stdout
Run Code Online (Sandbox Code Playgroud)

  • 这需要相当多的修改才能弄清楚。希望它可以节省某人的时间! (2认同)