====== Création et déploiement d'images disques avec le logiciel FOG. ====== Environnement utilisé : Plusieurs PC Lenovo ThinkCentre M79 (Windows 7 Pro) sur un réseau familial (Livebox Orange). Un des PC est utilisé comme serveur FOG, son adresse IP (192.168.1.101) est réservée dans la config DHCP de la Livebox. ===== Préparation du serveur de déploiement ===== ==== Installation de Debian 9 ==== Source : https://wiki.fogproject.org/wiki/index.php?title=Debian_8 === Lancement de l'installation === Après avoir créé une clé USB bootable contenant Debian 9, booter sur la clé (F12 au démarrage) puis sélectionner **Graphical install**. === Paramétrage de la langue === Sélectionner le langage **French - Français**, le pays **France** puis le clavier **Français**. === Paramétrage réseau === Saisir le nom du serveur (**fog-server**) et ne rien mettre comme nom de domaine. === Paramétrage utilisateurs === Saisir un mot de passe pour le compte **root**. Saisir le nom, l'identifiant (ne pas utiliser **fog**) et le mot de passe de l'utilisateur. === Partionnement === Sélectionner le partitionnement manuel, puis le disque SCSI (**sda**)du serveur. Accepter la création d'une nouvelle table de partition. == Partionnement physique == Sélectionner l'espace libre **pri/log** puis créer une nouvelle partition. Attribuer la taille **1 GB** à la partition. Définir le type de partition **Primaire** et placer la partition au début. Sélectionner le point de montage puis choisir **/boot - fichiers statiques du programme de démarrage**. Sélectionner l'**Indicateur d'amorçage** afin qu'il soit présent. Choisir la fin du paramétrage de cette partition. == Partitionnement logique== Sélectionner l'espace libre **pri/log** puis créer une nouvelle partition. Attribuer la taille restante à la partition. Définir le type de partition **Logique**. Choisir de ne pas utiliser la partition. Choisir la fin du paramétrage de cette partition. Choisir de configurer le gestionnaire de volumes logiques (LVM). Accepter de configurer LVM. Choisir de créer un groupe de volumes et saisir **vg0** comme nom de groupe de volumes. Sélectionner la partition la plus grande (**sda5**) comme périphérique pour le groupe de volumes. Accepter de configurer LVM. Choisir le créer un volume logique et sélectionner le groupe vg0. Saisir **base** comme nom de volume logique, lui attribuer la taille 20 GB. Faire de même pour les volumes logiques **swap** (**4 GB**), **opt** (**20 GB**) et **images** (reste du disque). Choisir de terminer une fois les 4 volumes créés. Pour chacun de ces volumes, sélectionner le volume logique n°1 et choisir **Utiliser comme**. Sélectionner le système de fichiers journalisé ext4 sauf pour le volume swap (sélectionner l'espace d'échange ("swap"). Sélectionner le point de montage pour chacun des 3 volumes ext4 (respectivement **/ - système de fichiers racine**, Autre choix **/images** et **/opt - ensembles logiciels additionnels**). Choisir la fin du paramétrage pour chaque partition. Choisir de terminer le partitionnement et appliquer les changements. Accepter d'appliquer les changements sur les disques. == Choix des logiciels == Sélectionner le pays France pour miroir de l'archive Debian. Sélectionner le miroir de l'archive Debian ftp.fr.debian.org et ne saisir aucun mandataire HTTP. Ne pas accepter de participer à l'étude statistique sur l'utilisation des paquets. Sélectionner uniquement le logiciel serveur SSH à installer. Accepter d'installer le programme de démarrage GRUB sur le secteur d'amorçage. Choisir le périphérique du disque (**/dev/sda**) où installer le programme de démarrage. Valider l'installation terminée. == Autorisation de l'accès SSH à distance == Se connecter avec le login utilisateur puis se connecter avec le compte root. <code bash> su root </code> Installer vim. <code bash> apt-get install vim </code> Editer le fichier **/etc/ssh/sshd_config**. <code bash> vim /etc/ssh/sshd_config </code> Corriger la ligne **#PermitRootLogin** sous **#Authentification**. <code bash> PermitRootLogin yes </code> Redémarrer le démon SSH. <code bash> systemctl restart sshd </code> Vérifier l'adresse IP du serveur. <code bash> ip addr </code> Se déconnecter du compte root puis du compte utilisateur. <code bash> exit exit </code> ==== Installation de FOG ==== Sources : https://wiki.fogproject.org/wiki/index.php?title=ProxyDHCP_with_dnsmasq https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server https://forums.fogproject.org/topic/8725/compiling-dnsmasq-2-76-if-you-need-uefi-support/5 === Accès SSH à distance === Se connecter en SSH au serveur avec le compte root. <code bash> ssh root@192.168.1.101 </code> Accepter le croisement de certificat. === Vérification du partitionnement === Vérifier le partitionnement avec les commandes suivantes. <code bash> lsblk pvdisplay vgdisplay lvdisplay </code> === Installation de git === Installer git. <code bash> apt-get install git </code> === Téléchargement de FOG === Rechercher le projet **FOGProject/fogproject** sur le site http://www.github.com. Cliquer sur le bouton **Clone or download** puis sur le bouton pour copier l’url de clonage. Cloner le dépôt git de FOG <code bash> git clone http://github.com/FOGProject/fogproject.git. </code> === Mise-à-jour de Debian === Rechercher et installer les mises-à-jour <code bash> apt-get update apt-get upgrade </code> === Installation de dnsmasq === Installer dnsmasq. <code bash> apt-get install dnsmasq </code> === Installation de FOG === Ouvrir le dossier **fogproject/bin**. <code bash> cd fogproject/bin </code> Lancer l’installation de FOG <code bash> ./installfog.sh </code> Choisir la version de Linux **2) Debian Based Linux (Debian, Ubuntu, Kubuntu, Edubuntu)** Sélectionner le mode d’installation standard (**n**). Saisir l’adresse IP du serveur (**192.168.1.101**). Ne pas changer l’interface réseau par défaut ens33 (**n**). Ne pas paramétrer l’adresse du serveur DHCP (**n**). Ne pas demander au DHCP de gérer le DNS (**n**). Ne pas utiliser le serveur comme DHCP (**n**). Installer les langues additionnelles (**y**). Valider l’installation (**y**). Valider que le mot de passe MySQL est vide (**y**). Afficher la page http://192.168.1.101/fog/management quand le script d’installation le demande. Cliquer sur le bouton **Install/Upgrade Now**. Continuer l’installation (**Entrée**). Conserver l’identifiant et mot de passe par défaut du l’application web (**fog**/**password**). Créer le fichier **/etc/dnsmasq.d/ltsp.conf**. <code bash> vim /etc/dnsmasq.d/ltsp.conf </code> Y copier le texte suivant. <code bash> # Don't function as a DNS server: port=0 # Log lots of extra information about DHCP transactions. log-dhcp # Set the root directory for files available via FTP. tftp-root=/tftpboot # The boot filename, Server name, Server Ip Address dhcp-boot=undionly.kpxe,,192.168.1.101 # Disable re-use of the DHCP servername and filename fields as extra # option space. That's to avoid confusing some old or broken DHCP clients. dhcp-no-override # inspect the vendor class string and match the text to set the tag dhcp-vendorclass=BIOS,PXEClient:Arch:00000 dhcp-vendorclass=UEFI32,PXEClient:Arch:00006 dhcp-vendorclass=UEFI,PXEClient:Arch:00007 dhcp-vendorclass=UEFI64,PXEClient:Arch:00009 # Set the boot file name based on the matching tag from the vendor class (above) dhcp-boot=net:UEFI32,i386-efi/ipxe.efi,,192.168.1.101 dhcp-boot=net:UEFI,ipxe.efi,,192.168.1.101 dhcp-boot=net:UEFI64,ipxe.efi,,192.168.1.101 # PXE menu. The first part is the text displayed to the user. The second is the timeout, in seconds. pxe-prompt="Booting FOG Client", 1 # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86, # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI # This option is first and will be the default if there is no input from the user. pxe-service=X86PC, "Boot to FOG", undionly.kpxe pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe.efi pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", ipxe.efi dhcp-range=192.168.1.101,proxy </code> Redémarrer **dnsmasq**. <code bash> service dnsmasq restart </code> Créer les liens symbolique vers les fichiers pxe. <code bash> ln -s /tftpboot/undionly.kpxe /tftpboot/undionly.0 ln -s /tftpboot/ipxe.efi /tftpboot/ipxe.0 </code> ===== Création d’une image disque ===== ==== Paramétrage de l'image ==== Ouvrir la page web de FOG (http://192.168.1.101) et se connecter (identifiant **fog**, mot de passe **password**). Dans l'onglet **Image Management**, créer une nouvelle image (**Create New Image**). Choisir un nom (**Image name** Windows_7_Pro) et une description (**Image Description** Windows 7 Pro) pour l'image. Sélectionner le système d'exploitation du PC (**Operating System** Windows 7 - (5)). Sélectionner la partition à sauvegarder (**Partition** Partition 2 only - (4)). Ajouter l'image (**Add**). Noter l'ID de l'image créé (**1**). ==== Enregistrement du PC client ==== Afficher le menu de démarrage du PC client (**F12** lors du démarrage). Sélectionner le démarrage en réseau (**Network:B02 D00 Yukon PXE**). Lorsque le menu FOG s'affiche, sélectionner un enregistrement complet (**Perform Full Host Registration and Inventory**). Choisir le nom du PC (**pc-01**). Saisir l'identifiant de l'image paramétrée précédemment (**1**) (Saisir **?**) pour vérifier les ID des images présentes sur le serveur). Ne pas associer l'hôte aux groupes (**n**). Ne pas associer l'hôte aux snapins (**n**). Ne pas associer une clé de produit à cet hôte (**n**). Ne pas joindre cet hôte à un domaine (**n**). Ne pas saisir le nom de l'utilisateur principal de l'ordinateur. Ne rien saisir en tag #1 et tag#2 de l'ordinateur. Ne pas accepter de déployer l'image sur l'ordinateur (**n**). Après redémarrage du PC, vérifier dans l'interface web de FOG que l'ordinateur apparaît bien dans l'onglet **Host Managment** (Cliquer sur **List All Hosts**). ==== Création de l'image disque ==== Dans l'onglet **Host Management** ouvert précédemment, cliquer sur le PC (**pc-01**) puis sur le menu **Basic Tasks**. Cliquer sur le bouton **Capture** puis sur le bouton **Create Capture task for pc-01**. Redémarrer le PC en réseau (**F12** puis **Network:B02 D00 Yukon PXE**). ** Remarque : **Si le PC était éteint et le mode WakeOnLAN activé dans le Bios, celui-ci démarre automatiquement en réseau. ===== Déploiement d’une image disque ===== ==== Enregistrement du PC client ==== Enregistrer le PC client comme précédemment, s'il s'agit d'un nouveau PC (exemple : **pc-02**). Après redémarrage du PC, vérifier dans l'interface web de FOG que l'ordinateur apparaît bien dans l'onglet **Host Managment** (Cliquer sur **List All Hosts**). ==== Déploiement de l'image disque ==== Dans l'onglet **Host Management** de l'interface FOG, cliquer sur le PC (**pc-02**) puis sur le menu **Basic Tasks**. Cliquer sur le bouton **Deploy** puis sur le bouton **Create Deploy task for pc-01**. Redémarrer le PC en réseau (**F12** puis **Network:B02 D00 Yukon PXE**). **Remarque : **Si le PC était éteint et le mode WakeOnLAN activé dans le Bios, celui-ci démarre automatiquement en réseau. ===== Exécution d'un script à distance ===== ==== Création d'un snapin ==== Dans l'onglet **Snapin Management** de l'interface FOG, cliquer sur **Create New Snapin**. Choisir un nom (**Snapin Name**)(exemple : **Mon Script**) et un modèle de snapin (**Snapin Template**) (exemple : **Batch Script**). Sélectionner le script à uploader sur le serveur (**Snapin File Max Size:3000M**) (exemple : **MyScript.bat**), puis cliquer sur **Add**. ==== Installation du logiciel client FOG ==== Sur le PC client, afficher la page http://192.168.1.101/fog/client puis cliquer sur **Smart Installer (Recommended)** pour télécharger le logiciel client FOG. Exécuter le fichier téléchargé, accepter la licence, saisir l'adresse IP du serveur (**Server Address**) 192.168.1.101, puis valider l'installation. ==== Déployement du snapin ==== Dans l'onglet **Host Management** de l'interface FOG, cliquer sur **List All Hosts**, puis sur le PC sur lequel déployer le snapin. Cliquer sur **Basic Tasks**, puis sur **Advanced**, puis sur **Single Snapin**. Sélectionner le snapin à installer (**Mon Script**) puis cliquer sur **Create Single Snapin Task for pc-02**. Le snapin s'installe sur le PC puis un message s'affiche sur le PC client une fois le script exécuté.