首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决警告“无法匹配提供的主机模式,忽略:<机器hostname>?

如何解决警告“无法匹配提供的主机模式,忽略:<机器hostname>?
EN

Stack Overflow用户
提问于 2019-04-24 07:57:04
回答 3查看 14.2K关注 0票数 4

我正在尝试使用Ansible来自动化我的工作站。我一直在关注this tutorial作为介绍。但是我一直使用ansible-pull命令收到警告。

在做完sudo ansible-pull -U https://github.com/plsergent/setup-user-friendly.git之后,我得到了[WARNING]: Could not match supplied host pattern, ignoring: <local machine hostname>

这是我的/etc/ansible/hosts文件:

代码语言:javascript
复制
[localhost]
127.0.0.1

[localhost:vars]
ansible_connection=local

和我的local.yml文件:

代码语言:javascript
复制
- hosts: localhost
  become: true
  pre_tasks:
    - name: update repositories
      apt: update_cache=yes
      changed_when: False

  tasks:
    - include: tasks/packages.yml
    - include: tasks/users.yml
    - include: tasks/cron.yml

有没有办法摆脱这个警告?

谢谢

注意:当我使用ansible-playbooksudo ansible-playbook local.yml运行我的剧本时,我没有得到任何警告

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-24 09:24:48

有什么方法可以摆脱这个警告吗?

您收到警告是因为ansible-pull构建了一个命令行,该命令行包含由like this构建的--limit选项

代码语言:javascript
复制
node = platform.node()
host = socket.getfqdn()
limit_opts = 'localhost,%s,127.0.0.1' % ','.join(set([host, node, host.split('.')[0], node.split('.')[0]]))

其中,platform.node()返回系统节点名(即uname -n的输出),socket.getfqdn()尝试返回系统的完全限定域名。这意味着ansible命令行将如下所示:

代码语言:javascript
复制
ansible-playbook -l localhost,yourhostname.example.com,yourhostname,127.0.0.1 ...

当您在--limit参数中提供与清单中的主机不匹配的主机名时,您会收到Could not match supplied host pattern错误。你可以像这样重现它:

代码语言:javascript
复制
$ ansible all -m ping  -l host-that-does-not-exist
 [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit
localhost does not match 'all'

 [WARNING]: Could not match supplied host pattern, ignoring: host-that-does-not-exist

如果该警告真的让您感到困扰,您可以通过在ansible-pull命令行中添加一个-i选项来显式地将您的本地主机名包含在ansible清单中来避免该警告。您可以包括内联主机:

代码语言:javascript
复制
ansible-pull -i localhost,myhostname -U ...

或者,您可以显式地将其指向现有的清单文件:

代码语言:javascript
复制
ansible-pull -i /etc/ansible/hosts -U ...
票数 4
EN

Stack Overflow用户

发布于 2019-05-10 23:04:23

为了补充@larsks的答案,似乎使用具有ansible-pull的动态清单将产生警告,即使指定的主机名包含在动态清单脚本的结果中。解决方法是如前所述将主机名添加到-i。

票数 1
EN

Stack Overflow用户

发布于 2019-09-21 01:22:24

注意:当" myhost“和"myhost.example.com”都在清单中时,ansible-pull似乎对有多少主机感到困惑,并且可能运行两次plays或角色(一次在myhost上,再次在myhost.example.com上),或者可能并行地在一个名称上运行一些plays,在另一个名称上运行其他plays,从而产生意外的执行顺序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55820887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档