Quelle est la bonne façon de déplacer un serveur Ubuntu d'une machine à une autre?

0

J'essayais de le faire trois fois maintenant sans réussir, alors espériez-vous que quelqu'un ici pourrait me diriger dans la bonne direction?

J'essaie de déplacer mon serveur Ubuntu 14.04 d'une machine physique à une autre. J'utilise la commande suivante rsync pour y parvenir:

rsync -aAXvP --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} root@iphere:/* /

rsyncdéplace les fichiers correctement et sans redémarrage, je peux exécuter certains des services à partir du serveur d'origine. Toutefois, lors du redémarrage (pour démarrer les autres services), je reçois maintenant un écran infini de «chargement Ubuntu». Vous connaissez celui dont le point se déplace vers la droite toutes les secondes.

À l'origine, le problème était que le périphérique d'amorçage n'était pas trouvé, alors après rysnc, j'ai remplacé l'UUID par celui de mon serveur précédent. Cela a ensuite conduit Ubuntu à ne pas démarrer; donc un pas de plus. Cependant, je suis un peu perdu maintenant car il n'y a pas de message d'erreur et je ne peux rien faire physiquement avec la machine car il s'agit d'un VPS de Vultr .

Et maintenant, en y réfléchissant, lorsque je commencerai enfin, le réseautage sera complètement perturbé.

Linux et la ligne de commande étant très nouveaux pour moi, toute aide serait grandement appréciée.

Il est également intéressant de noter que j’ai adopté cette approche car je souhaite conserver le nouveau serveur exactement tel que mon ancien / actuel, il est hors de question de reconstruire le serveur. Je n'ai tout simplement pas le temps.

Jake Ball
la source
Que voulez-vous dire par là: «… sans redémarrer, je peux faire en sorte que le serveur fonctionne de la même façon que celui sur lequel je copie.» Sans un redémarrage, comment le système peut-il fonctionner activement à votre guise?
JakeGould
@JakeGould, une fois la procédure rsync terminée, j'ai pu activer les services exécutés à partir du serveur d'origine, par exemple TeamSpeak. J'ai ensuite essayé de redémarrer le serveur, de démarrer d'autres services ... ce qui a ensuite entraîné des problèmes. Désolé, je n'étais pas très clair avec cette affirmation - j'ai également
Jake Ball
C'est suffisant. Lorsque vous avez modifié l'UUID, je suppose que vous avez suivi des instructions comme celle-ci ?
JakeGould
Hé Jake, la machine Ubuntu a démarré - cela a pris beaucoup de temps. Rebooted again, encore une fois - prenant très longtemps. Je n'ai pas suivi les instructions comme ça, j'ai simplement obtenu l'UUID de la machine d'origine et utilisé tune2fs / dev / vda1 -U UUID pour changer l'UUID du disque sur le serveur de destination. Lorsque le nouveau serveur a démarré, j'ai essayé de lui envoyer une requête ping sans réponse. Je suppose donc que le réseau est toujours lié à l'ancienne adresse IP? Merci pour l'aide!
Jake Ball
ip addr (ou ifconfig obsolète, mais bien aimé) vous le dirait.
Compagnon Geek

Réponses:

2

Ce n'est pas la méthodologie que vous avez utilisée - et je considère cette technique comme "naïve" - ​​mais cela a fonctionné de manière fiable pour moi. Vous devrez peut-être modifier les choses en comprenant un peu mieux le fonctionnement de Linux. J'ai adapté cela à partir d' une réponse SF avec des ajustements mineurs

Le problème avec cette méthode est que certains fichiers de configuration ont intérêt à ne pas être dupliqués - il n’ya aucune raison pratique de copier sur la configuration de grub, ni /etc/networks.

Ce que je considère être la bonne façon de faire est d' utiliser dpkg --get-selections pour vider une liste de paquets installés et de les installer avec dpkg --set-selections . Créez les mêmes utilisateurs que le système source si nécessaire - vous cat /etc/passwddevriez les lister, et vous pouvez vérifier avec diff pour voir si les deux listes sont identiques. Ensuite, utilisez rsync pour dupliquer votre /etc/dossier pour les paramètres (toutefois, si vous utilisez une vérification IP statique ou laissez de côté / etc / networks), divers /home/dossiers pour les utilisateurs (et vérifiez les autorisations ici) et d’autres dossiers similaires /var/www/.

Je recommande de mettre en place / etc / puis de copier les fichiers de configuration, surtout qu’il s’agit d’un point de rupture.

Testez, assurez-vous que tout est là et que vous avez terminé. Cela me prend moins de temps que de configurer un nouveau serveur.

Il y a quelques "bonnes" choses ici. Vous vous assurez que les tâches qui ne sont pas censées être effectuées manuellement ne le sont pas: la gestion des paquets et les tâches telles que grub restent cohérentes. Il vous permet de déplacer un minimum de fichiers - soyez exclusif et n’incluez pas ce que vous déplacez.

Compagnon Geek
la source
+1 pour ceci: "Le problème avec cette méthode est que certains fichiers de configuration ont
intérêt à
1

Changer le UUID est un bon plan. Mais le problème est que, bien que le système puisse être techniquement utilisable maintenant, vous devez vous assurer de certaines choses. Toutes ces notes sont basées sur mes notes pour la configuration du serveur avec Ubuntu 12.04:

Ajustements de réseau: Vous ne savez pas ce que les paramètres réseau de l'ancienne configuration ont été comparés à ce qu'ils devraient être sur Vultr , mais il y a de fortes chances que cela doive être ajusté. Si vous pouvez vous connecter à la machine, je vous conseillerais ifconfigde lancer une lecture brute des données d'interface. En ce qui concerne les ajustements de réseau, cela se produirait dans /etc/network/interfaceslequel on peut voir / éditer comme ceci:

sudo nano /etc/network/interfaces

Cela dit, si vous pouvez atteindre la machine, il y a des chances qu'il y ait un paramètre DHCP? Peu importe, je chercherais à changer des choses et si vous ne savez pas comment faire, contactez le support Vultr, et dites-leur exactement ce que vous avez fait et ce que vous devez changer. Très confiant, ils écriront tout de suite avec une petite liste de paramètres de réseau à ajuster.

Update Grub: Cela peut être un problème ou non, mais vous devez vous connecter et exécuter la commande suivante:

sudo update-grub2

Cela forcera le système à mettre à jour les paramètres du chargeur de démarrage Grub. Mais si vous remarquez un délai, il se peut que le programme d’installation du chargeur d’amorçage Grub prenne le temps nécessaire. Parfois - et honnêtement, il m’a été difficile de déterminer quand et comment - Grub attendra apparemment toujours pour l’interaction de l’utilisateur lors de la sélection d’un périphérique d’amorçage. Si vous êtes sûr à 100% de ne pas avoir à démarrer avec autre chose que le noyau Ubuntu que vous avez en place, je vous recommanderais d'ajuster les paramètres Grub par défaut dans ce fichier:

sudo nano /etc/default/grub

Trouvez cette ligne:

GRUB_TIMEOUT=2

Maintenant, commentez-le - ou supprimez-le - puis remplacez-le par ce nouveau paramètre ainsi que par un paramètre supplémentaire GRUB_RECORDFAIL_TIMEOUTcomme celui-ci:

GRUB_TIMEOUT=0
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT

Maintenant, exécutez à nouveau la commande de mise à jour Grub:

sudo update-grub2

Et voyez ce qui se passe au redémarrage. Si c'était le cas, le redémarrage devrait être assez rapide par rapport à la version précédente.

Et passé tout cela, vous dites:

Il est également intéressant de noter que j’ai adopté cette approche car je souhaite conserver le nouveau serveur exactement tel que mon ancien / actuel, il est hors de question de reconstruire le serveur. Je n'ai tout simplement pas le temps.

Combien de temps avez-vous réellement économisé entre la migration, la confusion au sujet des paramètres et la dissociation maintenant? S'agit-il d'un problème de gain de temps perçu qui n'ajoute pas réellement du temps réellement gagné?

Ne vous méprenez pas; Je suis heureux d'aider. Mais en général, lors de la configuration des serveurs Linux - et principalement sous Ubuntu -, j’ai une formule très bien testée pour créer un serveur de base solide à partir de rien. Il me faut maintenant environ 1 heure pour le faire; peut prendre plus de temps en fonction de la vitesse du système, etc. Mais une fois que je dispose de cette base solide, la configuration des applications et des utilisateurs devient presque une réflexion après coup.

Ainsi, les perceptions de gain de temps peuvent faire face aux réalités inconnues de la copie par clonage pur, comme ceci: En installant une distribution Linux propre pour commencer, puis en construisant une base solide, vous rendez tous vos systèmes Linux plus portables. sans les «pièges» imprévus d’un tel processus de clonage.

JakeGould
la source
Je vais me déployer à nouveau chez Vultr, la raison de tout ce processus est parce que vultr ne permet pas la rétrogradation, de sorte qu'ils semblent rendre la tâche aussi difficile que possible, ou plutôt - ne donnez pas aux utilisateurs les outils nécessaires. fais-le à l'aise. Je me demandais si je ne pouvais pas récupérer les données réseau / interfaces par défaut lors de la première utilisation du serveur et les copier.
Jake Ball
«Je me demandais si je ne pouvais pas simplement récupérer les données réseau / interfaces par défaut lors de la première utilisation du serveur et les copier.» Bien sûr. Ce ne sont pas de profonds secrets. Lorsqu'un serveur vierge redémarre, assurez-vous de vous connecter et de copier le résultat de ifconfigpour référence, puis copiez le contenu /etc/network/interfacesà utiliser lors du nouveau clonage. Bonne chance!
JakeGould
ifconfig est supposé être obsolète - ip addr est probablement un meilleur choix pour l'avenir. J'essaie toujours d'utiliser IP addr, mais il vaut la peine de mentionner les deux commandes.
Journeyman Geek