问题描述
我正在使用 Ansible 2.9.13 并且我有这个剧本:
---
- hosts: localhost
connection: local
vars:
ansible_python_interpreter: /usr/bin/env python3
vars_files:
- vars.yml
tasks:
- name: Get Tags from given VM Name
vmware_vm_info:
validate_certs: no
hostname: '{{ vcenter_server }}'
username: '{{ vcenter_user }}'
password: '{{ vcenter_pass }}'
folder: '{{ provision_folder }}'
delegate_to: localhost
register: vm_info
- debug:
msg: "{{ vm_info.virtual_machines | json_query(query) }}"
vars:
query: "[?guest_name=='C97A1612171478']"
当我运行它时,我得到了这个输出:
ok: [localhost] => {
"msg": [
{
"attributes": {},"cluster": "xxx01","esxi_hostname": "xxxx","guest_fullname": "Microsoft Windows 10 (64-bit)","guest_name": "C97A1612171478","ip_address": "10.x.x.x","mac_address": [
"0x:x:x:x:xd:x"
],"power_state": "poweredOn","tags": [],"uuid": "420xxaf-xxx-xe2-9xe-a5xxxxxa3c","vm_network": {
"0x:x:x:xa:x:x": {
"ipv4": [
"169.x.x.x"
],"ipv6": [
"x::x:x:x:xc"
]
},"x:x:x:x:x0:x1": {
"ipv4": [
"169.x.x.x"
],"ipv6": [
"x::x7:xf:x:x"
]
},"0x:5x:x:x:ax:x": {
"ipv4": [
"10.x.x.x"
],"ipv6": [
"x::1xx:x:8xx:x"
]
}
}
}
]
}
如何过滤输出以使其仅显示 "ip_address": "10.x.x.x"
。
最后只有10.x.x.x
。
我尝试了一些在消息代码中添加键 ip_address
的方法,但所有方法都给我一个错误。
我可以使用 Python 过滤 msg,但如果有办法使用 Ansible 获取它,我想知道如何。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)