Ansible-仅在满足先决条件的情况下运行一系列任务

Ansible-仅在满足先决条件的情况下运行一系列任务,ansible,ansible-playbook,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 如果pkg=foo还不存在,我只想运行前3个。实现这一目标的最佳方法是什么?您必须这样做,然后使用 谢谢我认为我必须在前3个命令中添加相同的

我需要从远程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
如果pkg=foo还不存在,我只想运行前3个。实现这一目标的最佳方法是什么?

您必须这样做,然后使用


谢谢我认为我必须在前3个命令中添加相同的命令?但是如果包已经存在,那么就不会有什么不好的事情发生。如果在下载后将
.deb
保存在临时文件中,默认情况下
获取url
足够智能,不会再次下载。
tasks:
  - shell: /usr/bin/foo
    register: result
    ignore_errors: True

  - debug: msg="it failed"
    when: result|failed