我使用Ansible从自定义存储库部署.deb包。
有时,开发人员可能会忘记更改软件包编号,因此存储库将使用旧版本的新软件包。这是不必要的,所以我想总是重新安装包。我该怎么做?
force=yes
有apt module
个选项。 Ansible documentation说:
如果
yes
,请强制安装/删除。
但这似乎是强制接受任何警告。至少当我关闭它时,Ansible被阻止了一个关于不受信任来源的警告。 (存储库和服务器都在同一个Intranet中,因此不应该是一个问题)
我可以用这个:
- name: force-reinstall myservice
shell: apt-get --reinstall install myservice
但是这样我就无法使用apt module
的其他选项,并且Ansible会以相同的方式被警告阻止。
有没有办法永远重新安装软件包并避免阻止任何交互?
答案 0 :(得分:4)
正确的方法是使用正确的版本号。但是,如果您不想强制执行该操作,那么最简单的解决方法是先删除该软件包,然后再重新安装。这与重新安装实际上相同。
- name: remove package
apt: name=package_name state=absent
- name: install package
apt: name=package_name state=present update_cache=yes