如何在 ansible 中安装或升级 yum 存储库中的所有软件包

How to install or upgrade in ansible all packages in a yum repository

我想从我的仓库安装所有包,我不能重复这个命令:

yum repo-pkgs reponame install

在 Ansible 剧本中。

我发现的所有内容:例如如何安装一个包或已知包列表:

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

不工作:写入所有已安装的包 -但不对

正如 documentation 所建议的,以下任务将更新所有已安装的包,而不是安装可用的包:

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

要实现你想要的,你需要先注册你的第一个命令返回的包列表:

- name: gather list of packages available
  shell: yum repo-pkgs reponame list
  register: packages

- name: install/upgrade all packages
  yum: 
    name: "{{packages.stdout_lines|join(',')}}"
    state: latest

免责声明:未经测试,因此可能需要调整。