我已经运行 playbook 很多年了,但现在我面临一个毫无头绪的新问题,当我针对远程机器启动 playbook 时:它可以收集事实和任务。但是当我尝试或时,delegate_to:
我local_action
遇到了这个错误:
fatal: [test.local -> localhost]: FAILED! =>
msg: No first item, sequence was empty.. No first item, sequence was empty.. No first item, sequence was empty.. No first item, sequence was empty.
我尝试了一些小改动(切换到 delegate_to、删除 register 等...),但总是出现相同的错误。我看不到我遗漏的“项目”和序列是什么...也许在清单中?即使在那里也-vvvv
没有太多关于错误的详细信息。
代码如下:
- name: test local action
local_action: ansible.builtin.command uptime
register: test
- name: debug
debug:
msg: "{{ test.stdout }}"
有关于如何修复它的任何线索吗?
答案1
TL;DR:group_vars 上缺少变量会导致此错误。
带有“delegate_to”的任务设法在 inventory/group_vars/all.yml 中找到变量值。我已经推断出这种行为是在寻找“第一个”过滤器时发生的。幸运的是,我的库存中没有那么多东西。总结一下:即使机器是“delegate_to 机器”,并且在库存中,它似乎找不到它所属的组,需要定义变量。为了在不移除的情况下解决这个问题,我使用了默认过滤器来设置它。