[英]Why Ansible didn't see attribute in variable?
我有一个简单任务的Ansible角色“db”:
- 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-playbook时:
---
- 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
但我有另一个角色,具有相同的任务和变量,它完美地工作。 怎么了?
你想这样做:
with_items: apt_repos
apt_repos是一个列表。 通过引用它- "{{ apt_repos }}"
额外-
将其转换为列表列表。 在这种情况下,您也不需要引号或括号 - 在这种情况下,这些几乎都是多余的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.