Clonage presque automatisé avec clonezilla

De Wiki Dane (ex wikitice)
Aller à : navigation, rechercher

Marc Bansse: version du 3 octobre 2015 Clonezilla est un logiciel opensource permettant de créer/restaurer des images de disques, de partitions. Ces images peuvent être stockées localement sur une partition, un disque dur externe ou tout simplement sur le se3 par ssh ou partage samba. Cet outil sera évidement moins performant que l'outil de clonage intégré au se3, mais celui-ci ne fonctionne parfois pas correctement à cause de switchs empêchant le multicast. Clonezilla est alors une bonne solution de secours. Cette solution présente également l'avantage de stocker des images de postes non contaminés par des virus ou autres vers. Nous allons voir comment faire le déploiement d'une image contenant une installation de windows en choisissant simplement une ligne du menu PXE. Cette installation sera suivie d'intégration à distance, de sauvegarde locale puis d'installation en dual boot de Linux uniquement à partir de l'interface du se3.

Principe:

  • Nous allons créer un partage samba sur le se3 (ou un autre serveur). Ce partage servira à stocker les images de chaque type de poste.
  • Nous allons créer un utilisateur "clonezilla" ayant uniquement des droits de lecture/écriture sur ce partage.
  • Nous créerons un entrée au menu PXE du se3 permettant de se connecter au se3, de lire l'image, de la restaurer sur le poste puis de redémarrer le poste, et ce avec uniquement une seule ligne à valider par entrée dans le menu PXE. Le lancement d'une salle complète de 15 pc prend donc 3 minutes.
Restaure virtualxp automatique.JPG

Installation de Clonezilla, création du partage "partimag" et de l'utilisateur "clonezilla"

Installation de clonezilla

Clonezilla s'installe sur le se3 directement à partir de l'interface. On va dans le menu de configuration du module tftp et on lance l'installation.

Mise en place clonezilla interface.JPG

création du partage

Le partage appelé ici "partimag" peut se faire avec l'interface de gestion du se3 ou en ligne de commande.

cd /var/se3/
mkdir partimag

On édite le fichier /etc/samba/smb_etab.conf après avoir fait une sauvegarde

cp /etc/samba/smb_etab.conf /etc/samba/smb_etab.confsav
nano /etc/samba/smb_etab.conf

On ajoute les lignes suivantes

#<partimag>
[partimag]
        comment = images_disques_clonezilla
        path    = /var/se3/partimag
        read only       = no
        valid users     = clonezilla admin
        browseable = No
        security = users
#</partimag>

Ce partage pointera vers le dossier /var/se3/partimag/, seuls les utilisateurs admin et clonezilla auront un droit de lecture/écriture. Ce partage n'est à priori pas visible par un utilisateur qui fait une recherche sur le réseau.

création de l'utilisateur clonezilla

sur le serveur on tape

useradd clonezilla

l'utilisateur est créé. Attention, ne pas faire adduser car une telle opération donnera une session valide à Clonezilla sur les postes de l'établissement. (voir plus bas pourquoi il ne faut pas). on lui ajoute un mot de passe en faisant:

passwd clonezilla   

On enleve l'accès en ssh au se3 pour plus de sécurité

nano /etc/passwd

On va sur la dernière linge où apparait clonezilla et on remplace /bin/sh en /bin/false . On enregistre (ctrl + o) et on quitte(ctrl +x). On créé l'utilisateur samba clonezilla

smbpasswd -a clonezilla

choisir un mot de passe (pas celui d'admin ou adminse3)

On ajoute admin au groupe clonezilla

usermod -a -G clonezilla admin

On vérifie que l'admin appartient toujours aux autres groupes

groups admin

Le résultat affiché doit être:

admin: lcs-users clonezilla admins

On donne les bons droits au partage partimag

chown -R admin:clonezilla /var/se3/partimag/
chmod -R 770 /var/se3/partimag/

Après chaque ajout d'image, il faudra faire cette modification de droits (l'image est enregistrée par l'utilisateur clonezilla avec des droits 700 par défaut) On relance le service samba

/etc/init.d/samba restart

On vérifie que admin peut bien avoir accès à ce partage à partir d'un poste de l'établissement en tapant dans la barre de recherche \\se3\partimag\

On pourra ajouter dans le fichier logon de l'admin placé dans le template

net use P: \\se3\partimag

Ainsi un nouveau lecteur apparaitra dans le poste de travail et permettra de gérer les images disques.

Modification du PXE

On télécharge le fichier clonezilla.menu (celui présent dans mon lycée) On ajoute le fichier clonezilla.menu dans le répertoire /tftpboot/pxelinux.cfg/ ou on ajoute le contenu du fichier clonezilla.menu dans le fichier perso.menu

cd /tftpboot/pxelinux.cfg/
wget http://wiki.dane.ac-versailles.fr/images/f/f8/Clonezilla-auto.txt
mv Clonezilla-auto.txt clonezilla.menu

On modifie le fichier maintenance.menu pour qu'il ajoute l'entrée clonezilla au menu PXE.

nano maintenance.menu

On ajoute

LABEL Clonezilla
      MENU LABEL ^Clonezilla
      KERNEL menu.c32
      APPEND pxelinux.cfg/clonezilla.menu

On pourra vérifier que clonezilla apparait bien dans le menu PXE

Menu clonezilla present.JPG

Si on utilise un fichier perso.menu (qui en sera pas effacé lors d'une maj du paquet se3-clonage) alors on peut copier le contenu de clonezilla.menu à l'interieur.

cat clonezilla.menu >> perso.menu

le fichier clonezilla.menu présente des blocs de lignes du genre:

MENU LABEL Clonezilla restore m72esciences (partimag)
KERNEL clonezilla64/vmlinuz
APPEND initrd=clonezilla64/initrd.img boot=live config noswap nolocales edd=on nomodeset  ocs_prerun="mount -t cifs //172.20.0.2/partimag /home/partimag/ -o 
user=clonezilla,password=clonezilla123,sec=ntlmv2"  ocs_live_run="ocs-sr  -e1 auto -e2  -r   -j2  -p reboot restoredisk M72esciences sda" ocs_live_extra_param="" 
keyboard-layouts="fr"  ocs_live_batch="no" locales="fr_FR.UTF-8" vga=788 nosplash noprompt etch=tftp://172.20.0.2/clonezilla64/filesystem.squashfs

Ici La version 64 bits de clonezilla va être lancée. Le montage du partage "partimag" va se faire automatiquement. La restauration de l'image appelée M72esciences va se faire sur le disque sda. L'option -p reboot indique que l'ordinateur va redémarrer une fois le travail terminé. L'option restauredisk peut être remplacée par l'option restoreparts et sda par sda1 La table de partitions sera également refaite.

Attention, le mot de passe de clonezilla va apparaitre en clair (au milieu de plein d'autres lignes) sur l'écran quelques secondes lors du démarrage de clonezilla. Ceci n'est pas gênant si le clonage se fait hors de la présence d'élèves. Voilà pourquoi l'utilisateur clonezilla a été crée: il ne possède pas de shell sur le se3, ni d'ouverture de session possible. L'utilisateur n'est même pas reconnu par l'interface samba.

MAJ: Juillet 2016 Avec la mise à jour de Samba, il est possible que l'option "sec=ntlmv2" ne soit plus nécéssaire. Si vous constatez que le montage du serveur ne se fait plus, alors il faudra enlever cette option dans chaque ligne personnalisée.

Fabrication d'image

En plus d'optimisations et autres opérations à faire sur le poste source il faut :

partionnement

Il sera judicieux de fabriquer une image d'un poste en respectant certaines règles de partitionnement:

Le partionnement devra contenir un partition linux libre pour les sauvegardes locales et un espace non partionné pour une install en dual boot windows/linux. Un exemple de partitions

  • sda1 : windows en ntfs
  • sda2 : sav en partiiton linux (ext4)
  • sda3 étendue
  • sda4: données en ntfs ou fat32
  • Le reste non partitionné pour faire l'installation de linux par l'interface.

L'image clonezilla sera approximativement de la taille occupée sur le disque source.

Le partionnement pourra se faire avec Gparted qui se trouve dans la distribution slitaz ou sysrescuecd.

Ces deux distributions sont à lancer dans le menu PXE du se3. Astuce: on peut faire tenir windows sur une seule partition. Pour cela, lors de l'installation choisir le mode avancé. par défaut windows va créer une partition sda1 de 100 Mo, puis proposera l'installation sur une deuxième sda2. Supprimer sda2 et étendre l'espace libre avec sda1. Continuer.

Ajout d'adminse3 aux utilisateurs/administrateurs locaux de Windows

Si le pc est connu de l'annuaire (avec ip réservée), il sera possible d'utiliser l'interface pour faire une intégration automatique des postes après clonage. Pour cela il faudra que l'administrateur local adminse3 soit déjà crée sur l'image source. Pour cela: Faire un clic droit sur le poste de travail ou Ordinateur et gérer Aller dans utilisateurs et groupes puis dans utilisateur et faire "nouveau utilisateur"

Nouvel utilisateur.JPG

Entrer les informations demandées (bien mettre le mot de passe de adminse3 et décocher le changement de mot de passe à la première ouverture de session)

Adminse3 créé.JPG

On va ensuite dans l'onglet des groupes puis administrateurs. On y ajoute adminse3 en faisant "Ajouter" puis on place le nom adminse3. Bien faire vérifier les noms.

Ajout de adminse3 dans administrateurs locaux.JPG

De même, il faudra mettre le mot de passe d'adminse3 au compte "administrateur" local. Le se3 possède maintenant un accès à ce poste pour faire les opérations d’intégration et autres.

Lancement de clonezilla pour fabriquer l'image

On boot le pc source en PXE et on lance la ligne Clonezilla (RAM disk). On choisit le mode débutant

1 mode debutant.JPG

Puis device image/partitions vers image/partitions

2 device image-partition vers image-partition.JPG

On choisit le partage samba

3 monter partage samba.JPG

On remplit l'ip du se3 puis le nom du partage

Partimag.JPG

Il faut ensuite choisir le mode NTLM avant de rentrer le mot de passe (ne marche pas sans cela)

Choix ntlm.JPG

Il ne reste plus qu'à choisir l'option savedisk, choisir le disque sda, choisir un nom d'image. Choisir l'option vérifier et réparer qui peut-être utile en cas de mauvaise extinction du poste source mais ne marche pas avec le ntfs.

Verfier et reparer.JPG

Il ne reste plus qu'à valider pour terminer en appuyant sur "Y"

Valider pour continuer.JPG

Une fois l'opération terminée il faudra redémarrer le poste. L'image est stockée et prête à être déployée sur d'autres postes ultérieurement.

Si on veut qu'admin puisse également lire ces images, il faudra donner les droits corrects à cette image en faisant sur le se3:

chown -R admin:clonezilla /var/se3/partimag/
chmod -R 770 /var/se3/partimag

On peut aussi faire cette opération à partir de l'interface

Acl partimag interface.JPG

Si on ne le fait pas, le clonage marchera mais l'image ne sera pas visible par admin, ce qui n'est pas très grave.

restauration de l'image et opérations post-clonage

restauration de l'image

On démarre les postes de la salle en PXE. On va dans le menu clonezilla puis on choisi la ligne correspondant à l'image souhaitée avec la touche entrée.

Restaure virtualxp automatique.JPG

Et c'est tout!!!!!! La vitesse va dépendre de la taille de l'image, de la vitesse du réseau. Dans mon lycée une salle de 15 pc se fait en une heure avec des images de 70 Go.

fin du clonage

On peut se connecter en root sur le ssh pour voir si le clonage est toujours en cours en tapant

top (ctrl +c pour quitter cette commande)
Top pour verifier fin clonage.JPG

Ici on voit que l'utilisateur clonezilla est toujours en train de travailler. Le clonage n'est donc pas terminé.

Intégration à distance

Si les postes ont déjà été intégrés et qu'ils une ip réservée il suffit d'aller dans l'interface, dans la gestion du DHCP, puis dans les réservations actives. Comme le poste a déjà été intégré (et qu'il n'a pas été effacé de l'annuaire), l'interface considère que c'est un poste déjà au domaine. On choisit l'option "réintegrer le poste" pour chaque poste cloné.

Reintegration poste dhcp.JPG

Les postes vont redémarrer et s'intégrer automatiquement au domaine.

Sauvegarde locale

Le fichier clonezilla.menu possède deux entrées, l'une pour la sauvegarde locale, l'autre pour la restauration mais la sauvegarde par l'interface du se3 sera bien plus simple et tout aussi efficace. (les deux peuvent être cumulées ou on peut faire la sauvegarde locale non intégrée par clonezilla). Avec le partitionnement choisi, il faudra faire sauvegarde de sda1 sur sda2 avec sysrescuecd.

Installation de Linux en dual boot

On se rend sur l'interface du se3. Serveur TFTP puis Déployer GNU/linux On choisi les machines concernées qui doivent être dans un parc. On choisi son architecture, sa version de Linux (lxde plait bien à mes élèves). Surtout choisir "installer Debian sur une partition libre à côté de windows" ou tout le disque dur sera effacé! Cocher "démarrer les machines par Wake-On-Lan et "Redémarrer les machines ouvertes même si une session est ouverte" si vous êtes sur que personne est sur la machine.

Install gnu.JPG

Le poste est donc maintenant intégré au domaine se3, en dual boot, avec une sauvegarde locale.