Ansible 卡在 local_action 或 delegate_to

Ansible 卡在 local_action 或 delegate_to

我已经运行 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 机器”,并且在库存中,它似乎找不到它所属的组,需要定义变量。为了在不移除的情况下解决这个问题,我使用了默认过滤器来设置它。

相关内容