【发布时间】:2016-03-11 16:56:59
【问题描述】:
每当我运行我的剧本时,都会出现以下警告:
[警告]:从 /etc/ansible/roles/foo/tasks/main.yml 构建映射时,发现第 17 行第 3 列 一个重复的字典键(文件)。仅使用最后定义的值。
我在tasks文件夹中main.yml的相关部分是这样的:
(第 17 行是清理文件的任务,这似乎有点不对劲,所以我猜问题出在前面的“脚本”行)
- name: Run script to format output
script: foo.py {{ taskname }} /tmp/fcpout.log
- name: Clean temp files
file: path=/tmp/fcpout.log state=absent
还有我的 vars 文件:
---
my_dict: {SLM: "114", Regular: "255", Production: "1"}
taskid: "{{my_dict[taskname]}}"
要运行我的剧本,我会这样做:
ansible-playbook playbooks/foo.yml --extra-vars "server=bar taskname=SLM"
我要做的是获取命令行参数,设置主机:使用“服务器”参数,获取任务名称并从中找出 id 所指的。此 id 用作远程运行的 python 脚本的第一个输入。
剧本运行良好,但我不明白为什么会收到警告。谁能解释这里出了什么问题?
【问题讨论】:
标签: command-line-arguments ansible jinja2 ansible-playbook ansible-2.x