我正在尝试对使用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在我的远程主机上运行。
答案 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