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