У меня есть простая пьеса:
---
- 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#"
]
}
Кажется, я не могу найти рабочее решение без фильтра. Чего мне не хватает?