A resposta de Mike soa melhor e provavelmente funcionará, mas se causar problemas, você sempre poderá usar uma marreta. :)
Adicionar
/bin/hostname HOSTNAME
Para
/etc/rc.local
:)
Estou executando o Amazon Linux (baseado no RHEL5) no EC2.
Eu tenho meu próprio nome de domínio apontando para o IP elástico da instância. A Amazon atribui automaticamente à instância um nome de host genérico (e não visível na Internet) via DHCP.
Esse nome de host somente interno interrompe o envio de email, pois o servidor SMTP deseja ver um nome de host real (e público). Posso corrigir e-mails executando manualmente o comando "hostname" para definir o nome do host público real.
Eu configurei HOSTNAME em / etc / sysconfig / network, mas o nome do host DHCP parece substituir isso.
Existe uma maneira boa / correta de definir meu hostname e sempre ignorar o que o DHCP tem a dizer sobre isso, enquanto ainda usa o DHCP?
Eu posso pensar em muitas coisas kludgy para fazer (executar um script que desfaz o que o DHCP faz, ou qualquer outra coisa), mas imaginando se há uma configuração real em algum lugar para forçar o nome do host.
Tente isso ... Editar
/etc/sysconfig/network-scripts/ifcfg-eth0
Em seguida, adicione
DHCP_HOSTNAME=host.domain.com
Veja se isso esclarece.
Para o Centos 6 e, portanto, para o Redhat 6, você perderá continuamente o nome do host que deseja que seu host seja conhecido localmente, sempre que você receber um novo IP ou reinicialização, enquanto estiver usando o DHCP. (Redhat 5 / Centos 5 info também abaixo)
(o que pode ser difícil se você fizer backups de scripts ou algo semelhante, contando com um nome de host estático)
Se você usar o dhclient e continuamente tiver seu nome de localhost desejado sobrescrito (esquecido) pelo nome de host fornecido pelo DHCP, continue a ler.
Para forçar um nome de host local (e ainda permitir que o DHCP ofereça o IP desejado), é necessário modificar (ou criar) o arquivo /etc/dhcp/dhclient-eth0.conf
.
(substitua a string eth0 pela interface de rede pela qual você está recebendo o seu nome de host sobrescrito, eth0 funciona para a maioria)
Para minha configuração, esse simples filecontent funciona:
interface "eth0"
{
supersede host-name "myworkbox";
}
e salvo em /etc/dhcp/dhclient-eth0.conf
.
Se você tiver o Redhat 5 / Centos 5, tente fazer o mesmo, mas a localização do arquivo deve ser /etc/dhclient-eth0.conf
.
Você verá por que isso ocorre vendo a seção que faz referência
dhclient-${DEVICE}.conf
no arquivo /etc/sysconfig/network-scripts/ifup
Se você precisar obter um endereço IP específico, precisará revisar a página de manual do dhclient.
Para o CentOS 7 AMI, defina um nome de host estático comentando as linhas:
- set_hostname
- update_hostname
em /etc/cloud/cloud.cfg
. O caractere de comentário do YAML é #
.
Isto é, além de definir o nome do host normalmente.
Basta adicionar
PEERDNS="no"
em / etc / sysconfig / network-scripts / ifcfg-ethX (testado no CentOS 6)
A adição do /etc/dhcp/dhclient-eth0.conf (para o AWS AMI (CentOS)) com conteúdo:
interface "eth0"
{
supersede host-name "myworkbox";
}
pareceu funcionar bem (se estiver usando o dhcp, é claro). Obrigado!