Ansible-未安装deb时的剧本安装

Ansible-未安装deb时的剧本安装,ansible,Ansible,我试图写一个剧本,我想检查是否安装了一个deb包,如果没有安装,然后安装 到目前为止,我尝试使用package_facts模块,但我无法理解这一点 - name: Gather package facts package_facts: manager: auto - name: Debug if package is present debug: msg: 'yes, mypackage is present' when:

我试图写一个剧本,我想检查是否安装了一个deb包,如果没有安装,然后安装

到目前为止,我尝试使用package_facts模块,但我无法理解这一点

   - name: Gather package facts
     package_facts:
       manager: auto

   - name: Debug if package is present
     debug:
       msg: 'yes, mypackage is present'
     when: '"besagent" in ansible_facts.packages'
     register: besagent

   - name: Debug if package is absent
     debug:
       msg: 'no, mypackage is absent'
     when: '"besagent" not in ansible_facts.packages'
这是安装deb的命令

- name: Install_BigFix_DEB
     apt: deb="/usr/BigFix/BESAgent-9.5.11.191-debian6.amd64.deb"
     sudo: true
因此,我查看是否安装了软件包,我有一个命令来安装软件包,但如何使它自动发生。 如果未安装BigFix代理,是否安装该代理


谢谢你的帮助

可分解运算本质上是幂等的。如果您使用的是Ansible模块,则不需要检查是否安装了deb包。Ansible会处理的。如果未安装该软件包,它将进行安装。否则它将跳过

您可以直接使用

- name: Install_BigFix_DEB
  apt: deb="/usr/BigFix/BESAgent-9.5.11.191-debian6.amd64.deb"
  sudo: true
根据Ansible:
如果执行一次操作的结果与在没有任何干预操作的情况下重复执行该操作的结果完全相同,则该操作是幂等的。

无需检查包是否已安装

apt
模块会处理这个问题

如果软件包已安装,
apt
将不执行任何操作,并返回
状态:ok


如果没有,它将安装它并返回一个
状态:changed

谢谢您的重播!!我会检查出来并更新!