#1 Le 08/12/2012, à 23:01
- bbenn
Migrer un serveur
Salut,
je vais devoir migrer un serveur (ubuntu vers ubuntu sur une autre machine)
Il y a un truc qui me pose problème: les groups et les users.
J'ai une vingtaine de groupe et une soixantaine de users sur le serveur, est-ce que je vais devoir tout refaire à la main sur le nouveau ou bien est-ce que je peux automatiser ça?
Merci
Hors ligne
#2 Le 09/12/2012, à 02:04
- J5012
Re : Migrer un serveur
tu fais une copie clone bit-a-bit de la partition serveur a deplacer avec clonezilla par ex.
Hors ligne
#3 Le 09/12/2012, à 10:33
- tiramiseb
Re : Migrer un serveur
tu fais une copie clone bit-a-bit de la partition serveur a deplacer avec clonezilla par ex.
C'est une possibilité.
Mais la migration peut éventuellement être l'occasion de remettre le système au propre et éventuellement monter de version
bbenn, pour conserver les groups/users/pass (si toutefois tu n'utilise pas d'authentification LDAP ou d'autres trucs sioux dans le genre) tu peux tout à fait copier le contenu des fichiers /etc/group, /etc/passwd et /etc/shadow (uniquement le contenu qui t'intéresse hein, les "vrais" utilisateurs, pas les utilisateurs qui sont créés automatiquement par le système); Fais gaffe quand même à ne pas t'empêcher d'accéder aux données, il ne faut simplement pas qu'un autre utilisateur - avec un autre mot de passe - ait le même UID que ton premier utilisateur sur le nouveau système (cet UID étant 1000 a priori).
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#4 Le 09/12/2012, à 11:37
- bbenn
Re : Migrer un serveur
J5012 a écrit :tu fais une copie clone bit-a-bit de la partition serveur a deplacer avec clonezilla par ex.
C'est une possibilité.
Mais la migration peut éventuellement être l'occasion de remettre le système au propre et éventuellement monter de versionbbenn, pour conserver les groups/users/pass (si toutefois tu n'utilise pas d'authentification LDAP ou d'autres trucs sioux dans le genre) tu peux tout à fait copier le contenu des fichiers /etc/group, /etc/passwd et /etc/shadow (uniquement le contenu qui t'intéresse hein, les "vrais" utilisateurs, pas les utilisateurs qui sont créés automatiquement par le système); Fais gaffe quand même à ne pas t'empêcher d'accéder aux données, il ne faut simplement pas qu'un autre utilisateur - avec un autre mot de passe - ait le même UID que ton premier utilisateur sur le nouveau système (cet UID étant 1000 a priori).
ces 3 fichiers suffisent? il n'y à rien de plus qui est modifié quand on fait un adduser?
il faudra aussi que je crée les home de chacun mais ça à la limite je peux faire un cp massif du dossier /home vers le nouveau serveur
à priori pas de soucis pour les ID car j'avais commencé avec 10000
merci à toi
Hors ligne
#5 Le 09/12/2012, à 11:43
- tiramiseb
Re : Migrer un serveur
ces 3 fichiers suffisent? il n'y à rien de plus qui est modifié quand on fait un adduser?
À part le home comme tu l'as précisé, non, rien de plus.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#6 Le 09/12/2012, à 21:16
- chefdelegion
Re : Migrer un serveur
du moment que tu gardes les fichiés comme dit tiramiseb et le dossié /home c'est bon jai déjà fait sa pour passer de Debian à RedHaT
Xubuntu 14.04 LTS sur tous les postes.
Debian/FreeBSD pour les serveurs.
OMV/FreeNAS pour les serveurs NAS/SAN
New blog : http://aurelienh.shost.ca
Hors ligne
#7 Le 10/12/2012, à 15:26
- jlmas
Re : Migrer un serveur
ces 3 fichiers suffisent?
il faudra aussi que je crée les home de chacun mais ça à la limite je peux faire un cp massif du dossier /home vers le nouveau serveur
Utilise plutôt rsync à la place de cp
Personnellement je fais un tar.gz de /etc et je récupère les paquets installés avec la commande suivante :
dpkg --get-selections > /var/backups/installed-software
Il ne te reste plus qu'à installer la liste des paquets ainsi produite sur le nouveau serveur et de renvoyer les fichiers de conf spécifiques dans le /etc de ton nouveau serveur
Hors ligne
#8 Le 10/12/2012, à 16:07
- devphp
Re : Migrer un serveur
Commence par faire un backup en gardant les droits des fichiers tel qu'ils sont.
tar -zcf /var/backups/home.tgz /home/
Pour la base de donnée
#!/bin/bash
# Au cas où, voici la ligne de commande qui permet de remettre un dump dans mysql. Vous noterez que l'on n'utilise pas la commande 'mysqldump'.
# mysql -uUSER -pPASSWORD maBaseDeDonnee < mondump.sql
# Droit de l'utilisateur USER
# SELECT, SHOW DATABASES, LOCK TABLES
#date du jour
DATE=`date +%y_%m_%d`
echo "Save SQL jobs start "$DATE
#liste des dossier
LISTEBDD=$( echo 'show databases' | mysql -uUSER -pPASSWORD )
#on boucle sur chaque dossier (for découpe automatiquement par l'espace)
for SQL in $LISTEBDD
do
if [ $SQL != "information_schema" ] && [ $SQL != "mysql" ] && [ $SQL != "Database" ] && [ $SQL != "performance_schema" ]; then
#echo $SQL
mysqldump -uUSER -pPASSWORD $SQL | gzip > /var/backups/sql/$SQL"_mysql_"$DATE.sql.gz
fi
done
echo "Save completed"
Je stock donc mes sauvegarde dans /var/backups/ (qui existe de base) une fois que j'ai bien tout sauvegardé (il faut patienté un peu)
scp fichier.tar user@ip:/dossier/de/destination
Password please : ??
Le transfère est ok
Dernière modification par devphp (Le 10/12/2012, à 16:07)
Ubuntu 12.04 (Xfce) 64bits
Intel® Core™ i5 CPU M 520 @ 2.40GHz × 4
Priorité à la prévention, faite des back-up fréquent.
Hors ligne
#9 Le 11/12/2012, à 22:27
- bbenn
Re : Migrer un serveur
Pour les droits ça va être un peu plus chaud car j'utilise les ACL
ah oui j'ai remarqué un truc tout pourri aussi: dans le password mysql il y a le terme '!!' et de ce fait je n'arrive pas à le mettre directement dans la ligne de la commande mysql
je suis obligé de ne pas le mettre puis de le saisir manuellement quand on me le demande
du coup je ne peux pas scripter pour faire un dump par le cron par exemple
je n'ai pas tenté de modifier le mdp non plus car je flippe un peu des conséquences
Dernière modification par bbenn (Le 11/12/2012, à 22:35)
Hors ligne
#10 Le 12/12/2012, à 05:46
- devphp
Re : Migrer un serveur
Pour les droits ça va être un peu plus chaud car j'utilise les ACL
ah oui j'ai remarqué un truc tout pourri aussi: dans le password mysql il y a le terme '!!' et de ce fait je n'arrive pas à le mettre directement dans la ligne de la commande mysql
je suis obligé de ne pas le mettre puis de le saisir manuellement quand on me le demande
du coup je ne peux pas scripter pour faire un dump par le cron par exemple
je n'ai pas tenté de modifier le mdp non plus car je flippe un peu des conséquences
Et bien c'est très simple, tu crée un utilisateur, qui a les droits SELECT, LOCK TABLE et SHOW TABLE. Tu lui donne un mdp compliqué mais sans !!.
De cette façon, la tache se fera sans mal. Pour la sécurité un chroot peut permettre d’empêcher la lecture par autrui.
Ubuntu 12.04 (Xfce) 64bits
Intel® Core™ i5 CPU M 520 @ 2.40GHz × 4
Priorité à la prévention, faite des back-up fréquent.
Hors ligne
#11 Le 13/12/2012, à 20:35
- bbenn
Re : Migrer un serveur
j'ai encore 2 ptites interrogations:
j'utilise actuellement des clés ssh pour permettre des montages sshfs entre le serveur et des postes clients.
Est-ce que je peux récupérer les clés sur le serveur et les mettre sur le nouveau sans avoir rien à faire sur les postes clients?
Je voudrais m'assurer également que ces montages sshfs ne puisse plus se faire pendant que je fais la manip (le temps que je récupère toutes les données et pour empêcher que les utilisateurs fassent des modifs sur leur données), comment est-ce que je peux faire?
Hors ligne
#12 Le 13/12/2012, à 20:44
- tiramiseb
Re : Migrer un serveur
Est-ce que je peux récupérer les clés sur le serveur et les mettre sur le nouveau sans avoir rien à faire sur les postes clients?
Oui, car la clé privée est sur le client : sur les serveurs tu ne mets que la clé publique, tu peux utiliser plusieurs fois la même clé publique sur plusieurs serveurs différents pour un seul client.
Je voudrais m'assurer également que ces montages sshfs ne puisse plus se faire pendant que je fais la manip
Tu enlèves les clés sur l'ancien serveur (en modifiant, renommant ou déplaçant le fichier "authorized_keys")
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#13 Le 13/12/2012, à 22:10
- bbenn
Re : Migrer un serveur
cool merci beaucoup
Hors ligne
#14 Le 15/12/2012, à 23:22
- bbenn
Re : Migrer un serveur
et selon vous, ça a quelle valeur (en terme de rémunération pour un prestataire) pour réaliser ces actions?
Hors ligne
#15 Le 15/12/2012, à 23:39
- tiramiseb
Re : Migrer un serveur
C'est difficile à dire comme ça...
Je peux faire un devis mais il me faut plus d'informations (si intéressé, on peut en parler en privé).
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#16 Le 03/02/2013, à 15:43
- bbenn
Re : Migrer un serveur
Salut,
je me pose une ptite question actuellemnt concernant la migration et notemment le dump de labase mysql.
pour faire un dump il faut que la base soit dans un état start. Dans ce cas comment m'assurer qu'il n'y a pas de transaction pendant le dump?
il n'y a pas moyen de faire un dump avec la basse arrétée?
Hors ligne
#17 Le 03/02/2013, à 16:08
- tiramiseb
Re : Migrer un serveur
Si tu veux sauvegarder avec la base arrêtée, tu peux directement prendre le contenu de /var/lib/mysql, à la limite...
comment m'assurer qu'il n'y a pas de transaction pendant le dump?
http://stackoverflow.com/questions/4514 … hen-ddl-is
Il faut mettre un verrou :
mysql> FLUSH TABLES WITH READ LOCK;
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#18 Le 03/02/2013, à 16:26
- bbenn
Re : Migrer un serveur
Si tu veux sauvegarder avec la base arrêtée, tu peux directement prendre le contenu de /var/lib/mysql, à la limite...
comment m'assurer qu'il n'y a pas de transaction pendant le dump?
http://stackoverflow.com/questions/4514 … hen-ddl-is
Il faut mettre un verrou :
mysql> FLUSH TABLES WITH READ LOCK;
bah jusqu'à présent je sauvegardais effectivement /var/lib/mysql mais j'ai tenté de restaurer et ça ne fonctionne pas.
c'est peut-être lié à la différence de version de mysql
pour passer la commande FLUSH TABLES WITH READ LOCK; comment je peux le faire dans un script stp?
Hors ligne
#19 Le 03/02/2013, à 16:33
- tiramiseb
Re : Migrer un serveur
je sauvegardais effectivement /var/lib/mysql mais j'ai tenté de restaurer et ça ne fonctionne pas.
c'est peut-être lié à la différence de version de mysql
Fort possible.
pour passer la commande FLUSH TABLES WITH READ LOCK; comment je peux le faire dans un script stp?
mysql -u<utilisateur> -p<mot de passe> -e "FLUSH TABLES WITH READ LOCK;" <base de données>
Et n'oublie pas de déverrouiller la base à la fin.
Autre possibilité (peut-être plus simple), utiliser une des options suivantes de mysqldump :
- --lock-all-tables : verrouiller toutes les tables de toutes les bases pendant le dump
- --lock-tables : verrouiller les tables de la base courante
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#20 Le 03/02/2013, à 16:46
- bbenn
Re : Migrer un serveur
en effet la 2eme soluce semble plus simple
je test tout ça en live.
Concernant un de tes posts dans lequel tu me propose de créer un user avec les droits SELECT, LOCK TABLE et SHOW TABLE
je suis un peu embété car voici les droits que me propose phpmyadmin:
Données
SELECT
INSERT
UPDATE
DELETE
Structure
CREATE
ALTER
INDEX
DROP
CREATE TEMPORARY TABLES
SHOW VIEW
CREATE ROUTINE
ALTER ROUTINE
EXECUTE
CREATE VIEW
EVENT
TRIGGER
Administration
GRANT
LOCK TABLES
REFERENCES
Hors ligne
#21 Le 03/02/2013, à 16:49
- tiramiseb
Re : Migrer un serveur
Ah ça n'a pas dû être moi, je ne me rappelle pas avoir conseillé ces droits : la seule fois où j'ai parlé de droits récemment j'ai évoqué "GRANT ALL" (et c'est pas le plus propre, c'est sûr)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#22 Le 03/02/2013, à 16:50
- bbenn
Re : Migrer un serveur
quand bien mème, j'ai accordé tout les droits a mon user et ça ne passe pas:
mysqldump: Couldn't execute 'FLUSH TABLES': Access denied; you need the RELOAD privilege for this operation (1227)
Hors ligne
#23 Le 03/02/2013, à 16:50
- tiramiseb
Re : Migrer un serveur
Ben dans ce cas il faut donner le privilège RELOAD à l'utilisateur en question
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#24 Le 03/02/2013, à 16:55
- bbenn
Re : Migrer un serveur
je viens de remarquer que dans la gestion des privilèges dans phpmyadmin, il y a 2 lignes pour mon user.
1 sur les serveur localhost et 1 sur le serveur %
en faisant les modifs sur la ligne 1 ça passe
en fait je ne sais pas à quoi correspond le %
Hors ligne
#25 Le 03/02/2013, à 21:47
- bbenn
Re : Migrer un serveur
encore une ptite question
j'ai des montages sshfs depuis des postes clients sur le serveur.
au moment de faire le backup, je voudrais m'assurer que personne n'est connecté.
je fais donc un killall sshd ce qui est très efficace pour virer tout le monde.
PAr contre comment empêcher les reconnexions le temps que je fasse la backup?
Hors ligne