让 Ansible 使用正确的 IP

Make Ansible use the right IP

我目前在使用 Ansible 时遇到了一个奇怪的问题

我以前经常更改主机文件中主机的 IP 地址。到目前为止没有任何问题。但是现在,即使我更改了主机文件中的 IP 地址,Ansible 仍在使用以前的 IP。

这是我的主机文件的内容:

[test-host]
test ansible_host=172.16.0.10 ansible_port=22 ansible_user=vagrant ansible_private_key_file=.vagrant/machines/test/virtualbox/private_key

我什至指定了当我 运行 我的剧本时要使用的主机文件 :

ansible-playbook playbook.yml -i hosts.file

我已经尝试重新安装 Ansible,删除 tmp 文件夹。

我看到如果我输入 ansible-inventory -list 我可以看到旧 IP

{
    "_meta": {
        "hostvars": {
            "test": {
                "ansible_host": "192.168.0.10", 
                "ansible_port": 22, 
                "ansible_private_key_file": ".vagrant/machines/test/virtualbox/private_key", 
                "ansible_user": "vagrant"
            }
        }
    },

我如何强制 Ansible 使用 hosts.file 而不是这个 "cache"?

谢谢。

ansible 似乎在使用他自己的缓存: Caching Facts

尝试 运行 您的带有选项 --flush-cache 的剧本,也许这会解决问题

运行 带有 -vvv

的命令
ansible-inventory -vvv --list

在输出的开头找到所有Parsed ... inventory source。查看来源以找出有问题的主机来自哪里。