Networking

自動生成的 /etc/hosts 錯誤

  • February 7, 2011

我創建了一個 kickstart 腳本,以完全自動化的方式安裝 CentOS 5.5(32 位)。

DNS/DHCP 設置在正向和反向查找中正確地為系統提供了正確的主機名。

探勘 node4.mydomain.com。+ 短

10.10.10.64

挖 -x 10.10.10.64 + 短

node4.mydomain.com.

安裝完成後系統安裝狀態如下:

貓 /etc/sysconfig/網路

NETWORKING=yes
NETWORKING_IPV6=yes
GATEWAY=10.10.10.1
HOSTNAME=node4.mydomain.com

迴聲 ${HOSTNAME}

node4.mydomain.com

貓 /etc/hosts

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
10.10.10.64            node4

我的問題是這個自動生成的主機文件與我想要的方式略有不同(或者更好的是:Hadoop 想要的方式)。

最後一行應如下所示:

10.10.10.64            node4.mydomain.com node4

我要修改什麼來解決這個問題?

謝謝。


編輯:我試圖找到實際創建此文件的程式碼。我查看了 acaconda 原始碼和 setup src rpm,但不是從其中之一完成的。這裡有人知道創建 /etc/hosts 文件的程式碼所在的位置嗎?


我將以下內容添加到適用於我的情況的 kickstart 文件的 %post 中:

# =========================
# Force the right hosts file for Hadoop and such
cat > /etc/hosts <<End-of-file
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1     localhost.localdomain localhost
::1           localhost6.localdomain6 localhost6
\$(dig +short \$(hostname))      \$(hostname -f) \$(hostname -s)
End-of-file

不熟悉 RedHat 的 kickstart 系統,我會使用補充腳本在安裝結束時執行並按照您想要的方式設置線路。

引用自:https://serverfault.com/questions/230663