使用 Ansible 升级 APT 包的正确方法是什么?
What's correct way to upgrade APT packages using Ansible?
设置新的 Linux 服务器时,我通常 运行 apt-get update
然后 apt-get upgrade
。第一个命令更新可用包及其版本的列表,但它不安装或升级任何包。第二个命令实际上安装了我拥有的软件包的更新版本。
在 Ansible 中执行此操作的正确方法是什么?您可以这样做的一种方法是:
- name: update and upgrade apt packages
apt: >
upgrade=yes
update_cache=yes
cache_valid_time=3600
或者您可以分两步完成:
- name: update apt packages
apt: >
update_cache=yes
cache_valid_time=3600
- name: upgrade apt packages
apt: upgrade=yes
如果您采用第一种方式,Ansible 是否足够聪明,知道它应该 运行 'update' 在 'upgrade' 之前? Ansible apt documentation 没有解决这个更细微的问题。
apt module documentation 实际上声明它将首先 运行 更新:
Run the equivalent of apt-get update before the operation. Can be run
as part of the package installation or as a separate step.
(强调我的)
所以这两个剧本在功能上应该是一样的。
这里是升级更新包更好的版本。以下可执行剧本将更新和升级包到清单文件中指定的所有主机。
- hosts: all
become: yes
tasks:
- name: Update and upgrade apt packages
apt:
upgrade: yes
update_cache: yes
cache_valid_time: 86400 # 1 day
cache_valid_time
值是可选的。文档说:
Update the apt cache if its older than the cache_valid_time. This option is set in seconds.
如果您不想在最近才更新缓存时更新缓存,我认为包含此内容是个好习惯。
设置新的 Linux 服务器时,我通常 运行 apt-get update
然后 apt-get upgrade
。第一个命令更新可用包及其版本的列表,但它不安装或升级任何包。第二个命令实际上安装了我拥有的软件包的更新版本。
在 Ansible 中执行此操作的正确方法是什么?您可以这样做的一种方法是:
- name: update and upgrade apt packages
apt: >
upgrade=yes
update_cache=yes
cache_valid_time=3600
或者您可以分两步完成:
- name: update apt packages
apt: >
update_cache=yes
cache_valid_time=3600
- name: upgrade apt packages
apt: upgrade=yes
如果您采用第一种方式,Ansible 是否足够聪明,知道它应该 运行 'update' 在 'upgrade' 之前? Ansible apt documentation 没有解决这个更细微的问题。
apt module documentation 实际上声明它将首先 运行 更新:
Run the equivalent of apt-get update before the operation. Can be run as part of the package installation or as a separate step.
(强调我的)
所以这两个剧本在功能上应该是一样的。
这里是升级更新包更好的版本。以下可执行剧本将更新和升级包到清单文件中指定的所有主机。
- hosts: all
become: yes
tasks:
- name: Update and upgrade apt packages
apt:
upgrade: yes
update_cache: yes
cache_valid_time: 86400 # 1 day
cache_valid_time
值是可选的。文档说:
Update the apt cache if its older than the cache_valid_time. This option is set in seconds.
如果您不想在最近才更新缓存时更新缓存,我认为包含此内容是个好习惯。