用Ansible显示F5大IP的配置信息

用Ansible显示F5大IP的配置信息,ansible,f5,Ansible,F5,我们正在尝试使用Ansible自动化一些F5任务。第一个是获取配置信息。在第一个任务中,它收集F5中所有虚拟服务器的所有信息。不幸的是,我还没有找到一种寻找特定虚拟服务器的方法。这些数据以JSON格式返回,不容易被人读取。第二个任务解析JSON并显示我要求它访问的虚拟服务器的特定信息。当指定了虚拟服务器名称时,它运行得很好。我试图使它成为从ansible运行作业时从下拉列表中选择的变量。我无法使变量工作。我对亚马尔很陌生。任何帮助都将不胜感激。请参阅我的代码: --- - hosts: loca

我们正在尝试使用Ansible自动化一些F5任务。第一个是获取配置信息。在第一个任务中,它收集F5中所有虚拟服务器的所有信息。不幸的是,我还没有找到一种寻找特定虚拟服务器的方法。这些数据以JSON格式返回,不容易被人读取。第二个任务解析JSON并显示我要求它访问的虚拟服务器的特定信息。当指定了虚拟服务器名称时,它运行得很好。我试图使它成为从ansible运行作业时从下拉列表中选择的变量。我无法使变量工作。我对亚马尔很陌生。任何帮助都将不胜感激。请参阅我的代码:

---
- hosts: localhost
  tasks:
  - name: collect device info
    bigip_device_info:
      gather_subset:
        - virtual-servers
    delegate_to: localhost
    register: f5virtualservers





# This works great
  - name: Display name and pool for a virtual server
    debug:
      var: item
    loop: "{{ f5virtualservers | json_query(vs_name) }}"
    vars:
      vs_name: "virtual_servers[?name=='www.test.com'].{name: name, pool: default_pool}"

# Attempt replacing www.test.com with a variable (doesn't work)
  - name: Display Config for a specific Virtual Server using a variable
    debug:
      var: item
    loop: "{{ f5virtualservers | json_query(vs_name) }}"
    vars:
      vsName: 
      vs_name: "virtual_servers[?name=='vsName'].{name: name, pool: default_pool}"





正如当前编写的那样(并且想当然地认为,
vsName
var是在某处正确定义的…),您需要在创建的jmespath表达式=>
vs_name:“virtual_servers[?name='{{vsName}}}].{name:name,pool:default_pool}”中使用jinja2标记来扩展var值,这就完成了。