在 Ansible 中为 centos5 的 yum 命令实现正确的条件

在 Ansible 中为 centos5 的 yum 命令实现正确的条件

我目前正在使用 centos5 主机,我必须使用 yum 安装一些软件包。不幸的是,据我所知,centos5 不支持 Ansible 的 yum 模块,所以我必须自己使用“命令”或“shell”模块并对所有内容进行“硬编码”。

我的问题是..我应该实现哪些条件才能使命令/shell 的行为类似于 Ansible 的 yum 模块并使其尽可能“无能”?

目前,我想到的是:

安装/更新软件包时

- name: INSTALL (C5) - Install package
  ansible.builtin.command:
    cmd: yum -y install <package>
  register: output_install
  changed_when: '"Installing:" in output_install["stdout"] or "Updating:" in output_install["stdout"]'
  failed_when: output_install["stdout"] is regex("No package.*available")

删除包时

- name: UNINSTALL (C5) - Remove package
  ansible.builtin.command:
    cmd: yum -y remove <package>
  register: output_remove
  changed_when: '"Erasing" in output_remove["stdout"]
  failed_when: "No Packages marked for removal" in output_remove["stdout"]'

你们有什么建议吗?或者已经处理过这个问题了吗?非常感谢。

相关内容