我有一台 Ubuntu 18 LTS 主机,我想通过 ansible 升级它并强制apt-get dist-upgrade
安装任何可用的新配置,覆盖任何现有配置,就像我在那里按下该对话框的第一个选项一样:
我正在研究 ansibleapt_module文档,无法使其工作。在所有情况下,我修改的配置都得到了维护,而新的供应商配置则存储在.ucf-dist
文件中。
到目前为止我已经尝试过:
# 1:
ansible -i my-hosts foo -m apt -a 'update_cache=yes upgrade=safe dpkg_options=force-confnew'
# 2:
ansible -i my-hosts foo -m apt -a 'force_apt_get=yes update_cache=yes upgrade=safe dpkg_options=force-confnew'
# 3:
ansible -i my-hosts foo -m apt -a 'force_apt_get=yes update_cache=yes upgrade=dist dpkg_options=force-confnew'
仅供参考,我使用 VirtualBox 快照在本地重现了此情况,每次测试后我都会恢复。
答案1
该对话框来自 UCF 框架,该框架试图比dpkg
常规配置文件处理更加智能地处理配置文件。
根据ucf 手册页您可以设置环境变量UCF_FORCE_CONFFNEW
来指示它始终覆盖配置文件。
但这与使用不同dpkg --force-confnew
,因为它仅适用于使用 UCF 的包。