Reverter / impedir mudança de nome de host

1

Este é um tiro no escuro aqui ...

Estou usando um serviço chamado Strato-Server-Cloud, que é basicamente uma versão rudimentar da AWS ou Google-Compute. Eles mudaram sua interface e / ou mecanismo recentemente. Desde então, todas as novas instâncias do Ubuntu 16 que criei têm o problema de seu hostname ser revertido na reinicialização.

Aqui está o que eu costumo fazer:

/ etc / hostname

www.example.com

/ etc / hosts

127.0.0.1 www.example.com www
[...]

No Ubuntu 16, adicionalmente:

hostnamectl set-hostname www

Depois de seguir os passos acima:

hostname -> www
hostname -f -> www.example.com

hostnamectl

Static hostname: www
Icon name: computer-vm
Chassis: vm
Machine ID: [ID]
Boot ID: [ID]
Virtualization: microsoft
Operating System: Ubuntu 16.04.1 LTS
Kernel: Linux 4.4.0-59-generic
Architecture: x86-64

Após reiniciar a reinicialização

hostname -> XXX
hostname -f -> XXX.strato.net

hostname-ctl

Static hostname: www
Transient hostname: XXX
Icon name: computer-vm
Chassis: vm
Machine ID: [ID]
Boot ID: [ID]
Virtualization: microsoft
Operating System: Ubuntu 16.04.1 LTS
Kernel: Linux 4.4.0-59-generic
Architecture: x86-64

Observe o nome do host temporário

Por estranho que pareça, os arquivos hosts e hostname estão intactos.

Eu também tentei alterar o /etc/init/hostname.conf para o seguinte

description     "set system hostname"

start on startup

task
exec hostname -b -F /etc/hostname.mod; full=$(cat /etc/hostname.mod);short=(${full//./ }); hostnamectl set-hostname $short

Eu coloquei o nome do host também em /etc/hostname.mod para garantir que não haja sobrescrita acontecendo. Executar a instrução exec acima corrige tudo manualmente, mas não parece ser eficaz durante a seqüência de inicialização ...

Infelizmente, estou bastante perdido aqui ... Eu suponho que o /etc/init/hostname.conf seja executado durante a inicialização, mas o hostname seja substituído por outro script? Alguém já teve esse problema e sabe como consertá-lo? Eu acho que eu poderia olhar em alguma versão linux de um arquivo-espião que documenta quais processos tocam quais arquivos e encontram o script ofensivo dessa forma ... Isso soa como um monte de trabalho no entanto ...

Se alguém pudesse, pelo menos, indicar o ciclo de vida do nome do host, quais são as etapas de como ele é determinado e onde alguém poderia se conectar, isso já me ajudaria bastante.

Agradecemos antecipadamente pelo seu tempo e esforço

Editar

Acho que também ajudaria a explicar por que isso é ruim :-) O OpenLDAP se recusa a funcionar corretamente no modo STARTTLS se o nome do host não estiver configurado corretamente. Desde que eu nunca tive o problema de não ser capaz de mudar o hostname eu não sei o que outro serviço poderia funcionar mal também. Uma solução mínima para o problema teria que ser efetivada antes que o serviço como o OpenLDAP fosse iniciado.

    
por user3240383 23.01.2017 / 15:44

1 resposta

3

Para computadores que obtêm seu endereço IP via dchp, o arquivo de cliente padrão, /etc/dhcp/dhclient.conf , inclui perguntar o que o host-name deve estar na solicitação:

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;

Você pode remover isso da solicitação:

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search,
        dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;

Não tenho certeza se: Pode haver efeitos colaterais indesejados; O nome do domínio também deve ser excluído da solicitação.

    
por Doug Smythies 23.01.2017 / 16:45