未定义变量的Ansible弃用警告,尽管;什么时候;条款

未定义变量的Ansible弃用警告,尽管;什么时候;条款,ansible,ansible-playbook,Ansible,Ansible Playbook,我在ansible的剧本中有这样的描述: - name: install custom packages for the host if there are any apt: pkg={{ item }} state=latest with_items: "{{ extra_packages }}" when: extra_packages is defined 运行它会产生以下结果: [弃用警告]:由于未定义的错误而跳过任务,将来这将是一个致命错误。:“extra_p

我在ansible的剧本中有这样的描述:

- name: install custom packages for the host if there are any
    apt: pkg={{ item }} state=latest
    with_items: "{{ extra_packages }}"
    when: extra_packages is defined
运行它会产生以下结果:

[弃用警告]:由于未定义的错误而跳过任务,将来这将是一个致命错误。:“extra_packages”未定义


但是我正在检查变量是否在when子句中定义。如何修复此问题,使其在ansible升级时不会导致致命错误?

解决方案最初并不明显,在ansible中确实感觉不一致

  - name: install custom packages for the host if there are any
    apt: pkg={{ item }} state=latest
    with_items: "{{ extra_packages | default([]) }}"
本质上,在循环中使用“when”并不适用于这个用例

有文件记载:

如果需要根据定义的循环变量跳过整个任务,请使用| default过滤器提供空迭代器

然而,这篇文档无法通过谷歌搜索特定的错误消息。这只是一个问题,因为以前(不知不觉地)依赖的行为已被弃用