如果在变量yml文件中将Ansible变量设置为https: off
,则应跳过以下代码。
default_setup.yml
:
# Other info
ansible_cache_dir: /var/cache/ansible
https: off
provision.yml
:
---
- hosts: webclient
vars_files:
- default_setup.yml
- name: Update server.xml tomcat https conf
template:
src: conf_files/tomcat_server.xml
dest: /opt/tomcat/apache-tomcat-{{ tomcat_ver }}/conf/server.xml
become: true
when: "{{ https }}" == "on"
notify: restart tomcat
当我播放此Ansible provision.yml
时出现以下错误,即使我已添加引号(“”)
ERROR! Syntax Error while loading YAML.
The error appears to have been in '/home/centos/check-tomcat/roles/nginx/tasks/main.yml': line 24, column 23, but maybe elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
become: true
when: "{{ https }}" == "on"
^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
with_items:
- {{ foo }}
Should be written as:
with_items:
- "{{ foo }}"
答案 0 :(得分:1)
两件事:
off
是一个布尔值(false
和no
的同义词),所以如果保留https
定义,那就足够了使用以下条件:
when: not https
如果您将https
更改为字符串,即使用:
https: "off"
然后条件可能是:
when: https == "off"