0

在通过 AWS SSM 文档 aws-RunPatchBaseline 运行一些测试后,用于 Debian 等基于 Debian 的操作系统(如 Ubuntu)的内容代码并没有真正安装任何所需的包,即使使用“安装”参数设置并执行它也是如此。这是需要修复的问题吗,或者为什么这个 SSM 文档在没有真正安装软件包的情况下以这种方式工作。

从文档中,请参见以下内容:

apt-get update 从存储库下载包列表并“更新”它们以获取有关最新版本的包及其依赖项的信息。它将对所有存储库和 PPA 执行此操作。来自http://linux.die.net/man/8/apt-get

用于从源重新同步包索引文件。可用包的索引是从 /etc/apt/sources.list(5) 中指定的位置获取的。应始终在升级或 dist-upgrade 之前执行更新。

如果 APT 通过 apt-get update 知道这些新版本,apt-get upgrade 将获取机器上现有软件包的新版本。

来自http://linux.die.net/man/8/apt-get

用于从 /etc/apt/sources.list(5) 中列举的源安装当前安装在系统上的所有软件包的最新版本。检索和升级当前安装的带有新版本的软件包;在任何情况下都不会删除当前安装的软件包,也不会检索和安装尚未安装的软件包。当前安装的软件包的新版本如果不更改另一个软件包的安装状态就无法升级,将保留其当前版本。[强调我的] 必须首先执行更新,以便 apt-get 知道有新版本的软件包可用。

目前代码内容有:

          "        apt-get update >/dev/null",
          "    fi",
          "}",

¿我应该在 apt-get update 之后添加自定义行还是使用 apt-get upgrade -y 创建自定义 ssm?,本文档可以通过安装软件包来工作,但到目前为止,例如在 Ubuntu 上它什么也没做除了从 repos 更新包列表(不安装任何)。

4

1 回答 1

0

以我的经验,在 Ubuntu 20.04 上,它可以工作。您可以在此类实例上运行后通过检查apt日志来验证这一点。日志位于AWS-RunPatchBaseline

/var/log/apt/history.log

/var/log/apt/term.log

由于您提供了有关您的测试在哪里、您使用了哪个 linux 发行版的任何详细信息,也没有提供任何可能存在 ssm 代理或 apt 错误的日志输出,因此很难推测它为什么不适合您。

实际升级由python 脚本执行,而不是您列出的命令。您可以在运行后检查其代码AWS-RunPatchBaseline

/var/log/amazon/ssm/patch-baseline-operations
于 2021-02-22T19:32:32.330 回答