Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带ansible的滤波器输出_Ansible_Ansible 2.x - Fatal编程技术网

带ansible的滤波器输出

带ansible的滤波器输出,ansible,ansible-2.x,Ansible,Ansible 2.x,所以我用ansible连接到运行PicOS8的互连设备。我发出的命令具有以下输出: 10.240.18.20,fe80::a94:efff:fe50:b516%eth0 fe80::a94:efff:fe71:d996%vlan.4,10.240.23.34 fe80::a94:efff:fe71:daa6%vlan.4,10.240.23. 这并不总是标准的,因为有时ipv4地址先于ipv6,或者有时根本没有ipv6 我使用ansible寄存器注册这个输出,比如说作为smm_输出 然后,我想

所以我用ansible连接到运行PicOS8的互连设备。我发出的命令具有以下输出:

10.240.18.20,fe80::a94:efff:fe50:b516%eth0
fe80::a94:efff:fe71:d996%vlan.4,10.240.23.34
fe80::a94:efff:fe71:daa6%vlan.4,10.240.23.
这并不总是标准的,因为有时ipv4地址先于ipv6,或者有时根本没有ipv6

我使用ansible寄存器注册这个输出,比如说作为smm_输出

然后,我想显示输出,仅显示ipv4 ip地址,并使用下面的playbook命令:

   - debug:
       msg: "{{ smm_output.stdout_lines | ipv4('address') }}"

但是输出是空白的。不确定我在这里做错了什么,也不确定如何严格显示该输出中的ipv4 ip地址。

您必须遍历列表标准行并将字符串拆分到列表中。试试这个:

- debug:
    msg: "{{ item.split(',') | ipv4('address') }}"
  loop: "{{smm_output.stdout_lines}}"
您还可以仅使用IPv4创建单独的阵列

- set_fact:
    ip4: []

- set_fact:
    ip4: "{{ ip4 + (item.split(',') | ipv4('address') )}}"
  loop: "{{smm_output.stdout_lines}}"

- debug:
    var: ip4
应产生以下输出:

TASK [debug] ***********************************************************************************************************************************************************************************************************
ok: [127.0.0.1] => {
    "ip4": [
        "10.240.18.20",
        "10.240.23.34"
    ]
}

所以我按照你的建议使用。输出如下:TASK[debug]ok:[10.240.18.57]=>{msg:[fe80::a94:efff:fe50:b516%eth0,10.240.18.20,fe80::a94:efff:fe71:d996%vlan.4,10.240.23.34,fe80::a94:efff:fe71:daa6%vlan.4,10.240.23.35]}TASK[debug]ok:[10.240.18.57]=>item=None=>{msg:[10.240.18.20]]=>item=None=>{msg:[10.240.23.34]}好的:[10.240.18.57]=>item=None=>{msg:[10.240.23.35]}我如何摆脱这个item=None?对不起,不知道如何在评论中格式化文本。你能给我发送下面任务的输出吗?调试:msg={{{smm_output.stdout_lines}}好的:[10.240.18.57]=>{msg:[fe80:a94:efff:fe50:b516%eth0,10.240.18.20,fe80:a94:efff:fe71:d996%vlan.4,10.240.23.34,fe80:a94:efff:fe71:daa6%vlan.4,10.240.23.35]}奇怪的是,我有ok:[127.0.0.1]=>item=10.240.18.20,fe80:a94:efff:fe50:b516%eth0=>{msg:[10.240.18.20]}好的:[1]=>item=fe80::a94:efff:fe71:d996%vlan.4,10.240.23.34=>{msg:[10.240.23.34]}好的:[127.0.0.1]=>item=fe80::a94:efff:fe71:daa6%vlan.4,10.240.23.=>{msg:[]}