En général, pour voir ce qu'il y a dans une variable, vous pouvez utiliser la fonction debug
module.
- debug:
var: result
Ceci devrait vous montrer un objet et ses propriétés qui incluent stdout
. C'est le résultat complet de la commande précédente. Donc, pour utiliser le résultat de la première tâche, vous devez utiliser result.stdout
.
Pour utiliser n'importe quelle variable, il faut utiliser les expressions Jinja2 : {{ whatever }}
. Votre tâche pourrait donc ressembler à ceci :
- name: Set hostname on conf file
lineinfile:
dest: /etc/teste/linux/zabbix_agentd.conf
regexp: ^Hostname=.*
insertafter: ^# Hostname=
line: Hostname={{ result.stdout }}
Voilà pour la théorie, mais voici la vraie réponse . Ne le faites pas comme ça. Bien sûr, Ansible connaît déjà le nom d'hôte.
Le nom d'hôte tel qu'il est défini dans votre inventaire serait le suivant {{ inventory_hostname }}
. Le nom d'hôte tel que rapporté par le serveur est {{ ansible_hostname }}
. En outre, il y a {{ ansible_fqdn }}
. Il suffit donc d'utiliser l'une d'entre elles au lieu d'exécuter une tâche supplémentaire :
- name: Set hostname on conf file
lineinfile:
dest: /etc/teste/linux/zabbix_agentd.conf
regexp: ^Hostname=.*
insertafter: ^# Hostname=
line: Hostname={{ ansible_hostname }}