首页 文章

使用Ansible升级已安装软件包的正确方法是什么

提问于
浏览
0

让我们假设我有下一个简单的Ansible剧本:

---
  tasks:
    - name: Upgrade installed packages
      become: true
      apt:
        upgrade: safe

    - name: Install NGINX web server
      become: true
      apt:
        name: nginx
        state: latest
      notify:
        - Restart NGINX

  handlers:
    - name: Restart NGINX
      become: true
      service:
        name: nginx
        state: restarted

如您所见,我首先升级已安装的APT软件包,然后确保我拥有最新的Nginx版本 . 问题是如果有Nginx的更新,它将被安装在第一个任务中,如果是这样,第二个任务将不会被标记为已更改,并且不会触发处理程序 . 这是真的吗?或者Ansible很聪明,只有在第一个任务中升级Nginx时才能以某种方式触发此句柄?

我想知道这个案子的最佳做法 . 有没有比升级所有已安装软件包的任务更好的方法,而不是移动所有单独的安装任务(应该根据更改触发处理程序)?

谢谢!

1 回答

相关问题