如何使用Ansible强制重新安装软件包?

问题描述 投票:4回答:1

我正在使用Ansible从自定义存储库部署.deb包。

有时开发人员可能忘记更改软件包编号,因此存储库将使用旧版本的新软件包。这是不必要的,所以我想总是重新安装包。我怎么做?

force=yesapt module选项。 Ansible documentation说:

如果yes,强制安装/删除。

但这似乎是关于强制接受任何警告。至少当我关闭它时,Ansible被阻止了一个关于不受信任来源的警告。 (存储库和服务器都在同一个Intranet中,因此不应该成为问题)

我可以用这个:

- name: force-reinstall myservice
  shell: apt-get --reinstall install myservice

但是这种方式我不能使用apt module的其他选项,并且Ansible会以同样的方式阻止警告。

有没有办法总是重新安装一个包,避免阻止任何交互?

deployment ansible apt deb
1个回答
4
投票

正确的方法是使用正确的版本号。但是,如果您不想强制执行该操作,那么最简单的解决方法是首先删除该包,然后再次安装它。这与重新安装实际上相同。

- name: remove package
  apt: name=package_name state=absent

- name: install package
  apt: name=package_name state=present update_cache=yes
© www.soinside.com 2019 - 2024. All rights reserved.