我怎样才能让它迭代我指定的包的名称列表,而不仅仅是vim?

问题描述 投票:0回答:1

有这样一个剧本:

---
- hosts: [localhost]
  remote_user: "max"
  become: no
  tasks:
    - name: check packages
      package_facts:
        manager: auto

    - name: print
      debug:
        msg: "{{ ansible_facts.packages['vim'][0]['name'] }} is {{ ansible_facts.packages['vim'][0]['version'] }}"

输出:

TASK [print] ****************************************************************************************************************************************************************
ok: [localhost] => 
  msg: vim is 2:8.2.3995-1ubuntu2.17

我怎样才能让它迭代我指定的包名称列表,而不仅仅是 vim?

ansible
1个回答
0
投票

您可以在变量中列出您的包。然后迭代它。


  • 主机:[本地主机] 远程用户:“最大” 变成: 没有 变量: 套餐: -维姆 - 阿帕奇2 - python3

    任务:

    • 名称:检查包裹 包事实: 经理:汽车

    • name:打印包裹信息 调试: 消息:“{{ item.name }} 是 {{ item.version }}” 循环:“{{ ansible_facts.packages | dict2items | selectattr('value.name', 'in', packages) | map(attribute='value') | list }}”

© www.soinside.com 2019 - 2024. All rights reserved.