Ansible item when子句引发错误:无法在模板字符串中查找名称或访问属性
在下面的任务中,我收到错误消息Ansible item when子句引发错误:无法在模板字符串中查找名称或访问属性,ansible,ansible-playbook,Ansible,Ansible Playbook,在下面的任务中,我收到错误消息无法在模板字符串中查找名称或访问属性。请确保变量名不包含诸如“-”之类的无效字符。我将其追溯到when子句 使用我已验证的调试语句: mysql\u server\u version='5.2.23' mysql\u客户端\u版本='5.2.23' mysql\u version='5.2.23' 如果删除when语句,任务将运行 - name: download MySQL packages tags: - preosupdates w
无法在模板字符串中查找名称或访问属性。请确保变量名不包含诸如“-”之类的无效字符。
我将其追溯到when
子句
使用我已验证的调试语句:
mysql\u server\u version='5.2.23'
mysql\u客户端\u版本='5.2.23'
mysql\u version='5.2.23'
when
语句,任务将运行
- name: download MySQL packages
tags:
- preosupdates
when: "{{ mysql_server_version | version_compare(mysql_version, '<') or mysql_client_version | version_compare(mysql_version, '<') }}"
command: yum update -y --downloadonly MySQL-server-advanced-{{ mysql_version }} MySQL-shared-compat-advanced-{{ mysql_version }} MySQL-client-advanced-{{ mysql_version }}
register: downloadonly
failed_when: downloadonly.rc not in (1, 0)
changed_when: "downloadonly is defined and 'No Packages marked for Update' not in downloadonly.stdout"
-name:下载MySQL包
标签:
-预悬浮
当:“{mysql_server_version{124; version_compare(mysql_version,,当
条件不需要使用模板标记{{
和}
,因为它们已经被暗示
请尝试以下方法:
when: mysql_server_version | version_compare(mysql_version, '<') or
mysql_client_version | version_compare(mysql_version, '<')
when:mysql\u server\u version\u compare(mysql\u version,'1.可能或不受
支持。查看何时:{{mysql\u server\u version\124; version\u compare(mysql_版本,'通过使when条件越来越小来隔离错误。从when:True
开始,并通过唯一标记运行该任务。然后替换为small条件并再次运行。然后替换为biger条件等等。我想知道它的运算符优先级是否在管道运算符和or运算符之间,如果您发现s,请告诉我解运算。