在以下任务中,我收到错误消息Unable to look up a name or access an attribute in template string. Make sure your variable name does not contain invalid characters like '-'.
我已将其追溯到when
子句。
使用调试语句我已经验证:
mysql_server_version='5.2.23'
mysql_client_version='5.2.23'
mysql_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"
答案 0 :(得分:0)
According to the docs,when
条件不需要使用模板标记{{
和}}
,因为这些标记已经隐含。
请改为尝试:
when: mysql_server_version | version_compare(mysql_version, '<') or
mysql_client_version | version_compare(mysql_version, '<')