web-dev-qa-db-fra.com

Google Cloud Compute modifie sans cesse mon fichier / etc / hosts après le redémarrage

J'ai joué avec 3 instances de calcul en nuage Google à l'aide de panneaux de configuration webmin/virtualmin (hébergement Web et messagerie électronique), Vestacp (hébergement uniquement) et ISPconfig (hébergement uniquement).

L'instance ISPConfig a une adresse IP externe statique, mais les deux autres à ce stade sont DHCP.

Les trois instances utilisent des adresses IP internes attribuées de manière dynamique, bien que je n’aie encore vu aucune de ces adresses IP changer au cours des 6 mois de test, de redémarrage, de suppression et de redéploiement. Chaque fois que je supprime une instance, la même séquence ip interne est utilisée (c’est-à-dire que le prochain numéro disponible non attribué le plus bas est rajouté en tant qu’adresse ip interne).

Je ne parviens pas à forcer Google Cloud à forcer Bloodywell à changer mon nom d’hôte -f dans le fichier/etc/hosts.

Il faut lire

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

(où x est mon adresse IP interne, "foo" est mon nom de domaine)

Cependant, sur 3 de mes instances, dès que je redémarre l'instance, Google Cloud ajoute son propre code au prochain redémarrage. c'est-à-dire que par défaut, Google Cloud modifie le fichier pour qu'il lise les mêmes 2 lignes "# ajoutées par Google", comme indiqué ci-dessous.

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

(où x est mon adresse IP interne, "foo" est mon nom de domaine actuel et "bar" est mon identifiant de projet Google Cloud)

Cela me cause vraiment des problèmes et je n'ai aucune idée de la meilleure façon de le contourner.

-Est-ce que je le fais à partir de l'API DNS Google Cloud? -constituer une adresse IP interne statique dans les paramètres réseau de Google Cloud? -setup un script qui continue à vérifier une modification de ce fichier et remplace immédiatement toutes les modifications que google cloud tente d’apporter? -ou ai-je besoin de changer les informations de métadonnées sur la dernière ligne de mon fichier hosts pour qu'il ne comporte pas la ligne "... metadata.google.internal # Ajouté par Google"?

À l'heure actuelle, l'option 1 ci-dessus ne fonctionne pas. Dès que j'active l'API DNS et que j'essaie d'y entrer, je reçois une erreur "Impossible de charger" dans la console Google Cloud. C'est une douleur enflammée dans le cul !!! (J'ai envoyé une demande d'assistance à Google ... qui sait combien de temps il faudra pour une réponse)

2
adam

Option du ghetto susceptible de ne pas fonctionner: Sudo chattr +i /etc/hosts

Faites man chattr pour plus de détails, mais cela rend le fichier "(i) mmutable", ce qui signifie que même la racine ne peut pas le changer (sauf si la racine fait chattr -i /etc/hosts en premier, bien sûr).

Comme ci-dessus, vous pouvez annuler ceci avec Sudo chattr -i /etc/hosts

Pourquoi cela se produit: je suppose que vous avez un processus (peut-être dhcpcd ou autre) qui obtient les informations sur l’hôte de certaines sources, puis met à jour divers fichiers, y compris/etc/hosts (et probablement /etc/resolv.conf, raison pour laquelle j fini par utiliser chattr). La bonne façon de régler le problème consiste à déterminer le processus et à le configurer de manière appropriée. Vous pouvez aussi faire "cp /etc/hosts.correct/etc/hosts" une fois le processus terminé, mais vous devez le faire assez tard dans le processus de démarrage pour que cela se produise after the Le processus est terminé.

3
barrycarter

Sur GCP/Ubuntu (au moins Xenial), /etc/hosts est manipulé et le nom d’hôte est activé via un hook de sortie DHCP (client):

/etc/dhcp/dhclient-exit-hooks.d/google_set_hostname

qui est installé par le paquetage gce-compute-image-packages qui est la valeur par défaut sur les images GCE.

Vous pouvez le pirater (exit 0) ou le supprimer; assurez-vous de faire attention lorsque le paquet est mis à jour, il peut écraser à nouveau le hook en fonction des paramètres apt/dpkg.

0
Ricardo Pardini