gpt4 book ai didi

command-line-arguments - 在Ansible中构建映射时发出警告

转载 作者:行者123 更新时间:2023-12-04 11:03:16 26 4
gpt4 key购买 nike

每当我运行我的剧本时,都会出现以下警告:

[WARNING]: While constructing a mapping from /etc/ansible/roles/foo/tasks/main.yml, line 17, column 3, found a duplicate dict key (file). Using last defined value only.



任务文件夹中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"

我想做的是获取命令行参数,设置主机:使用“server”参数,获取任务名称,然后从中找出id所指。此ID用作远程运行的python脚本的第一个输入。

该剧本可以正常运行,但我不明白为什么会收到警告。谁能解释这是怎么回事?

最佳答案

您确定17号线附近没有更多吗?当任务中有两个相同的键(或字典中的任何位置)时,将触发此警告。

警告声明有两个file键,表明任务如下所示:

- name: Clean temp files
file: ...
file: ...

一个常见的错误是人们忘记为下一个任务启动新的列表项。以下内容将是有效的,而以上内容则无效:
- name: Clean temp files
file: ...
- file: ...

我注意到Ansible有时会在错误消息中使行甚至文件出错。我看到它提示 tasks/main.yml,而问题实际上出在 handlers/main.yml上。如果在该行附近找不到重复的 file键重复的任务,请在整个文件甚至其他文件中搜索。如果在任何地方都找不到这样的东西,那么看来您在Ansible中发现了一个错误。在这种情况下,您应该 repot it on github

关于command-line-arguments - 在Ansible中构建映射时发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35945797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com