覆盖无人值守升级的配置选项

覆盖无人值守升级的配置选项

我有几台 Ubuntu 服务器,我想让它们自动应用所有升级。我以前使用过一个简单的脚本,apt-get update && apt-get upgrade但运行起来不太稳定,所以我尝试迁移到这个unattended-upgrades脚本,这似乎是官方推荐的方法。

然而,我正在努力实现以下任务:

  • 如何每天收到电子邮件(假设unattended-upgrades每天都运行)。目前,我似乎只在软件包升级时收到电子邮件(我更喜欢每天都收到电子邮件,因为这样我就知道如果电子邮件没有到达,那就出了问题)。
  • 如何升级所有软件包,而不仅仅是那些具有安全更新的软件包。

我能找到的所有教程,包括Ubuntu 官方文档,告诉我编辑 中的现有文件/etc/apt/apt.conf.d。但是,我更喜欢使用附加文件覆盖选项,部分原因是我以后不会收到“配置文件与维护者不同”错误,也因为这使得在配置管理和版本控制中保留所有覆盖变得更容易。

是否可以通过这种方式覆盖所有配置选项?我尝试过这样做,发现有些覆盖似乎有效,而其他覆盖则无效。

我当前的覆盖文件位于/etc/apt/apt.conf.d/99zz-overrides(命名以确保最后读取)并包含以下内容:

Unattended-Upgrade::Mail "[email protected]";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

我没有改变任何其他东西/etc/apt/apt.conf.d

答案1

因此,如果你想:

  • 使用unattended-upgrades
  • 改变其行为
  • 不要更改包内的unattended-upgrades脚本

(所以基本上鱼与熊掌兼得;-)

你必须:

如果电子邮件为空:则什么也不会发生,否则您将拥有日志,因此所有空的和完整的电子邮件放在一起就是您所要求的。

答案2

绘画来源https://gist.github.com/roybotnik/b0ec2eda2bc625e19eafhttps://wiki.debian.org/UnattendedUpgrades

该文件/etc/apt/apt.conf.d/50unattended-upgrades包含其配置可用的所有选项以及每个选项的说明。

似乎没有每次运行时都发送电子邮件的选项,只有升级或出现问题时才发送电子邮件。不过,你可以设置是否希望在所有升级时发送电子邮件,或者仅在出现问题时发送电子邮件(Unattended-Upgrade::MailOnlyOnError ["true"/"false"]

要回答问题的第二部分,您可以按如下方式设置无人值守升级将使用的源:

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}-security";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};

通过取消注释updates或其他行,您将自动更新那些相应的软件包集。

相关内容