首页 > 解决方案 > 在 Ansible var 文件中创建一个列表,并在 play 中调用所有项目以供参考

问题描述

抱歉,如果之前有人问过这个问题。我已经看遍了,似乎找不到任何东西。我对 ansible/coding 世界比较陌生,所以如果我的术语不正确,我提前道歉。

所以,我想获取一个 IP 地址列表,并将它们全部分配给一个变量。例如,编写一个host_var文件,创建一个变量,并为该变量调用一堆项目。

prefixes:  
  - 192.168.1.1/24  
  - 192.168.1.2/24  
  - 192.168.1.3/24

然后,在剧本中,我想运行一个命令,并将该命令的输出与该{{ prefixes }}变量中的每一行进行比较。

这可能吗?这将如何完成?如果是这样,您是否也可以将其限制为该变量中的特定项目?

谢谢!

标签: networkingansibleciscoansible-inventory

解决方案


您已经在示例中定义了变量。

只需继续您的剧本并使用{{ with_items }}. 另请阅读此处的文档。

---
  - name: Test Playbook
    hosts: localhost
    gather_facts: false

    vars:
      prefixes:
        - 192.168.1.1/24
        - 192.168.1.2/24
        - 192.168.1.3/24

    tasks:
      - name: Debug prefixes
        debug:
          msg: "{{ item }}"
        with_items: "{{ prefixes }}"

推荐阅读