Amazon ec2 为什么Ansible使用以前创建的主机?

Amazon ec2 为什么Ansible使用以前创建的主机?,amazon-ec2,ansible,Amazon Ec2,Ansible,我正在编写一个简单的ansible playbook来创建一个临时EC2实例。我第一次运行剧本时收到了以下摘要- PLAY RECAP ********************************************************************* 172.31.14.136 : ok=1 changed=0 unreachable=0 failed=0 localhost : ok=3

我正在编写一个简单的ansible playbook来创建一个临时EC2实例。我第一次运行剧本时收到了以下摘要-

PLAY RECAP *********************************************************************
172.31.14.136              : ok=1    changed=0    unreachable=0    failed=0
localhost                  : ok=3    changed=1    unreachable=0    failed=0
PLAY RECAP *********************************************************************
172.31.13.74               : ok=1    changed=0    unreachable=0    failed=0
172.31.14.136              : ok=1    changed=0    unreachable=0    failed=0
localhost                  : ok=3    changed=1    unreachable=0    failed=0
在它运行后,我意识到我想调整一些东西,所以我做了与主机无关的小更改,然后再次运行它,得到了以下摘要-

PLAY RECAP *********************************************************************
172.31.14.136              : ok=1    changed=0    unreachable=0    failed=0
localhost                  : ok=3    changed=1    unreachable=0    failed=0
PLAY RECAP *********************************************************************
172.31.13.74               : ok=1    changed=0    unreachable=0    failed=0
172.31.14.136              : ok=1    changed=0    unreachable=0    failed=0
localhost                  : ok=3    changed=1    unreachable=0    failed=0
我的playbook非常简单,应该只包含两个主机—我的本地主机和新创建的EC2实例的ip。这是剧本-

- name: Provision instance
  hosts: localhost
  vars_files:
    - group_vars/test_ec2.yml

  roles:
    - { role: ec2_create, product: "tmp_instance_test" }

- name: Configure SSH Authorized Keys
  hosts: tmp_instance_test
  vars_files:
    - group_vars/test_ec2.yml

  roles:
    - { role: yarn }
我的问题是,为什么第一次运行的ip 172.31.14.136包含在第二次运行中

更新

以下是ec2_创建的角色-

更新2

存货-

[localhost]
localhost ansible_ssh_user=deployer ansible_connection=local ansible_python_interpreter=/usr/bin/python

[tag_Product_tmp_instance_test]
[tmp_instance_test:children]
tag_Product_tmp_instance_test
[tmp_instance_test:vars]
ansible_ssh_user=ubuntu 
ansible_ssh_private_key_file=~/.ssh/BaseDev
使用meta:refresh\u inventory,您可以强制更新库存,如果示例中以前的服务器172.31.14.136在您的AWS帐户中仍然存在,它将与您的搜索条件标记\u Product\u tmp\u instance\u test匹配,因此属于tmp\u instance\u test组


因此,如果您不终止由ec2_create角色创建的主机,所有这些都将在后续的剧本运行中出现在你的清单中。

谁知道ec2_create角色中有什么?@KonstantinSuvorov我用ec2_create角色更新了这个问题,另一个猜测是:你使用ec2.py之类的东西生成的动态清单?我使用动态清单并更新了我的问题。这可能是缓存问题吗?而且这似乎只有在我马上运行它时才会发生。只是看了一下缓存,看到了这一点,这就是正在发生的事情。非常感谢。