【发布时间】:2016-07-28 22:38:54
【问题描述】:
关于 Ansible 中字典的另一个问题!
为方便起见,我为字典中保存的 mysql 数据库设置了某些值,可以很好地循环使用 with_dict 创建数据库和数据库用户。
mysql_dbs:
db1:
user: db1user
pass: "jdhfksjdf"
accessible_from: localhost
db2:
user: db2user
pass: "npoaivrpon"
accessible_from: localhost
任务:
- name: Configure mysql users
mysql_user: name={{ item.value.user }} password={{ item.value.pass }} host={{ item.value.accessible_from }} priv={{ item.key }}.*:ALL state=present
with_dict: "{{ mysql_dbs }}"
但是,我想在另一个任务中使用其中一个字典的键,但我不想循环遍历字典,我只想一次使用一个。我将如何获取描述字典的键(抱歉,不确定术语)?
问题任务:
- name: Add the db1 schema
shell: mysql {{ item }} < /path/to/db1.sql
with_items: '{{ mysql_dbs[db1] }}'
ansible 运行出错:
fatal: [myhost]: FAILED! => {"failed": true, "msg": "'item' is undefined"}
我愿意相信with_items 不是这里最好的策略,但有人知道什么是正确的吗?
在此先感谢,已经卡了一段时间了...
【问题讨论】:
-
我认为您不小心删除了部分问题?我指的是“我试过了”之后的神秘空地。
标签: python yaml ansible ansible-playbook