Ansible - 如果满足前提条件,则仅运行一系列任务

Jam*_*dle 5 ansible ansible-playbook

我有一个我需要从远程URL安装的软件包,如:

- get-url: url=http://foo.com/foo.deb dest=/tmp

- command: dpkg --skip-same-version -i /tmp/foo.deb

- apt: update_cache=yes

- apt: pkg=foo state=present
Run Code Online (Sandbox Code Playgroud)

如果pkg = foo不存在,我只想运行前3个.实现这一目标的最佳方法是什么?

mag*_*tik 8

您必须使用结果注册变量,然后使用when语句.

tasks:
  - shell: /usr/bin/foo
    register: result
    ignore_errors: True

  - debug: msg="it failed"
    when: result|failed
Run Code Online (Sandbox Code Playgroud)