未解析定义的变量时,Ansible playbook不会跳过任务

未解析定义的变量时,Ansible playbook不会跳过任务,ansible,ansible-2.x,ansible-inventory,ansible-facts,Ansible,Ansible 2.x,Ansible Inventory,Ansible Facts,我正在使用ansible LINEINFLE模块替换文件中的几行。两个变量“apache_status”&“collector_status”在运行playbook时作为额外变量传递。但是,当我没有通过收集器状态时,第二个任务由于抛出未定义变量错误而失败。当任务中定义的变量未添加到额外变量中时,我希望ansible跳过该任务。感谢您的帮助 命令:ansible playbook playbook\u name--extra vars“apache\u status=TRUE” 试试这个: - n

我正在使用ansible LINEINFLE模块替换文件中的几行。两个变量“apache_status”&“collector_status”在运行playbook时作为额外变量传递。但是,当我没有通过收集器状态时,第二个任务由于抛出未定义变量错误而失败。当任务中定义的变量未添加到额外变量中时,我希望ansible跳过该任务。感谢您的帮助

命令:
ansible playbook playbook\u name--extra vars“apache\u status=TRUE”

试试这个:

- name: Enable/Disable Apache  service
  lineinfile: 
    path: /apache/properities
    regexp: '^active='
    line: active={{ apache_status }}
- name: Enable/Disable collector 
  lineinfile:
    path: /apache/properities
    regexp: '^collector='
    line: collector={{ collector_status }}
  when: collector_status is defined
"msg": "The task includes an option with an undefined variable. The error was: 'collector_status' is undefined"
- name: Enable/Disable Apache  service
  lineinfile: 
    path: /apache/properities
    regexp: '^active='
    line: active={{ apache_status }}
- name: Enable/Disable collector 
  lineinfile:
    path: /apache/properities
    regexp: '^collector='
    line: collector={{ collector_status }}
  when: collector_status is defined