Haut de page

Configuration de MacOS X Server
NetBoot et NetRestore


Cette page présente des éléments de configurations de MacOS X Server 10.3 à base d'exemples concrets. Elle fait partie d'un ensemble de pages de configuration de MacOS X Server. Les photos d'écran de la partie configuration de MacOS X server sont en anglais car il est plus facile de trouver de la documentation en anglais sur ce sujet.

Table des matières


Généralités sur NetBoot

Le service NetBoot permet de démarrer un Macintosh par le réseau. Pour cela, il faut maintenir la touche N au démarrage de l'ordinateur. La machine va chercher un serveur NetBoot sur le sous réseau et va démarrer en utilisant une image de disque sur ce serveur.

Ce service assure par exemple que tous les utilisateurs d'une salle d'enseignement utilisent exactement le même système. Le poste client peut aussi ne pas avoir de disque dur (Je n'ai pas testé mais il faut au moins un serveur en 10.3.3). Cette solution est très gourmande en ressource réseau car le système et les applications se trouvent sur le serveur. L'image de disque est en lecture seule et est partagée entre les différents utilisateurs. Chaque utilisateur a une image (Shadow system) en lecture écriture pour les fichiers temporaires (/tmp par exemple). Cette image et donc les fichiers temporaires seront perdus au redémarrage. Dans le cas d'un poste avec disque, le fichier de swap peut être situé sur le disque local.

Un deuxième utilisation du NetBoot est la possibilité d'automatiser les installations des postes de travail. Pour cela, au lieu de démarrer sur un système complet, on démarre sur un système minimal qui n'a pas de Finder mais simplement l'outil de formattage de disque, le Terminal et une application qui permet d'installer un système sur le disque du poste client. On parle de NetInstall (Application d'Apple) ou de NetRestore (Application de bbb). Nous allons décrire cette deuxième application.

Généralités sur NetRestore

NetRestore est un utilitaire configurable qui va installer un système sur le disque local du poste de travail. Cet utilitaire offre de nombreuses possibilités comme par exemple une automatisation complète du processus :

Toutes ces fonctionnalités sont facultatives et paramètrables. Il est par exemple possible que l'utilitaire aille chercher l'image à installer sur un serveur de fichier distant via afp ou http. (il semble qu'il y ait une limite à 2 Go en http, les images NetBoot > 2Go sont possibles à partir de MacOS X Server 10.2.4). Il est possible aussi le laisser l'installateur choisir entre plusieurs images si on ne désire pas tout automatiser.


NetBoot en détail

Le service NetBoot permet de démarrer un Macintosh par le réseau. Le NetBoot intervient au démarrage du système avant même le boot sur disque. Cela se passe dans le Firmware qui est inclus dans chaque machine et qui vérifie par exemple les composants matériels.

À l'écriture de cette page, il existe deux versions de NetBoot : 1.0 et 2.0.

La version 1.0 est utilisée par les premières machines compatibles NetBoot (iMac de première génération (avec chargeur de CD manuel), premiers iBook, PowerMac G4 PCI, PowerMac G3 blanc/bleu, PowerBook G3 Bronze). Il est possible d'utiliser MacOS 8.6 en NetBoot. La première version de NetBoot était livrée avec Mac OS X Server 1.0-2 (ou Mac OS X Server 1.2), avant MacOS X. Cette version utilise le protocole bootp. Le client envoit un broadcast, le serveur reconnaît le client par son adresse MAC (Media Access Control). En retour le serveur envoit la configuration IP du client ainsi que le nom et la localisation du système pour effectuer le 'boot'. Si le client décide de démarrer sur ce système, il le télécharge par le protocole TFTP (trivial file transfer protocol) qui fonctionne sur UDP (ports 67, 68 et 69). Le client se connecte en afp à l'image shadow avec les paramètres envoyés par bootp. Encore plus de détails dans l'article 60080 chez Apple.
MacOS X Server 10.3 n'offre pas d'inferface utilisateur conviviale pour NetBoot 1.0 (voir l'article 107902 chez Apple pour le configurer). Il ne peut y avaoir qu'un seul serveur NetBoot 1 sur un sous réseau. Par contre un serveur peut offrir les services NetBoot 1 et 2 sur la même interface.

La version 2.0 est celle des machines à partir des iMac slot loading, PowerMac G4 AGP et de manière générale avec un Firmware 4.1.7 ajoute le DHCP durant la phase de NetBoot. Elle est disponible depuis MacOS X Server 10.0. Avec MacOS X server 10.2, il est possible de faire démarrer des machines en MacOS 9. Avec MacOS X Server 10.2 et 10.3, il est possible de faire démarrer les machine MacOS X. Cette version utilise un protocole propriétaire d'Apple BSDP (Boot Server Discovery Protocol). MacOS X Server 10.3 offre une interface intégrée pour la configuration de NetBoot 2.0.

Pour faire démarrer une machine en NetBoot, appuyer sur la touche N au démarrage. Dans ce cas, la machine démarrera sur le volume NetBoot par défaut. Il faut utiliser Démarrage des Préférences Système. Il est possible de faire démarrer une station en NetBoot à distance grâce à Apple Remote Desktop 1.2.4 ou ultérieure (MacOS X 10.2 ou ultérieure).
Le fichier /var/db/bsdpd_clients contient les images par défaut de boot des clients. Si on veut le supprimer ce fichier, il faut arrêter le service netboot voir même redémarrer le serveur !

Le netBoot ne fonctionne pas entre sous réseaux. Pour cela voir du coté des passerelle avec des option pour faire passer le BootP (Helper ID) ou NetBoot Across Subnets de Mike Bombich qui est une application offrant une interface graphique pour configurer l'Open Firmware.

Configuration de MacOS X Server pour faire du NetBoot (2.0)

Lors de l’installation du serveur, il faut utiliser l’Interface Ethernet Intégré : adresse fixe, utilisation du répertoire : Serveur Autonome (dans notre cas), les services AFP et NFS doivent être actifs et DHCP si il n’y a pas d’autre serveur DHCP sur le sous-réseau.

 

Dans l'application Server Admin, configurer NetBoot en indiquant qu'il faut utiliser l'interface ethernet interne et que les images NetBoot seront sur le disque MacOSX (ici c'est le disque de démarrage du serveur mais cela marche très bien sur un autre disque). Cliquer sur Start Service, cela va créer les répertoires dans /Library/NetBoot/. Les images NetBoot (.nbi NetBoot Image) sont ici stockées sur le serveur dans /Library/NetBoot/NetBootSPx/image.nbi.

Par la suite, il est possible de mettre à jour une image NetBoot (par exemple lors d'une mise à jour de système). Voir article 107352 chez Apple.

Important : Pour créer une image NetBoot, il faut impérativement utiliser un volume HFS Plus (et pas HFS simplement).


NetRestore en détail

NetRestore est un utilitaire configurable qui va installer un système sur le disque local du poste de travail en s’appuyant sur ASR (Apple Software Restore).

Dans notre cas, nous allons

Fabrication du système NetInstall-Restore

Le système (NetInstall-Restore) est fabriqué à partir d’un poste de travail récent (contenant un système au moins compatible avec les stations à configurer). On utilise l’application NetRestore Helper (NRH) qui va fabriquer une image disque contenant une copie minimale du système du poste de travail.

Récupérer le fichier NetRestore 1.5.1.dmg du site de Mike Bombich. (07/2007 version 3.3.6 pour installation intel).

Comme NRH va copier le système que l’on utilise et que ce système va être lancé dans l’environnement des stations à configurer, il faut ne pas oublier de passer en DHCP, modifier les Préférences Système : Économie d’énergie et décocher Suspendre l’activité du disque dur dès que possible.
Pour un installation intel, lancer NRH sur une machine intel.

 

  • Lancer NetRestore Helper, choisir l’onglet Create NetInstall Set, donner un nom à l’image, un numéro (>=101), le protocole utilisé pour effectuer le NetBoot (ici NFS mais on devrait pouvoir utiliser http car l’image résultante est d’à peu près 600Mo donc < 2Go, non testé).
  • Dans NetRestore Helper 3.3.6, il y a un bouton Advanced settings... qui permet d'activer Apple Remote Desktop (ARD) dans la phase d'installation.
    Cette option est activée par défaut à condition d'avoir installé ARD >= 3.0 sur la machine. Pour cela
    • ouvrir Partage des Préférences Systèmes, cocher Apple Remote Desktop puis tout autoriser (option-clic) sur le compte administrateur.
    • Se connecter à la machine avec Remote Desktop 3.1 depuis un autre poste, sélectionner la machine et choisir Mettre à niveau le logiciel client... du menu Gestion.
    • Dans la fenêtre d'Advanced Settings, il est possible de définir un login et mot de passe pour ARD et ssh.
  • Cliquer ensuite sur le bouton Save Net-Install-Restore set. (cliquer sur le cadenas Click the lock to allow changes si c'est grisé).
    Sauvegarder sur la même machine.
NetRestore Helper crée le répertoire eMacset.nbi, une NetBoot Image contenant le disque de netBoot NetInstall-Restore.dmg.

NetInstall-Restore.dmg contient une copie de NetRestore dans les utilitaires, NRH a copié l’utilitaire NetRestore ainsi que le Terminal et l'Utilitaire de disque pour formater le disque local.

NRH va ensuite lancer l’utilitaire NetRestore (dans l’image qu’elle vient de créer) afin que configurer ses paramètres. En particulier les informations sur la localisation du Master à installer.

 

Dans notre cas, nous fabriquons une configuration nommée eMac qui va se connecter au serveur de fichiers afp (ici l’adresse est numérique car j’ai besoin d’installer les eMac avant que le serveur DNS soit en fonction). On se connecte au serveur de fichiers avec le login install et un mot de passe. On va installer le poste de travail avec une copie du système emac_asr.dmg. Voir plus loin comment configurer le MacOS X serveur pour créer le compte install.

Toutes les informations de configuration se trouvent en XML dans les fichiers configurations.plist, et paprameters.plist dans l’image netBoot NetInstall-Restore.dmg. Cette image n’étant pas en lecture seule, il est possible de les modifier par la suite.

Dans notre exemple, nous voulons une automatisation complète de l’installation, ouvrir les Préférences de NetRestore :

Sélectionner la configuration « emac »

Cocher :

  • Restart when finished
  • Set target as boot disk
  • Enable full automation

Reste à tester : Post-restore Actions : Cocher : Set the computer’s open firmware Password to .., Éditer les « machines spécifics data »

Mettre l'image NetBoot sur le MacOS X Server

Placer le dossier eMacSet.nbi dans le dossier NetBootSP0 sur le Mac OS X Server (600 Mo pour un démarrage 10.4.5 PowerPC, 813Mo pour un 10.4.10 intel). Pour cela se connecter au serveur en admin et monter le volume NetBootSP0. Déplacer le dossier eMacSet.nbi sur le volume NetBootSP0.

Indiquer au serveur NetBoot qu'il doit utiliser l'image NetBoot

Dans l'application Server Admin, configurer NetBoot en indiquant qu'il faut utiliser l'image eMacSet.
Il est possible de mettre plusieurs images, par exemple une PowerPC et une Intel.
Pour l'instant, en essayant une image universelle fabriquée à partir de MacOS X Server Universel, cela plante les PowerPC au moment du montage AFP.

Fabriquer une image Master avec Carbon Copy Cloner

Mettre la machine Master en disque FireWire externe d'une poste de l'administrateur (pour cela démarrer la machine master en appuyant sur la touche T (Target)). Sur le poste de l'administrateur, utiliser Carbon Copy Cloner et configurer les préférences pour Créer une image disque sur la cible, et Prépare pour le programme de retauration d'Apple (Options ASR).

/usr/bin/hdiutil convert /Volumes/HD40/MacOSX.sparseimage -format UDZO -o /Volumes/HD40/MacOSX_asr.dmg -segmentSize 102400m

Préparation du moteur de création d’image... Lecture de Apple_HFS (0)... ............................................................................... (CRC32 $466D28A5 : Apple_HFS (0)) Fin du moteur de création d’image... Ajout de ressources... ............................................................................... Temps écoulé : 19m 31.844s (2 tâches, poids 100) Taille du fichier : 5830189288 octets, Somme de contrôle : CRC32 $24D57943 Secteurs traités : 21098448, 20865505 comprimés Vitesse : 8.7Moctets/s Compression : 46.0% created: MacOSX_asr.dmg

Configurer MacOS X Server pour qu'il héberge l'image Master

Créer un utilisateur 'install' (Net Install User) et un groupe install_group

 
Nous créons un utilisateur "Net Install User" (nom interne install). Cet utsilisateur n'a pas de home ni de shell car il ne se connecteur que par afp pour lire les Masters. Nous créons un groupe install_group pour cet utilisateur.

Créer un point de montage ImageNetRestore

 
Nous créons un répertoire ImagesNetRestore à partir du Finder directement à la racine du disque du serveur. Ensuite, avec Workgroup Manager, nous indiquons que ce répertoire est un point de partage, qu'il appartient à admin et que les membres du groupe instal_group ont un droit de lecture. Le Point de partage n'a pas à être accessible depuis un poste Windows.
Le Point de partage n'a pas à être accessible en FTP. Le Point de partage doit être accessible depuis un poste Macintosh en afp.

Ensuite, il suffit de se connecter en afp (admin) sur le serveur pour mettre un nouveau Master dans le répertoire ImagesNetRestore. En reprenant le même nom, le prochain NetBoot des machines installera la nouvelle version du Master.


Installer une ou des machines clientes !

Opération sur place

Si vous êtes sur place, démarrer en maintenant la touche 'N' appuyée.... ça marche. La machine démarre en NetBoot, son disque se formatte, le système Master se copie dessus, il se vérifie et la machine redémarre.

Bon, ça n'a pas marché du premier coup car, lors du l'installation, une brusque coupure de courant (la 15e machine a fait sauté les plombs) a laissé deux disques dans un drôle d'état. Heureusement, NetRestore possède un menu Utilities permettant de lancer l'utilitaire de formattage de disque. Après formattage, en quittant, on se retrouve sous le terminal. Il suffit de taper reboot.

Utiliser Remote Desktop 2.1 pour faire la même chose à distance.

Pour cela choisir Configurer le disque de démarrage... du menu Gestion. (vous pouvez enseuite l'enregistrer comme Tâche enregistrée pour une prochaine fois.
Indiquer l'adresse IP du serveur et le nom du fichier de NetBoot ici (eMacSet).

Au passage, si vous avez activé le FireWall de MacOS X Server et que vous aviez autorisé Apple Remote Desktop (port 3283), cela ne suffit pas pour la version 2.1 (c'était juste valable jusqu'à la version 1.2 qui utilisait un protocole propriétaire). À partir de la 2.0, en plus du protocole propriétaire, Apple utilise VNC. Il faut donc ouvrir le port 5900 en passant par l'onglet Advanced du FireWall de Server Admin.


Configuration du FireWall pour ARD 2.

Lors du premier essai, sur 15 machines, seules 10 ont réussi. Je suis allé sur place le lendemain pour constater que les 5 autres indiquaient une erreur AppleShare. C'est en discutant avec un enseignant qu'il m'a trouvé l'origine du problème : mon MacOS X Serveur n'avait qu'une licence 10 utilisateurs. J'avais pourtant moins de comptes mais 10 utilisateurs veut dire : pas plus de 10 utilisateurs simultanés qui se connectent en afp ! Par contre, 15 NetBoot simultanés ne posent pas de problèmes.

Pour contourner le problème, deux solutions :

Configurer MacOS X server que qu'il attribue des adresses fixes par DHCP

Le moins que l'on puisse dire c'est que MacOS X Server (au moins jusqu'en 10.3) n'est pas au point pour la configuration DHCP d'adresses fixe. Il suffit de lire la note technique IP fixe par DHCP pour s'en rendre compte.
En gros, il faut utiliser Server Admin pour configurer la partie routeur et serveurs de noms et il faut utiliser NetInfo pour les adresses MAC et IP. Du coup, on ne voit plus les machines clientes dans Server Admin mais on les retrouve dans les logs...

Bref, tant qu'à passer par l'interface horrible de NetInfo, autant utiliser le Terminal en root (sudo) :

nicl / -create /machines/ari-31-203-01 name ari-31-203-01 nicl / -create /machines/ari-31-203-01 en_address 00:0a:95:bf:7a:52 nicl / -create /machines/ari-31-203-01 ip_address 132.227.114.1

Vous pouvez contrôler, lire et supprimer par

nicl / -list /machines/ nicl / -read /machines/ari-31-203-01 nicl / -delete /machines/ari-31-203-01

Pour les adresses MAC, il n'est pas nécessaire qu'elles soient en majuscules comme dans l'exemple chez Apple. De plus les octets hexadécimaux peuvent n'ont pas forcément besoin du "0". Par exemple 0:A:95:BF:7A:52 marche très bien.

MàJ : L'interface a été revue avec MacOS X Server v10.4.

Reste à faire : OpenFirmware password. (ça marche manuellement, à tester l'automatisation via NetRestore)

Voir aussi

2004- Cette page a été réalisée avec l'aide de Sylvie Rougier
2007 - mise à jour pour installation intel.



FutureShare

 | 

Glossaire

 |