Les images de base : création/insertion

jeudi 20 avril 2006
par  f
popularité : 33%

Comment créer une image de base et l’insérer dans la base ? Depuis quelles sources faire l’installation d’une distribution ? Mais au fait, qu’est-ce qu’une image de base et une distribution ? Modularité de l’image de base Windows contre auto-adaptabilité de l’image de base Linux.C’est ici.

Et au commencement il y avait l’image de base...

Qu’est-ce qu’une image de base ?

Idéalement une image de base est la rembo-ification de l’installation d’un système d’exploitation sur une machine, et idéalement cette image de base pourra être déployée sur toutes les machines que l’on désire, à laquelle viendront s’ajouter les packages, rembo-ification des logiciels...Idéalement !

La réalité :
- Sous Windows les pilotes doivent faire partie intégrante de l’image de base, ils ne peuvent être packagés. Le CD d’installation inclut souvent un service pack qui doit être pris en compte pour l’installation des hotfixes et services packs ultérieurs.
- Sous Linux, les diverses distributions proposées contiennent leur propre gestionnaire de packages incompatibles avec la notion incrémentale de rembo.

Aussi il est souhaitable pour :
- Windows : créer une image de base dite générique. Elle ne contient aucun driver. C’est en quelque sorte une image inachévée mais déployable sur toute machine.
- Linux :

  • créer une image avec un noyau modulaire et
    • soit utiliser la base de données JeDDLaJ dans laquelle sont entrées les modules correspondants au matériel détecté,
    • soit insérer dans l’image un logiciel d’autodétection ( discover, kudzu ...)
  • faire des packages de noyaux, packages spécifiques qui ne seront proposés qu’à l’architecture correspondante.

Qu’est-ce qu’une distribution ?

La distribution est à l’image de base, ce que le logiciel est au package. Comme pour un logiciel, une distribution est définie par le triplet (nom système d’exploitation, nom distribution, version ). Le nom de la distribution et la version sont librement choisis par le JeDDLaJeur ; celui du système d’exploitation est choisi parmi la liste des OS supportés par JeDDLaJ. A une distribution donnée, correspond n images de bases :
- si n=1, on dit que l’image de base n’a aucune spécificité
- sinon, chacune des n images de base sera spécifique à une architecture matérielle (elle sera adaptée pour toutes les machines de cette architecture), ou à un nom dns (elle sera adaptée seulement à LA machine portant ce nom). Ce sont les 2 seules spécifités définies dans JeDDLaJ. La spécificité liée aux composants est résumée dans un entier MD5, qui est un haché de la signature de chaque composant. C’est la signature (matérielle) de la machine.

Par exemple, imaginons que nous voulions déployer du Windows2000 SP3, sur n machines d’architectures différentes :
- on aura n images de base nommées par exemple w2k_sp3-architecture_n
- une distribution nommée Windows2000 SP3 définie par le triplet (Windows2000, W2K, SP3).
Pour Linux, un triplet distribution pourra par exemple être (Linux, Debian, Sarge).

Il est important de noter 3 choses :
- les logiciels sont dépendants du nom du système d’exploitation, et non de la distribution (ils s’installeront sur toutes les distributions correspondant à ce système d’esploitation ).
- Le couple (distribution, machine) est unique. C’est à dire, par exemple, qu’il ne peut pas exister une image de base spécifique pour une machine s’il existe une image de base non spécifique (qui convient donc à toute machine) pour une distribution donnée.
- Depuis l’interface de configuration logicielle, on ne peut pas choisir des distributions différentes par machine, dans le cas d’une sélection de groupe, même si les logiciels ne sont pas distribution-dépendants.

Préparation du passage en création d’images de base

La condition nécessaire

Avant tout la machine doit figurer dans la base, soit après détection soit après copie depuis une machine connue (plus d’infos sur la copie de machines...).

Si vous voulez faire l’image d’une machine déjà installée mais non connue de JeDDLaJ, la détection ne modifiera rien sur votre machine.
Mais attention, JeDDLaJ n’a pas été codé (pour l’instant) pour fonctionner sans cache (au sens rembo du terme). Ce qui veut dire que vous ne pourrez pas faire l’image d’une machine sur laquelle il ne reste pas un espace non partitionné.

Vérifiez que vous devez faire une nouvelle image de base

Si vous avez déjà fait des images de base avec JeDDLaJ, vérifiez qu’il n’y ait pas déjà une image de base qui convienne à votre machine.
Pour cela utilisez de l’explorateur de distributions (menu "Examiner distribution" de l’interface JeDDLaJ).
Si c’est le cas, vous n’avez rien à faire ici, mais vous y viendrez c’est sûr.

Si vous avez déja fait des images de base mais sans JeDDLaJ, allez donc voir cet article.
Attention : parfois des machines d’architecture identique présentent des signatures différentes (ordre de détection des composants différent - plus d’infos sur ce sujet) : vous avez la possibilité d’affecter une même image de base à des signatures différentes, et donc de procéder à une insertion d’image de base en vous reportant à l’article cité ci-avant.

Le partitionnement

Vous pouvez partitionner (et formater) votre machine depuis JeDDLaJ, pendant l’installation du système d’exploitation, ou bien, si votre machine est déjà installée, utiliser le partitionnement existant.
Il faut bien noter que le partitionnement fait au moment de la création de l’image de base, n’a aucune influence sur les déploiements : vous pourrez déployer l’image sur des partitions de tailles différentes (à concurrence de la place utilisée par la distribution), déclarer des point de montages différents dans le cas d’une installation d’un système de type Linux.
Pour définir la table des partitions depuis l’interface JeDDLaJ, reportez-vous au paragraphe « Configuration de la machine » de l’article Insérer une machine dans la base JeDDLaJ.

Attention cependant :
- Sous Windows l’installation doit se faire sur C :. (c’est à dire sur la première partition dont le système de fichiers est reconnu par Windows). Ensuite libre à vous de la déployer sur la partition primaire de votre choix (un mappage est fait par JeDDLaJ sur le disque C : dans le registre).
- Sous Linux le format ext3 ne sera pas effectif si les points de montages sont différents de ceux de l’image de base. Conseil : installez Linux sur une partition unique, puis déclarer vos points de montages par l’interface JeDDLaJ au moment du déploiement et utilisez un script de post-installation.

Vous êtes prêts ? Passez en état "Création d’images de base" depuis l’interface JeDDLaJ et allez sur la machine.

Utilisation de l’interface de création d’images de base

Rembo ne sait pas booter directement sur cdrom, mais par contre il sait booter sur le second périphérique indiqué dans le bios. Etant entendu que le premier périphérique de boot dans le bios doit être positionné à la carte réseau pour utiliser la technologie PXE, positionnez le second périphérique de boot à cdrom, si vous souhaitez faire l’installation de votre système depuis ce périphérique.

Une fois que la machine aura démarré sous Rembo vous allez voir apparaître ce menu

Le partitionnement (suite)

Le premier bouton du menu va vous permettre via cette interface de :
- Valider le partitionnement que vous avez déclaré dans JeDDLaJ, et éventuellement de lancer un formatage des partitions (utilisez respectivement les boutons "Partitionner le disque suivant ce schéma" et "Partitionner et formater le disque suivant ce schéma").
- Détecter un partitionnement existant et l’insérer dans la base JeDDLaJ. Vous utiliserez ce choix si vous souhaitez faire l’image d’un système déjà installé. Pour cela cliquez sur le bouton "Remplacer le schéma de partitionnement dans la base par celui-ci".

...Et ce pour le disque que vous aurez choisi.

Le partitionement doit être connu de la base pour restaurer ou sauvegarder une image de base.

Restaurer une image de base

Le second item du menu va vous permettre de restaurer une image de base répertoriée dans JeDDLaJ. Ici, vous pourrez restaurer des images de base non spécifiques ou de spécifité "signature matérielle", même si celle-ci ne correspond pas à celle de votre machine. A vous ensuite de la modifier pour qu’elle fonctionne pour votre machine. Lorsque vous cliquez sur l’item, vous devez choisir le système d’exploitation, éventuellement une partition où le restaurer (veillez à utiliser la partition reconnue comme C : dans le cas d’un système de type Windows), et une image de base possible pour ce système d’exploitation (i.e une image de base d’une distribution associée à ce système). Le nom de la distribution est suivi :
- du symbole * si l’image de base est adaptée à la machine (image de base non spécifique ou spécificité satisfaite par la machine)
- d’une fraction n/m où n est le nombre de composants de votre machine que l’on retrouve parmi les m composants de la machine pour laquelle a été faite l’image de base sélectionnée.

Lorsque vous avez choisi une image de base, lancez la restauration en cliquant sur "Installer l’image de base".

Notez bien que le processus de restauration est le même que lors d’un déploiement : il comprend donc toutes les procédures de changement de nom, création des points de montages, etc... (voir paragraphe « Comment installer son système d’exploitation pour tirer un maximum de profit de JeDDLaJ » de cet article) et les scripts de post-installation (voir article scripts post-installation) associés à la distribution. Cependant, 2 opérations ne sont pas exécutées : le PatchSID et la jointure au domaine. Pourquoi ? Parce qu’au moment du déploiement la procédure de PatchSID est refaite et provoque un dédoublement d’une clef de registre, qui empêche par la suite toute création de package.

Installation depuis un media autre que les images de base Rembo

Utilisez le dernier bouton du menu pour booter sur votre médium d’installation, voire le secteur de boot d’un disque dur si le système à imager est déjà installé sur la machine, ou si l’installation du système a nécessité un reboot durant son installation... Enfin, si vous êtes en train d’installer Windows, quoi !

Sauvegarder son image de base

N’oubliez pas d’insérer votre schéma de partitionnement dans la base si vous avez partitionné le disque pendant l’installation du système d’exploitation.

Utilisez le troisième item pour faire une image de base du système que vous venez d’installer. Après avoir choisi le système d’exploitation, éventuellement la partition d’installation :
- si l’image de base est déjà existante (cas d’écrasement d’une ancienne image de base), répondre "Non" à l’invite "Est-ce une nouvelle image de base ?", puis

  • la sélectionner dans la liste déroulante [1].
  • Cochez la case "Conserver l’image de base avec le suffixe" et remplissez le champ suffixe (par défaut _old) si vous souhaitez conserver sur le serveur Rembo l’image de base que vous remplacez.
  • Cliquez enfin sur le bouton "Remplacer l’image de base sur le serveur" pour finaliser l’opération.

- En revanche, si l’image de base est nouvelle, alors une autre question se pose. Fabrique-t-on une image de base associé à une nouvelle distribution ou à une distribution existante ?

  • Cliquez donc sur le radio-bouton correspondant [2]. Dans le cas d’une nouvelle distribution, dans cette interface on renseigne :
    • le nom de la distribution
    • la version de la distribution
    • éventuellement son icône
  • Enfin, dans tous les cas, renseigner :
    • le nom de l’image de base
    • le répertoire de stockage de l’image de base dont le début du chemin est imposé
    • la spécificité de l’image de base
  • Cliquez enfin sur le bouton "Insérer les données dans la base" qui va updater la base JeDDLaJ.

A la fin de l’opération, si une image de base était déjà installée sur la machine (une image générique par exemple) vous devrez répondre à la question : "Voulez-vous remplacer l’image de base installée sur le disque par celle que vous venez de créer ?". En général la réponse et "oui", car vous voudrez actualiser la base de données en indiquant que l’image de base qui se trouve maintenant sur la machine est celle que vous venez de créer.

Enfin, répondez "oui" à la question "Voulez-vous continuer a faire des images de base" si c’est le cas, et "non" si vous souhaitez quitter l’interface de création d’images de base. La machine passera alors en état "Installé".

Comment sortir de l’interface de création d’images de base à tout moment

Il peut arriver que vous souhaitiez pour diverses raisons sortir de l’état "Création d’images de base" sans finir (voire sans commencer...) la création d’une image de base. Pour cela il suffit de cliquer sur le texte [3] "Sortie de l’état création d’image de base" en bas à droite : la machine s’arrêtera alors après être passée en état "Installé".

Comment installer son système d’exploitation pour tirer un maximum de profit de JeDDLaJ

JeDDLaJ propose via une interface de modifier la configuration logicielle d’une machine. Il est donc naturel que l’image de base soit réduite à l’image d’un système d’exploitation. Sous Windows ce principe est respecté mais demande de décliner une image de base par architecture matérielle pour une distribution donnée, nous allons donc voir comment minimiser cette étape. Linux fait entorse à ce principe mais nous allons voir qu’il est possible de faire une distribution qui n’aura qu’une seule image de base.

Système de type Windows

Il est recommandé de se fixer une distribution pour un système Windows donné. Rappelons-le, il s’agit d’un triplet (système d’exploitation, nom distribution, version distribution). Pour illustrer nos propos nous prendrons commne exemple Windows XP (= à la fois système exploitation et nom distribution) SP1 (= version de la distribution).
Ensuite il vous faudra, pour chaque architecture matérielle différente de votre parc, créer une image de base pour cette distribution. Afin de faire cette opération en un minimun de temps, créez d’abord une autre distribution Windows XP (= à la fois système exploitation et nom distribution) SP1 générique (= version de la distribution) qui sera une image de base "inachevée" mais dont il existera une seule image de base non spécifique. Pour cela :

  1. procéder comme pour la création d’une image de base normale,
  2. booter sur le système Windows XP SP1 alors installé,
  3. aller dans le gestionnaire de périphériques et désinstaller tout matériel spécifique à la machine (carte vidéo, carte réseau, pont PCI,...),
  4. redémarrer,
  5. et lorsque que vous êtes à nouveau sous l’interface de création d’images de base, faite une image de la partition où est installé Windows XP SP1,
  6. s’agissant d’une nouvelle image de base, remplissez les champs nom distribution avec "Windows XP", version avec "SP1 générique", et laissez spécificité sur "aucune".

Pour vos création d’images de base de Windows XP SP1 sur chaque machine d’architecture différente (signature matérielle), procédez comme suit :

  1. restaurez l’image de base générique en utilisant le second bouton du menu,
  2. bootez sur le système avec le dernier bouton du menu (vous verrez alors apparaître "Windows XP SP1 générique" dans les choix possibles),
  3. logguez-vous et terminez l’installation en ajoutant tous les drivers demandés par le système,
  4. rebootez,
  5. et lorsque que vous êtes à nouveau sous l’interface de création d’images de base, faite une image de la partition où est installé Windows XP SP1,
  6. s’agissant d’une nouvelle image de base remplissez les champs nom distribution avec "Windows XP", version avec "SP1" cette fois , et sélectionnez "signature" dans le champs spécificité.

Quelques remarques importantes :
- Installez le système sur C :. Par la suite vous pourrez le déployer sur n’importe quelle partition.
- Le choix Domain ou Workgroup doit se faire au moment de la création de l’image de base, on ne peut plus changer ce choix lors du déploiement (on peut par contre changer les noms de domaine et de workgroup).
- N’utilisez pas une version "tagguée" de Windows. Si, par exemple, vous faites une image générique à partir d’une installation faite avec un cdrom fourni par Dell, l’image risque de ne pas fonctionner sur des machines d’autres marques.
- Pensez à positionner les droits sur les fichiers et clefs de registres, car il n’est pas possible de faire par la suite de façon incrémentale.

Par la suite partez toujours de cette distribution même si le service pack est obsolète, les SP ultérieurs pouvant être packagés comme des logiciels : cela vous permettra de déployer plus facilement des logiciels sous Windows XP (pour notre exemple) via le menu "Modifier la configration logicielle".

Au moment du déploiement JeDDLaJ effectue les changement de nom netbios et DNS des machines, SID, nom de domaine et workgroup, puis affecte la lettre C : au système.

Système de type Linux

Pour des systèmes de type Linux, il est plus dur de séparer la partie "système d’exploitation" de la partie "logiciels". De plus les diverses distributions de Linux ont leur propre système de packaging (deb, rpm, ...) qui ne sont pas compatibles avec la notion incrémentale de Rembo [4]. Aussi sous Linux, nous conseillerons plutôt de faire une image de base qui comprenne le système et les logiciels gérés par le système de packaging : une image monolithique. Par contre les logiciels propriétaires, ou non distribués sous forme binaire gérés par la distribution, pourront être packagés. Ces logiciels seront généralement installés dans /usr/local.

Contrairement au système Windows, vous pourrez faire une seule image de base pour une distribution donné. Pour cela, au moins 2 méthodes :

- utiliser un noyau complètement modulaire dans votre image. Cette méthode utilisée depuis longtemps par RedHat, et Debian, consiste à se servir d’un noyau pour lequel tous les drivers ont été compilés sous forme de modules, et utiliser un logiciel qui insére les modules nécessaires ( kudzu, discover,... ). Si vous ne voulez pas que cette étape de détection ait lieu à chaque boot de la machine, utilisez pour terminer le déploiement de votre image des scripts de post-installation s’appuyant sur la table de la base de donnée JeDDLaJ mettant en correspondance matériel et module Linux associé (le matériel installé sur une machine est lui aussi connu de la base de données : reportez-vous à cet article).
- packager des noyaux Linux dont la spécificité est la signature matérielle de la machine. Un peu comme pour une image de base pour Windows, vous pourrez faire un package du noyau par architecture matérielle (ici on parle de package, et non plus d’image de base, car l’image du noyau viendra s’ajouter à l’image du système : le noyau sera alors considéré comme un logiciel). Reportez-vous à cet article pour faire un package du noyau.

Vous pouvez également mixer les 2 approches. Par exemple, nous utilisons une image avec un noyau modulaire pour les postes de bureau, et nous ajoutons, comme un logiciel, un noyau spécificique à cette image pour les serveurs.

UNE RÈGLE IMPORTANTE A RESPECTER : vous devez copier le noyau à la racine du système sous le nom vmlinuz, et le ramdisk initial, s’il y en a un, à la racine sous le nom initrd.img. Ceci est nécessaire pour faire booter un système Linux depuis JeDDLaJ. Les liens symboliques, ici, ne fonctionnent pas (limitation Rembo).

Le partitionnement fait au moment de la création de l’image est indépendant de celui que vous utiliserez lors du déploiement : JeDDLaJ déploiera le système sur les diverses partitions systèmes que vous aurez déclarées depuis l’interface, et créera les points de montage dans l’arborescence. Par contre il ne créera pas la table de partition, et vous devrez pour cela, et pour d’autres finitions, utiliser un script de post-installation. Un exemple de script de finalisation est donné ici. Notez également, que le système de fichier ext3 est partiellement géré par Rembo : il n’est valide que sur les partitions qui figurent dans l’image de base. Ici encore un script de post-installation règle ce problème.

C’est presque fini...

A la fin du processus de création de l’image de base, celle-ci est installée sur la machine (évidemment) mais n’est pas dans le cache disque de la machine. Aussi, si vous lancez une installation de logiciels par l’interface JeDDLaJ ( menu "Modification de la configuration logicielle" ), il est nécessaire de mettre la machine en état de réinstallation avant de la rebooter, afin que le cache contienne tous les fichiers nécessaires. Si vous omettez cette étape, il y a de fortes chances que la machine se plante au moment de l’installation, mais il vous suffira alors de mettre la machine en état de réinstallation depuis l’interface de dépannage.


[1Pour voir apparaître les valeurs correctes (i.e. celles associées à l’image de base que l’on vient de sélectionner : nom de la distribution, version, etc.) dans les champs du formulaire, il est malheureusement nécessaire de cliquer sur le bouton "Détails" (les fonctions javascript du Rembo-C sont plus pauvres que le vrai Javascript...). Attention : les valeurs qui s’affichent sont là pour information : leur modification ne sera pas prise en compte...

[2Attention : seules les infos correspondant au choix cliqué (existant ou nouveau) seront prises en compte i.e. si on choisit une distribution existante dans la liste SANS avoir cliqué sur le bouton "existant", ce sont les infos associées au bouton "Nouveau" qui seront soumises... Le Javascript Rembo ne permet pas de sélectionner le bouton automatiquement dès qu’on change les infos qui s’y rapportent

[3attention : sur le texte et non sur le bouton, qui lui aussi fait booter, mais laisse en état "Création d’images de base".

[4En effet, les machines linux stockent dans un fichier base de données les packages linux (appelons-les PL, qu’ils soient de type deb, rpm ou autres) installés. Si on fait un package JeDDLaJ (PJ) sur une machine A qui contient un ensemble M de PL installés, le fichier base de données va faire partie du package en tant que fichier modifié. Lorsque l’on va déployer ce PJ sur une machine B qui a un ensemble M’ de packages installés, le fichier base de données de la machine A va être installé également... et le système de packages de la machine B va être corrompu : elle indiquera que les PL de A sont installés et n’aura plus aucune trace des PL réellement installés... On est ici dans un des problèmes majeurs liés au mécanisme des images incrémentales Rembo : la gestion des fichiers communs à plusieurs incrémentaux... C’est celui qui est est installé en dernier qui gagne...


Brèves

12 février 2009 - JeDDLaJ passe sur SourceSup à partir de la version 1.6IBE+

La communauté JeDDLaJ manquait jusqu’alors cruellement de certains services et moyens de (...)

12 février 2009 - 11/2/2009 : La version 1.6 IBE+ est disponible !!!

Ça y est. Après tant de mois (18 à peu près...) de gestation, d’hésitations, de :wq et autres (...)

12 février 2009 - JeDDLaJ gagne le concours DEVA => nouvelles fonctionnalités pour vous !!!

JOIE !!! BONHEUR !!! FIERTÉ !!!
JeDDLaJ remporte le concours DEVA (DEVeloppements (...)

9 juillet 2007 - Précision importante sur la compatibilité MySQL 5 de JeDDLaJ 1.4IBE

Dans le cas d’un serveur Rembo sous Windows, 2 moyens pour pouvoir utiliser MySQL 5 :
soit (le (...)

9 juillet 2007 - Déjà le SP1 pour JeDDLaJ 1.4IBE : désormais TPMfOSd-ready !!!

Description
Ce service pack n’apporte principalement qu’une amélioration... mais de taille... (...)