O Google Cloud Compute continua mudando meu arquivo / etc / hosts após a reinicialização

3

Eu tenho brincado com 3 instâncias de computação do Google Cloud usando webmin / virtualmin (hospedagem e email), painéis de controle Vestacp (somente hospedagem) e ISPconfig (somente hospedagem).

A instância ISPConfig tem um endereço IP externo estático, no entanto os outros 2 neste estágio são dhcp.

Todas as 3 instâncias estão usando endereços IP internos dinamicamente atribuídos, embora eu ainda não tenha visto nenhum desses endereços IP mudar em 6 meses de testes e reinicialização e exclusão e reimplantação. Sempre que eu excluir uma instância, a mesma seqüência ip interna é usada (ou seja, o que for o próximo número disponível não atribuído mais baixo é adicionado novamente como endereço IP interno).

Estou com alguns problemas ao forçar a google cloud a sangrar e parar de alterar minha configuração de hostname -f em meu arquivo / etc / hosts.

Deve ler

127.0.0.1 localhost.localdomain localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.x.x.x server1.foo.com.au server1

(onde x é o meu endereço IP interno, "foo" é o meu nome de domínio)

No entanto, em qualquer uma das três instâncias, assim que reinicializo a instância, o google cloud adiciona seu próprio código novamente na próxima reinicialização. ou seja, por padrão, o google cloud continua a alterar o arquivo para ler as mesmas duas linhas "# adicionadas pelo Google", conforme mostrado abaixo

127.0.0.1 localhost.localdomain localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.x.x.x server1.foo.com.au server1
10.x.x.x server1.c.bar.internal server1 # Added by Google
169.254.169.254 metadata.google.internal # Added by Google

(em que x é o meu endereço IP interno, "foo" é o meu nome de domínio real e "bar" é o meu ID de projeto do Google Cloud)

Isso está realmente me causando problemas e não tenho idéia de qual é a melhor maneira de contornar isso.

-Você faz isso a partir da API de DNS do google cloud? -setup um endereço IP interno estático nas configurações de rede do google cloud? -setup um script que continua a verificar se há uma alteração neste arquivo e substitui imediatamente quaisquer alterações feitas no google cloud? -ou eu preciso alterar as informações de metadados na última linha do meu arquivo de hosts para que ele não tenha a linha "... metadata.google.internal # Added by Google"?

Atualmente, a opção 1 acima não está funcionando. Assim que eu ativar a API do DNS, tente inseri-la. Recebo um erro "Falha ao carregar" no meu console do Google Cloud. Esta é uma dor flamejante na bunda !!! (enviei uma solicitação de suporte para o google ... quem sabe quanto tempo levará para uma resposta)

    
por adam 01.10.2017 / 01:28

1 resposta

2

Opção de gueto que pode não funcionar: sudo chattr +i /etc/hosts

Faça man chattr para detalhes, mas isso torna o arquivo "(i) mmutable", o que significa que mesmo o root não pode mudá-lo (a menos que o root faça chattr -i /etc/hosts primeiro, é claro).

Como acima, você pode desfazer isso com sudo chattr -i /etc/hosts

Por que isso acontece: Eu estou supondo que você tem um processo (talvez dhcpcd ou algo assim) que obtém informações de host de alguma fonte, e então atualiza vários arquivos incluindo / etc / hosts (e provavelmente /etc/resolv.conf, que foi por isso que acabei usando o chattr). O jeito certo de consertar as coisas é descobrir qual processo está fazendo isso e configurá-lo para fazer a coisa certa. Você também pode fazer "cp /etc/hosts.correct / etc / hosts" depois que o processo terminar de alterar seu arquivo, mas você precisa fazer isso com atraso suficiente no processo de inicialização que ocorre após processo é feito mangling.

    
por barrycarter 01.10.2017 / 05:07