Não estando familiarizado com o sistema de kickstart do RedHat, eu usaria um script suplementar para ser executado no final da instalação e definir a linha da maneira que você quiser.
Eu criei um script de kickstart para instalar o CentOS 5.5 (32 bits) de forma totalmente automatizada.
A configuração DNS / DHCP fornece corretamente ao sistema o nome do host correto nas pesquisas direta e inversa.
digita node4.mydomain.com. + curto
10.10.10.64
dig -x 10.10.10.64 + curto
node4.mydomain.com.
No estado em que o sistema instalado está logo após a conclusão da instalação, é o seguinte:
cat / etc / sysconfig / network
NETWORKING=yes
NETWORKING_IPV6=yes
GATEWAY=10.10.10.1
HOSTNAME=node4.mydomain.com
echo $ {HOSTNAME}
node4.mydomain.com
cat / 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
Meu problema é que esse arquivo hosts gerado automaticamente é um pouco diferente do que eu quero (ou melhor: a maneira que o Hadoop quer).
A última linha deve ficar assim:
10.10.10.64 node4.mydomain.com node4
O que modifico onde corrigir isso?
Obrigado.
Editar: Eu tentei encontrar o código que realmente cria esse arquivo. Eu dei uma olhada nas fontes do acaconda e na configuração src rpm, mas isso não foi feito em uma delas. Alguém aqui sabe onde está localizado o código que cria o arquivo / etc / hosts?
Adicionei o seguinte ao% post do meu arquivo de kickstart que funciona para minha situação:
# =========================
# 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