【发布时间】:2021-05-11 10:29:01
【问题描述】:
我将服务名称作为外部变量。我想找到该服务的 rpm 版本。
我使用了以下剧本: 任务:
- name: get the rpm or apt package facts
package_facts:
manager: "auto"
- name: get version of current installed rpm
set_fact:
rpm_version: "{{ packages['{{ service_name }}'] }}"
- name: print version of current installed rpm
debug:
msg: "{{ rpm_version }}"
我收到以下错误:
TASK [get version of current installed rpm] ************************************************************************************************************************************************
fatal: [10.20.10.74]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute '{{ service_name }}'\n\nThe error appears to be in '/home/m/my-playbook.yml': line 11, column 6, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - name: get version of current installed rpm\n ^ here\n"}
我尝试使用转义字符,例如 \',但它并没有真正帮助。
如何将变量传递给包字典?
当我用硬编码名称替换 {{ service_name }} 时,它按预期工作
【问题讨论】:
标签: ansible