在Ansible库存中找不到主机

时间:2018-06-29 14:22:16

标签: 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
  become: yes
  become_user: root
  become_method: sudo
  gather_facts: yes

如果我运行ansible-inventory --list,则会看到两个主机都列为“未分组”

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

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

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

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

2 个答案:

答案 0 :(得分:1)

您的剧本指定:

hosts: localhost

无论您提供什么参数,它都不会在testfile上运行。 --limit不会取代hosts声明。


由于主机已取消分组,因此需要将其更改为:

hosts: all

然后,您可以使用limit选项从给定的目标组中过滤主机。


您还使用错误的命令来运行Ansible剧本,应该是ansible-playbook而不是ansible(尽管效果相同,但后者在这种情况下不会因错误而失败)

答案 1 :(得分:0)

在必须在本地系统上连接的任何地方使用简单方法?只需指定print (df.director.str.contains("\|")) 0 False 1 False 2 True Name: director, dtype: bool print (~df.director.str.contains("\|")) 0 True 1 True 2 False Name: director, dtype: bool 来阻止主机

connection : local