Ansbile 剧本仅使用 apt 模块应用安全更新

Ansbile 剧本仅使用 apt 模块应用安全更新

我有一部分运行 Ubuntu 的服务器,我正在尝试创建一个只对它们应用安全更新的剧本。我知道无人值守升级可以帮我完成这个任务,但我想更好地控制它的运行时间和应用时间。

我发现这个 SF 问题展示了如何使用 apt-get 从特定的 repo 文件安装更新:

如何使用 apt-get 仅在 ubuntu 上安装关键安全更新?

如果不存在此文件,我的剧本会创建它,但我似乎无法让 apt 模块将 sources.list 识别为选项,并且只读取此文件而不执行整个更新列表。以下是我目前所拥有的:

# apt-get upgrade -o Dir::Etc::SourceList=/etc/apt/security.sources.list
- name: Ubuntu - Install the security updates
  apt:
    force_apt_get: yes
    state: latest
    upgrade: yes
    dpkg_options: "Dir::Etc::SourceList=/etc/apt/security.sources.list"
  register: apt_output

当我针对测试 VirtualBox 映像运行剧本时,它显示它将升级 144 个软件包,而 aptitude 显示只需要 80 个安全软件包。

有什么想法我可以如何将 sources.list 文件作为选项传递给 apt 模块?

答案1

当 ansible apt 模块不够用时 - 使用 shell 模块:

- name: Ubuntu - Install the security updates
  shell: apt-get update && apt-get upgrade -o Dir::Etc::SourceList=/etc/apt/security.sources.list

相关内容