5
我有Ansible角色 「DB」 與簡單的任務:爲什麼Ansible沒有在變量中看到屬性?
- name: Check repos
apt_repository: repo="{{ item.repo }}" state={{ item.state }}
with_items:
- "{{ apt_repos }}"
在/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 }
當我嘗試運行此ansible,劇本:
---
- hosts: test
roles:
- db
我看到錯誤:
fatal: [10.10.10.10] => One or more undefined variables: 'unicode object' has no attribute 'repo'
FATAL: all hosts have already failed -- aborting
但我有另一個作用相同的任務和變量,它的工作完美。怎麼了?
在Ansible 2.1和更早的版本中,這可以工作,但由於使用「裸露變量」apt_repos而給出了棄用警告。爲避免出現這種情況,請使用'with_items:「{{apt_repos}}」'。 – RichVel