Как разрешить предупреждение «Не удается соответствовать прилагающегося шаблону хоста, не обращая внимания: ?

Обновить

April 2019

Просмотры

11 раз

0

Я пытаюсь использовать анзибль автоматизировать свою рабочую станцию. Я после этого учебника , как введение. Но я получаю предупреждение с помощью 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файл:

[localhost]
127.0.0.1

[localhost:vars]
ansible_connection=local

и мой local.ymlфайл:

- 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-playbook: sudo ansible-playbook local.yml

1 ответы

0

Is there a way to get rid of this warning ?

You're getting the warning because ansible-pull builds a command line that includes a --limit option that is built like this:

node = platform.node()
host = socket.getfqdn()
limit_opts = 'localhost,%s,127.0.0.1' % ','.join(set([host, node, host.split('.')[0], node.split('.')[0]]))

Where platform.node() returns your systems node name (i.e. the output of uname -n) and socket.getfqdn() attempts to return the fully qualified domain name of your system. This means that the ansible command line will look something like this:

ansible-playbook -l localhost,yourhostname.example.com,yourhostname,127.0.0.1 ...

It so happens that when you provide a hostname in the --limit argument that does not match a host in your inventory, you get the Could not match supplied host pattern error. You can reproduce that like this:

$ 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

If the warning really bothers you, you can avoid it by explicitly including your local hostname in the ansible inventory by adding a -i option to your ansible-pull command line. You can either include the hosts inline:

ansible-pull -i localhost,myhostname -U ...

Or you can point it explicitly at an existing inventory file:

ansible-pull -i /etc/ansible/hosts -U ...

Связанные вопросы