在Ansible资源清册中找不到主机

在Ansible资源清册中找不到主机,ansible,ansible-inventory,Ansible,Ansible Inventory,我正试图使用Ansible 2.5对特定主机进行一些测试,但Ansible无法计算出我的清单。我不是做错了什么,就是出了问题。我以前也这样做过,但2.5版本可能会有所改变 我有如下指定的库存文件: localhost ansible_connection=local testhost ansible_ssh_host=1.2.3.4 我有一个剧本,如果我用ansible playbook.yml运行它,它会运行得非常好。它是这样开始的: - hosts: localhost bec

我正试图使用Ansible 2.5对特定主机进行一些测试,但Ansible无法计算出我的清单。我不是做错了什么,就是出了问题。我以前也这样做过,但2.5版本可能会有所改变

我有如下指定的库存文件:

localhost   ansible_connection=local
testhost   ansible_ssh_host=1.2.3.4
我有一个剧本,如果我用
ansible playbook.yml
运行它,它会运行得非常好。它是这样开始的:

- hosts: localhost
  become: yes
  become_user: root
  become_method: sudo
  gather_facts: yes
如果运行
ansible inventory--list
我会看到我的两台主机都列为“未分组”

但是,如果我尝试使用
ansible-l testhost playbook.yml对远程主机运行我的playbook,则会出现以下错误:

 [WARNING]: Could not match supplied host pattern, ignoring: playbook.yml

ERROR! Specified hosts and/or --limit does not match any hosts

我不知道如何在我的远程主机上实际运行Ansible。

您的剧本指定:

hosts: localhost
无论您提供的参数是什么,它都不会在
testfile
上运行<代码>--限制
不会替换主机声明


由于主机已解组,您需要将其更改为:

hosts: all
然后,您可以使用limit选项从给定的目标组中筛选主机



您还使用了错误的命令来运行Ansible playbook,它应该是
Ansible playbook
而不是
Ansible
(虽然效果相同,但在这种情况下,后者不会因错误而失败)。

在需要连接本地系统的任何位置使用简单的方法?只需指定连接到主机块的
connection:local

- hosts: localhost
  connection : local
  become: yes
  become_user: root

即使库存文件是系统默认文件(/etc/ansible/hosts)???我不记得过去必须这么做你到底想达到什么目的?您的playbook仅指定
localhost
,限制为
testhost
没有意义。