Sem ficar muito chique, você pode apenas querer usar o módulo de comando e registrar a saída, como segue:
---
- name: Register nslookup hostname result
command: nslookup hostname
register: ns
- name: Some other task with conditional
copy: <params go here>
when: "'server can\'t find' in ns.stdout"
Se você quiser saber um pouco mais sobre as variáveis de registro no Ansible, confira os documentos aqui
Além disso, para referência futura, se você quiser ver o JSON disponível ao registrar um var, poderá fazer algo como o seguinte:
---
- name: Register nslookup hostname result
command: nslookup hostname
register: ns
- debug: var=ns
E então isso deve mostrar algo como abaixo:
ok: [HOST] => {
"var": {
"ns": {
"changed": true,
"cmd": [
"nslookup",
"hostname"
],
"delta": "0:00:00.054897",
"end": "2014-12-18 18:51:15.598652",
"invocation": {
"module_args": "nslookup hostname",
"module_name": "command"
},
"rc": 0,
"start": "2014-12-18 18:51:15.543755",
"stderr": "",
"stdout": "Server:\t\t192.168.1.1\nAddress:\t192.168.1.1#53\n\n** server can't find hostname: HOSTNAME",
"stdout_lines": [
"Server:\t\t192.168.1.1",
"Address:\t192.168.1.1#53",
"",
"** server can't find hostname: HOSTNAME"
],
"warnings": []
}
}
}
Depois de ser registrado, você pode acessar qualquer um desses atributos com a notação de ponto em partes posteriores da execução do livro.
Felicidades!