Amazon ec2 为什么Ansible使用以前创建的主机?
我正在编写一个简单的ansible playbook来创建一个临时EC2实例。我第一次运行剧本时收到了以下摘要-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
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之类的东西生成的动态清单?我使用动态清单并更新了我的问题。这可能是缓存问题吗?而且这似乎只有在我马上运行它时才会发生。只是看了一下缓存,看到了这一点,这就是正在发生的事情。非常感谢。