使用无人值守升级来更新安全包,无需用户交互

使用无人值守升级来更新安全包,无需用户交互

使用无人值守升级安装安全包。每天运行。但是我注意到过去一周左右安全包尚未安装。经过一番调查,我发现这些更新需要用户交互。(即它们在更新期间有交互提示)

我怎样才能让无人值守升级对这些提示不予认可?

我尝试使用 APT::GET::ASSUME-NO,但似乎不起作用。

似乎必须有某种方法来解决这个问题,因为我管理许多服务器,并且更新每个服务器的安全性会相当耗时。

/etc/apt/apt.conf.d/50unattended-upgrades 文件如下所示

Unattended-Upgrade::Origins-Pattern {
      "origin=${distro_id},archive=${distro_codename}";
      "origin=${distro_id},archive=${distro_codename}-security";
  };

Unattended-Upgrade::Package-Blacklist {
};
Unattended-Upgrade::Mail "root";
Unattended-Upgrade::MailOnlyOnError "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

登录后我看到

22 updates are security updates.

编辑:运行 Ubuntu-Server 18.04.4 LTS(GNU/Linux 5.4.0-1035-aws x86_64)

更新时需要交互的包是php7.0-fpm。

添加

DPkg::Options {
        "--force-confold";
        "--force-confdef";
};

似乎确实停止了 conffile 提示。但是运行后却sudo unattended-upgrades -d出现了该消息。

dpkg is configured not to cause conffile prompts
No packages found that can be upgraded unattended and no pending auto-removals

所以也许这只是我必须面对的事情。但我希望有人能找到解决这个问题的方法。

我们管理着数百台服务器。因此,你可以想象,在每台服务器上手动执行此操作会相当耗时。

答案1

什么问题引发了用户交互?

我将这些设置包含在 apt 配置中unattended-upgrades。它们将回答dpkg配置文件更改的提示

DPkg::Options {
        "--force-confold";
        "--force-confdef";
};

更多信息https://debian-handbook.info/browse/stable/sect.automatic-upgrades.html

编辑

我不知道update-notifier代码如何区分安全更新和其他更新。MOTD 输出可能使用与不同的标准unattended-upgrades

如果你专门查看php7.0-fpm,请检查 的输出apt-cache policy php7.0-fpm。它将告诉你候选版本是什么以及该版本来自哪个存储库。

其中一个可能引起混淆的原因unattended-upgrades是默认配置不是updates存储库安装更新。这是我用来从updates存储库(以及 ESM 存储库)安装更新的另一个 apt 配置。

#clear Unattended-Upgrade::Allowed-Origins;
Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-updates";
        "${distro_id}:${distro_codename}-security";
        "${distro_id}ESM:${distro_codename}";
        "${distro_id}ESM:${distro_codename}-updates";
        "${distro_id}ESM:${distro_codename}-security";
};

该软件包php7.0-fpm表明存在另一个潜在问题。您说您正在使用18.04.4,但该包仅存在于16.04。如果您从非官方存储库安装了此软件,则除非匹配,unattended-upgrades否则不会更新该软件包。Origins-Pattern

相关内容