Ansible'当'无法评估主机变量

时间:2016-04-27 16:04:03

标签: conditional-statements ansible

如果某个主机var的值大于0

,我试图只执行一项任务

主机文件

---
os:
  version_nr: 8
  version_name: jessie

dotdeb:
  priority: 100

task.yml

 - name: setup dotdeb preferences
   lineinfile: dest=/etc/apt/preferences
                  create=yes
                  line="{{ item }}"
   with_items:
              - "Package: *"
              - "Pin: release o=packages.dotdeb.org"
              - "Pin-Priority: {{ dotdeb.priority }}"
   when: dotted.priority > 0

但似乎Ansible无法访问主机变量以获得'偏好' 任务。 Ansible说:

  评估条件时出现

错误:dotdeb.priority> 0

我尝试了不同的引用,但似乎没有任何效果。 主变量正在工作,因为' os.version_name'在之前的某个任务中被正确替换。 有什么建议吗?

干杯塞巴斯蒂安

1 个答案:

答案 0 :(得分:0)

看起来变量和标签名称相同。

我将var更改为

dotdeb_repo:
  priority: 0

的任务
- name: setup dotdeb preferences
  lineinfile: dest=/etc/apt/preferences
              create=yes
                line="{{ item }}"
  with_items:
             - "Package: *"
             - "Pin: release o=packages.dotdeb.org"
             - "Pin-Priority: {{ dotdeb_repo.priority }}"
  when: dotdeb_repo.priority > 0

现在一切都按预期工作