Hosts
為什麼我的 /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
自然地IP0.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
但是,我也無法通過它們的名稱 ping 這些伺服器:
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 伺服器上的伺服器。
由於@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
etc 的規範或“官方”名稱,因此如果您有一個分配給此機器/地址的域名,通常最清晰和最有用的是放置完全合格的域名 ( FQDN) 作為名字。