我已经创建了一个 kickstart 脚本,以完全自动化的方式安装 CentOS 5.5 (32 位)。
DNS/DHCP 设置在正向和反向查找中都正确地为系统提供了正确的主机名。
挖掘 node4.mydomain.com。 +简短
10.10.10.64
dig -x 10.10.10.64 +短
node4.mydomain.com.
安装完成后系统安装状态如下:
猫/等/系统配置/网络
NETWORKING=yes
NETWORKING_IPV6=yes
GATEWAY=10.10.10.1
HOSTNAME=node4.mydomain.com
回显 ${HOSTNAME}
node4.mydomain.com
猫/等/主机
# 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
我的问题是,这个自动生成的 hosts 文件与我想要的方式(或者更好的是: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
答案1
由于不熟悉 RedHat 的 kickstart 系统,我会使用补充脚本在安装结束时运行并按照您想要的方式设置行。