Почему мой файл / etc / hosts не читается?

Мой файл /etc/hosts выглядит следующим образом:

 # Your system has configured 'manage_etc_hosts' as True. # As a result, if you wish for changes to this file to persist # then you will need to either # a.) make changes to the master file in /etc/cloud/templates/hosts.tmpl # b.) change or remove the value of 'manage_etc_hosts' in # /etc/cloud/cloud.cfg or cloud-config from user-data 127.0.1.1 ansible-server ansible-server 127.0.0.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts node1 0.0.0.0 node2 0.0.0.0 

Я добавил node1 и node2 и, естественно, IP 0.0.0.0 заменяется IP узла.

Я бы предположил, что это работает отлично, но это не так. Я думал, SSH просто игнорирует файл hosts :

 root@ansible-server:~# ssh root@node1 ssh: Could not resolve hostname node1: Name or service not known root@ansible-server:~# ssh root@node2 ssh: Could not resolve hostname node2: Name or service not known 

Однако я не могу пинговать эти серверы по их имени:

 root@ansible-server:~# ping node1 ping: unknown host node1 root@ansible-server:~# ping node2 ping: unknown host node2 

Это довольно ясно, я делаю что-то действительно глупо здесь … но что?

Дополнительная информация: этот сервер запускает Ubuntu 14.04.2 LTS и размещается на DigitalOcean. Сервер это происходит на сервере Ansible.

2 Solutions collect form web for “Почему мой файл / etc / hosts не читается?”

Поскольку @William все еще ошибается (!), Мы идем:

Формат строк в /etc/hosts – это адрес, а имя (и) второй

 0.0.0.0 node1 0.0.0.0 node2 192.168.1.1 myroutermaybe 8.8.8.8 googledns # in case DNS doesn't work for DNS??? 127.0.0.1 localhost 

или где несколько имен отображаются по одному и тому же адресу

 0.0.0.0 node1 node2 node3 stitch626 

ДОБАВЛЕН, благодаря напоминанию fpmurphy1:

Первое имя (если используется более одного) используется как каноническое или «официальное» имя для gethostbyaddr т. Д., Поэтому, если у вас есть доменное имя, назначенное этому компьютеру / адресу, оно обычно является самым ясным и наиболее полезным для размещения Полноценного доменного имени (FQDN) в качестве имени.

Как было предложено @ dave_thompson_085, сначала нужно задать IP-адрес для первого и имя хоста после этого.

Пример:

 0.0.0.0 node1 0.0.0.0 node2 
  • Мой Linux-сервер каждый день забывает имя своего хоста
  • Использование / etc / hosts или iptables для перенаправления сайта на https: // версию
  • Ping несколько хостов и команда выполнения
  • Должны ли / etc / hosts содержать запись для полного доменного имени, которая сопоставляется с обратным адресом?
  • Должны ли / etc / hosts содержать имя домена или полное доменное имя?
  • Почему существует так много изменений localhost по умолчанию / etc / hosts?
  • настройка разрешения хоста для одной команды?
  • Как условно разрешить имя узла в подключенной сети?
  • Разрешить скрипт домена
  • Два разных / etc / hosts в зависимости от времени
  • Единственный источник для обоих .ssh / config и / etc / hosts
  • Linux и Unix - лучшая ОС в мире.