问题描述
通过 AWS SSM 文档 aws-RunPatchBaseline 运行一些测试后,用于基于 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 更新包列表(不安装任何)之外,不要做任何事情。
解决方法
根据我的经验,在 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