首先,要确定哪个变量没有被定义。为此可以使用Ansible的--check标志在不应用任何更改的情况下运行playbook。运行该命令后,可以看到哪个变量未定义。例如:
ansible-playbook --check playbook.yml
如果变量未在此ansible剧本中使用,则可能是在其他剧本中定义的变量。检查其他相关的Ansible剧本,看看是否缺少变量定义。如果变量确实应该存在于此playbook中,则可以在变量名之前加上{{ }},以确保该变量被正确引用。
- name: Example task
shell: echo {{ variable_name }}
还可以使用default过滤器为变量设置默认值,以防止未定义变量:
- name: Example task
shell: echo {{ variable_name | default('default_value') }}