ansible à l'aide de la boucle et de multiples variables

je suis à l'aide de "shell:" pour obtenir certaines données en boucle sur "with_items:" et de l'inscrire comme une autre variable.
Plus tard, à l'aide de "lineinfile:" je suis en train d'appliquer le contenu de la précédente variable,mais ne peuvent pas utiliser les "{{variable.stdout}}" comme c'est montrer que non définis dans "with_items:"

Est-il un moyen de dire ansible que pour "variable.stdout" ne regardez pas dans "with_items:"

---
- include_vars: /root/template.yml

- name: Getting MAC
  shell: "cat /sys/class/net/{{item.name}}/address"
  register: mac
  with_items:
  - "{{ interfaces_ipv4 }}"

- name: Setting MAC
   lineinfile:
   state=present
   dest=/etc/sysconfig/network-scripts/ifcfg-{{item.name}}
   regexp='^HWADDR=.*'
   line="HWADDR={{mac.stdout}}"
  with_items:
   - "{{ interfaces_ipv4 }}"
  tags:
   - set_mac

Contenu de la variable fichier

#/root/tempplate.yml

- name: ens35
  bootproto: dhcp
- name: ens34
  bootproto: none

Lors de l'exécution:

TÂCHE: [mac | Réglage MAC] *****************************************************
fatal: [192.168.211.146] => Une ou plusieurs variables indéfinies: 'dict' objet n'a pas d'attribut 'stdout'

MORTELLE: tous les hôtes ont déjà échoué -- l'abandon de

Veuillez étudier à l'aide d'Ansible est template module au lieu de lineinfile. Ce dernier est un antipattern; il tend vers substantielle de la complexité et de la douleur.

OriginalL'auteur Kevin Parker | 2014-11-06