指定直接主机的 Ansible ad-hoc 命令 - 没有匹配的主机

Ansible ad-hoc command with direct host specified - no hosts matched

我正在使用 VirtualBox 运行安装 16.04 Ubuntu 台式机。此 VM 安装了 Ansible 2.4.0。我正在尝试 运行 一个 ad-hoc ansible 命令只是为了证明它有效(我正在上在线课程)。为了模拟小型服务器场,我使用了 lxc(linux 容器)并拥有三个 运行ning:

root@tomasz-VirtualBox:/home/tomasz/ansible# lxc-ls --fancy
NAME STATE   AUTOSTART GROUPS IPV4       IPV6 
db1  RUNNING 0         -      10.0.3.248 -    
web1 RUNNING 0         -      10.0.3.110 -    
web2 RUNNING 0         -      10.0.3.226 -

我可以通过 SSH 连接到这些服务器中的任何一个,但是当我尝试 运行 一个一次性的 ansible 命令时,例如:

root@tomasz-VirtualBox:/home/tomasz/ansible# ansible 10.0.3.248 -m ping -u ubuntu

我收到以下错误,没有匹配的库存:

 [WARNING]: No inventory was parsed, only implicit localhost is available

 [WARNING]: provided hosts list is empty, only localhost is available

 [WARNING]: Could not match supplied host pattern, ignoring: 10.0.3.248

 [WARNING]: No hosts matched, nothing to do

老实说,我很困惑,作为一个 Ansible 新手,我不知道如何推进它。看起来很简单的问题,在 Whosebug 上没有遇到任何类似的事情。非常感谢任何提示!

I provide this host's IP address directly in the command. In this very case, according to my understanding, the inventory file is irrelevant.

错了。您指定 host pattern,它应该与清单中的主机匹配。库存是 Ansible 的必需品。

有一个选项可以指定 "inline" 广告资源。对于您的情况:

ansible all -i '10.0.3.248,' -m ping -u ubuntu

在此示例中:主机模式是 all,清单是单个主机的列表 10.0.3.248
注意末尾的逗号——这很重要,这样 Ansible 就会明白它是内联清单,而不是文件路径。