【问题标题】:Ansible - ec2_eni reuse ENIAnsible - ec2_eni 重用 ENI
【发布时间】:2016-11-16 19:41:00
【问题描述】:

我有一个创建 ENI 的非常基本的 ansible playbook:

---
- name: create ENIs
  hosts: localhost
  tasks:
     - name: create eni 1
       ec2_eni:
         subnet_id: subnet-xxxxxxx
         region: us-east-1
         description: my-eni
         state: present

我想要做的是,当我重新运行此剧本时,它不会创建新的 ENI,而是验证已创建并存在的 ENI。

我无法传递Private IP 地址,因为我想在我们拥有的多个帐户中重复使用它。

有可能吗?

这是我正在使用的 ENI 模块:

http://docs.ansible.com/ansible/ec2_eni_module.html

【问题讨论】:

  • 是否每次运行时都创建一个新的 ENI?
  • 没有。这就是它现在正在做的事情,我想避免这种情况。
  • 那么ansible是如何知道是否创建ENI的呢?除非你传递一个私有 ip,否则无法知道是创建还是跳过。
  • 我可以从输出中获取 ip 并将其用作变量吗?当它第一次运行时,它发现变量是空的,所以它会创建 eni 并在后续运行中重用它。
  • 是的。注册结果并保存 IP。然后你可以传递IP,这样它就不会再次创建了。

标签: amazon-web-services ansible ansible-playbook


【解决方案1】:

假设 ENI 描述是唯一的(非常重要的假设):

  tasks:
  - ec2_eni_facts:
      region: us-east-1
      filters:
        description: my-eni
    register: eni_facts

  - name: create eni 1 if not presemt
    ec2_eni:
      subnet_id: subnet-xxxxxxx
      region: us-east-1
      description: my-eni
      state: present
    when: not eni_facts.interfaces

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    相关资源
    最近更新 更多