Ansible

时间:2018-06-18 20:05:29

标签: ansible

我试图构建一个Playbook,如果When语句为True则执行Action A,如果statement为false,则执行Action B. 听起来很简单,重点是两个动作都有相同的变化:

    - name:                       Listing AMI Express
    ec2_ami_facts:
      filters:
        "name":                 Dev-AMI
    with_items:                 "{{ sites }}"
    when:                       site not in sites
    register:                   ami

  - name:                       Listing AMI Standard
    ec2_ami_facts:
      filters:
        "name":                 Prod-AMI
    with_items:                 "{{ sites }}"
    when:                       site in sites
    register:                   ami

据我了解,此处的结果将始终是最后一个动作中的结果,如果第一个动作为True且最后一个动作为False,则为#34; ami"是从最后一个输出 - 只是空。如果最后一个操作为True,则结果将显示正确的" ami"。

如果我把它分成不同的名字,也就是ami1和ami2 - 它会正常工作,但我后来的任务需要变量" ami"。

那么实现这一目标的正确方法是什么? 使用相同的var取决于条件何时。

如果我的主题不够明确,请提前致谢并抱歉。)

0 个答案:

没有答案