Ho Ansible ruolo "db" con semplice compito:Perché Ansible non ha visto l'attributo nella variabile?
- name: Check repos
apt_repository: repo="{{ item.repo }}" state={{ item.state }}
with_items:
- "{{ apt_repos }}"
In /defaults/mail.yml:
apt_repos:
# Percona
- { state: present, repo: 'deb http://repo.percona.com/apt wheezy main', keyserver: 'keyserver.ubuntu.com', key: '1C4CBDCDCD2EFD2A', needkey: True }
- { state: present, repo: 'deb-src http://repo.percona.com/apt wheezy main', needkey: False }
Quando provo a eseguire questo ansible-playbook :
---
- hosts: test
roles:
- db
vedo errore:
fatal: [10.10.10.10] => One or more undefined variables: 'unicode object' has no attribute 'repo'
FATAL: all hosts have already failed -- aborting
Ma ho un altro ruolo con lo stesso compito e variabile e funziona perfettamente. Cosa c'è che non va?
In Ansible 2.1 e forse prima, funziona ma fornisce un avviso di deprecazione dovuto all'utilizzo della 'variabile nuda' 'apt_repos'. Per evitare ciò, usa 'with_items:" {{apt_repos}} "'. – RichVel