Em geral, para ver o que está dentro de uma variável, você pode usar o módulo debug
.
- debug:
var: result
Isso deve mostrar um objeto e suas propriedades que incluem stdout
. Esse é o resultado completo do comando anterior. Então, para usar a saída da primeira tarefa, você usaria result.stdout
.
Para usar qualquer variável, você usaria expressões Jinja2: {{ whatever }}
. Então, sua tarefa poderia ser assim:
- name: Set hostname on conf file
lineinfile:
dest: /etc/teste/linux/zabbix_agentd.conf
regexp: ^Hostname=.*
insertafter: ^# Hostname=
line: Hostname={{ result.stdout }}
Tanto para teoria, mas aqui vem a verdadeira resposta . Não faça assim. Claro que o Ansible já sabe o nome do host.
O nome do host, conforme definido em seu inventário, seria {{ inventory_hostname }}
. O nome do host conforme relatado pelo servidor é {{ ansible_hostname }}
. Além disso, há {{ ansible_fqdn }}
. Então, basta usar qualquer um deles em vez de executar uma tarefa adicional:
- name: Set hostname on conf file
lineinfile:
dest: /etc/teste/linux/zabbix_agentd.conf
regexp: ^Hostname=.*
insertafter: ^# Hostname=
line: Hostname={{ ansible_hostname }}