代码之家  ›  专栏  ›  技术社区  ›  Judy

ansible+如何在有条件的情况下运行import_playbook

  •  0
  • Judy  · 技术社区  · 1 年前

    可以运行吗 import_playbook 有条件吗?

    这是我易解释代码中的一个例子

    我们想跑步 run_tasks_only_on_rhel8.yml 从…起 导入_工作簿 当条件仅适用于rhel8机器时

    - import_playbook: "{{playbook_folder}}/run_tasks_only_on_rhel8.yml"
      when: ansible_facts['distribution_major_version'] == "8"
    

    但是从ansible的剧本输出中,我们看到了以下错误

     The conditional check 'ansible_facts['distribution_major_version'] == "8"' failed. The error was: error while evaluating conditional (ansible_facts['distribution_major_version'] == "8"): 'dict object' has no attribute 'distribution_major_version'
    

    这里需要更正什么?

    2 回复  |  直到 1 年前
        1
  •  1
  •   c4f4t0r    1 年前

    你需要检查一下,如果你在你的剧本中禁用了事实,如下所示,这个基本代码可以正常工作:

    - hosts: localhost
      connection: local
      tasks:
      - debug:
          var: ansible_facts['distribution_major_version']
    
        2
  •  -1
  •   sqb_linux    1 年前

    根据此处的另一条线索: Ansible: can't access dictionary value - got error: 'dict object' has no attribute

    看起来这些对象没有设置正确的var来满足条件检查,您可能会在我链接的线程中找到所需的帮助。