【问题标题】:Ansible: How can I update the system CentOS with AnsibleAnsible:如何使用 Ansible 更新系统 CentOS
【发布时间】:2015-05-09 08:09:29
【问题描述】:

我正在尝试用 ansible 更新 CentOS 系统。不幸的是,我无法做到这一点。

我已经试过了:

- name: install updates
  yum: update_cache=yes
  when: ansible_os_family == "RedHat

不工作。


- name: install updates
  yum: name=* state=latest
  when: ansible_os_family == "RedHat

最后一个任务有效,但任务更新系统是真的吗?

【问题讨论】:

    标签: centos ansible yum


    【解决方案1】:

    您告诉系统只更新 yum 缓存的第一个任务。

    在第二次您使用state=latest 有效地将所有软件包升级到最新版本,但您还应该在同一任务上使用update_cache=yes,以确保您使用其最新软件包信息刷新缓存。

    yum module 文档正好提供了这个例子:

    - name: upgrade all packages
      yum: name=* state=latest
    

    任务执行后,终端应显示黄色消息,表示任务状态为changed

    【讨论】:

    • 我如何只安装安全更新而不更新所有包?
    • 不幸的是,如果出现问题,您会收到非常糟糕的故障排除反馈(基本上是整个 yum 日志,以及 1 行的错误)。此外,您无法真正看到升级进度,也无法获得任何进度日志。我希望有一些特殊的模块。
    • 在 2.8 Ansible 中也可以定义为 yum: name: "*" state: latest 参见 apt_module
    • 如果你通过 ansible-lint 检查这个任务,你会得到[403] Package installs should not use latest。所以,我可以假设应该有更好的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2015-07-09
    • 2017-10-16
    • 1970-01-01
    • 2016-06-29
    相关资源
    最近更新 更多