如何解决Ansible的新手,正在寻找正确的过滤器语法
这是我的剧本
tasks:
- name: Load Variables
include_vars: vars2.yml
- name: show system info
panos_op:
provider: '{{ provider }}'
cmd: '<show><system><info/></system></show>'
cmd_is_xml: true
register: systeminfo
- debug:
msg: '{{systeminfo.stdout}}'
输出是:
"app-release-date": null,"app-version": "8103-5197","av-release-date": null,"av-version": "0","cloud-mode": "non-cloud","default-gateway": "192.168.55.2","devicename": "PA-VM-Firewall","family": "vm","global-protect-client-package-version": "0.0.0","global-protect-clientless-vpn-release-date": null,"global-protect-clientless-vpn-version": "0","global-protect-datafile-release-date": "unkNown","global-protect-datafile-version": "unkNown","hostname": "PA-VM-Firewall","ip-address": "192.168.55.200","ipv6-address": "unkNown","ipv6-default-gateway": null,"ipv6-link-local-address": "fe80::20c:29ff:fef0:5639/64","is-dhcp": "no","logdb-version": "9.0.10","mac-address": "00:0c:29:f0:56:39","model": "PA-VM","multi-vsys": "off","netmask": "255.255.255.0","operational-mode": "normal","platform-family": "vm","plugin_versions": {
"entry": {
"@name": "vm_series","@version": "1.0.2","pkginfo": "vm_series-1.0.2"
}
},"public-ip-address": "unkNown","serial": "0153510123456","sw-version": "9.0.1","threat-release-date": null,"threat-version": "0","time": "Tue Oct 6 22:03:33 2020","uptime": "0 days,0:29:00","url-db": "paloaltonetworks","url-filtering-version": "20201007.20031","vm-cpuid": "ESX:E9060900FFFB8B1F","vm-license": "VM-50","vm-mac-base": "7C:89:C1:B1:C4:00","vm-mac-count": "256","vm-mode": "VMWare ESXi","vm-uuid": "564D7A26-6146-CD3F-26CF-302C49F05639","vpn-disable-mode": "off","wf-private-release-date": "unkNown","wf-private-version": "0","wildfire-release-date": null,"wildfire-version": "0"
仅打印我需要的内容的语法是什么(例如:我只需要打印主机名,序列号,sw版本,ip地址)
谢谢
解决方法
根据docs,panps_op
产生有效的json
。您发布的内容不是,但我想您只是没有发布所有内容。
您可以解析json
输出,然后将其作为字典访问:
tasks:
- name: Load Variables
include_vars: vars2.yml
- name: show system info
panos_op:
provider: '{{ provider }}'
cmd: '<show><system><info/></system></show>'
cmd_is_xml: true
register: tmp
- name: parse json
set_fact:
sysinfo: "{{ tmp.stdout | from_json }}"
- name: print relevant information
debug:
msg: "{{ sysinfo['system'][item] }}"
loop:
- hostname
- serial
- sw-version
- ip-address
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。