Ansible Depreaction警告而不是使用'result | search'use'result is search',但是如何使用呢?

Ansible Depreaction警告而不是使用'result | search'use'result is search',但是如何使用呢?,ansible,telnet,deprecation-warning,Ansible,Telnet,Deprecation Warning,我有一个简单的剧本: --- - name: cat resolv.conf telnet: user: "{{ foxuser }}" password: "{{ foxpass }}" login_prompt: "login:" prompts: "#" command: - grep 192.168.178.6 /etc/resolv.conf register: resolv changed

我有一个简单的剧本:

---
- name: cat resolv.conf
  telnet:
      user: "{{ foxuser }}"
      password: "{{ foxpass }}"
      login_prompt: "login:"
      prompts: "#"
      command:
          - grep 192.168.178.6  /etc/resolv.conf

  register: resolv
  changed_when: not( resolv.output | join('') | search('nameserver'))
  notify: update resolv.conf
这是可行的,但它会抛出一个弃用警告

[DEPRECATION WARNING]: Using tests as filters is deprecated. Instead of using `result|search` use `result is search`. This feature will be removed in version 2.9. 
我试过:

changed_when: not('nameserver' in resolv.output )
但这似乎总是正确的,即使
nameserver
处于
resolv.output
中。不知何故,
join
似乎是表达式的一个重要部分

请注意,
resolv
包含:

"resolv": {
    "changed": false, 
    "failed": false, 
    "output": [
        " grep 192.168.178.6  /etc/resolv.conf\r\nnameserver 192.168.178.6\r\n[root@foxboard /root]1068#"
    ]
}

如果没有过滤器,我似乎找不到有效的解决方案。我遗漏了什么?

我认为这应该有效(模拟测试对我有用):



使用搜索功能作为过滤器的一部分似乎是触发弃用警告的原因。

我认为这应该会起作用(模拟测试对我有用):


将搜索功能用作筛选器的一部分似乎是触发弃用警告的原因

- name: cat resolv.conf
  telnet:
      user: "{{ foxuser }}"
      password: "{{ foxpass }}"
      login_prompt: "login:"
      prompts: "#"
      command:
          - grep 192.168.178.6  /etc/resolv.conf

  register: resolv
  changed_when: not ( resolv.output | join('') ) is search('nameserver')
  notify: update resolv.conf