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

Den*_*nov 2 repository yum ansible

我想从我的存储库安装所有软件包,我无法重复此命令:

yum repo-pkgs reponame install
Run Code Online (Sandbox Code Playgroud)

在 Ansible 剧本中。

我找到的所有内容:示例如何安装一个软件包或已知软件包列表:

- name: upgrade all packages
  yum: name=* state=latest
Run Code Online (Sandbox Code Playgroud)

不起作用:写入所有已安装的软件包 - 但它不正确

gui*_*ido 6

正如文档所示,以下任务将更新所有已安装的软件包,而不是安装可用的软件包:

- name: upgrade all packages
  yum: 
    name: '*'
    state: latest
Run Code Online (Sandbox Code Playgroud)

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

- 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
Run Code Online (Sandbox Code Playgroud)

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