Exemple de déploiement automatique Windows
Présentation
L’ installation automatique de postes windows se fera avec l’outil Open Source de déploiement automatique de systèmes d’exploitation Windows nommé “unattended”. L’utilisation de « RIS » diffère de celui-ci dans le fait qu’on aura une grande flexibilité dans les configurations. NB: Au moment où j’écris ce « Howto », on en est à la version 4.8. de l’outil « Unattended »
La particularité de ce modèle est aussi qu’on ne travaillle pas dans un environnement de compilation. Comme stipulé, ce n’est pas un modèle d’installation du type « ./configure ; make et make install ». Les fichiers téléchargés devront juste être décompressés dans un répertoire choisi.
Issa kandji - Promoteur Eric Derasse
1.Les Prérequis
#unattended-4.8.zip
#unattended-4.8-dosboot.zip
#Alias DNS ( Pour résoudre le nom Netbios « ntinstall » que devra porter notre machine, c’est ce nom qui est référencé dans tout les scripts utilisé pour l’installation automatique)
#Samba (Le répertoire choisi où seront décompressés les outils Unattended doit être accessible par les clients en partage samba )
Dans notre cas , on choisira le répertoire : /xpinstall/
2.Choix du répertoire de travail et Décompression de fichiers
On suppose que les fichiers requis on été téléchargés dans le répertoire /tmp
#cd /xpinstall
#cp /tmp/unattended-4.8.zip /tmp/unattended-4.8-dosboot.zip .
#unzip unattended-4.8.zip
#unzip unattended-4.8-dosboot.zip
Dans mon cas, j’ai renommé le répertoire de sortie comme suit:
#mv unattended-4.8 unattended
Voici les fichiers et répertoires que l’on y retrouve :
[root@ntinstall data]# ls -lag /xpinstall/unattended
total 84
drwxr-xr-x 6 root 4096 Nov 17 18:26 .
drwxrwxrwx 3 root 4096 Nov 17 18:26 ..
drwxr-xr-x 7 root 4096 Nov 18 13:08 bootdisk
-rw-rr 1 root 1002 Dec 31 2007 build.xml
drwxr-xr-x 2 root 4096 Nov 17 18:26 htdocs
drwxr-xr-x 12 root 4096 Nov 17 18:27 install
-rw-rr 1 root 555 Sep 19 2002 LICENSE.txt
drwxr-xr-x 4 root 4096 Nov 17 18:26 linuxboot
-rw-rr 1 root 2080 Dec 15 2007 Makefile
-rw-rr 1 root 39325 Apr 25 2009 NEWS.txt
-rw-rr 1 root 860 Dec 5 2004 README.txt
-rw-rr 1 root 1557 Oct 23 2004 TODO.txt
NB: Le répertoire à partager pour les clients est le répertoire « install »
3.Configuration d’une Alias pour le nom Netbios “ntinstall”
Comme déjà mentionné, le nom d’hôte de notre serveur d’installation devra être changé en « ntinstall » pour une conformité avec les scripts d’installation
On utilise BIND 9.3.6-P1-RedHat-9.3.6-4.P1.el5 avec les configurations suivantes :
[root@ntinstall ~]# cd /var/named/chroot/etc/
[root@ntinstall etc]# vi named.conf
# Start of rndc.conf
key "rndckey" {
algorithm hmac-md5;
secret "ryqeJstzAutByuQKiMeRWg==";
};
controls {
inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndckey"; };
inet 192.168.1.6 allow { 192.168.1.0/24; } keys { "rndckey"
};
options {
directory "/var/named";
pid-file "/var/run/named/named.pid";
recursion yes;
allow-recursion {
127.0.0.1;
192.168.1.0/24;
};
//Serveurs OpenDNS
forwarders {
208.67.222.222;
208.67.220.220;
};
listen-on {
127.0.0.1;
192.168.1.6;
};
// so people can't try to guess what version you're running
version "REFUSED";
allow-query {
127.0.0.1;
192.168.1.0/24; };
};
server 192.168.1.6 {
keys { rndckey; };// we assume this is our first zone
zone "private.lan" IN {
type master;
file "data/private.lan.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" {
type master;
file "data/192.168.1.zone";
};
};
//ZONES
zone "." IN {
type hint;
file "data/named.ca";
};
// we assume this is our first zone
zone "private.lan" IN {
type master;
file "data/private.lan.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" {
type master;
file "data/192.168.1.zone";
};
"named.conf" 71L, 1262C
[root@ntinstall etc]# cd ../var/named/data/
[root@ntinstall data]# vi private.lan.zone
$ttl 38400
private.lan. IN SOA private.lan. admin.private.lan. (
2009020101 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 day
IN NS private.lan.
private.lan. IN A 192.168.1.6
ntinstall IN CNAME private.lan. ( l’alias don’t on a besoin)
[root@ntinstall data]# vi 192.168.1.zone
$ttl 3h
@ IN SOA private.lan. admin.private.lan. (
2009020101 ; Serial
10800 ; Rafraichir apres 3h
3600 ; Reesayer apres une heure
604800 ; Obsolete apres 1 semaine
86400 ) ; TTL minimale de 1 jour
IN NS private.lan.
6 IN PTR private.lan. (Pour le reverse lookup)
NB: On changera les adresses réseaux et le nom du domaine selon les besoins.
4.Unix Serveur Samba
Notre déploiement s’effectue à partir d’un serveur Linux/Unix (la même version de « Centos » est aussi utilisée pour cet exemple)
Ce serveur fournira les fichiers et outils d’installation automatiques aux clients via un partage samba.
La Version 3.0.33-3.7.el5_3.1 de samba a été utilisé avec la configuration suivante :
[root@ntinstall data]# vi /etc/samba/smb.conf
# from 127.0.0.1 (127.0.0.1)
# Date: 2009/11/15 20:06:06
[global]
workgroup = TEST
server string = Samba Server Version %v
null passwords = Yes
passdb backend = tdbsam
log file = /var/log/samba/%m.log
max log size = 50
logon script = logon.cmd
logon path =
logon drive = S:
logon home = \\ntinstall\%U
domain logons = Yes
os level = 33
preferred master = Yes
domain master = Yes
wins proxy = Yes
wins support = Yes
ldap ssl = no
cups options = raw
[install]
comment = Unattended
path = /xpinstall/unattended/install
force user = --guest--
read only = No
guest ok = Yes
"/etc/samba/smb.conf" 43L, 836C
NB : On notera ici l’importance du dernier partage, accessible par l’utilisateur « guest » ou « nobody », utilisateur de référence dans les scripts Perl utilisés par « windows Setup » pour les installations automatiques.
Pour les versions plus rècentes, j’ai rencontré des problèmes en appliquant la même configuration, donc il faudra juste penser à une configuration de samba avec une « sécurité = share ».
Ainsi quand les clients bouteront en PXE , il pourront copier les fichiers et scripts d’installation de windows en montant d’abord le partage sous le nom « \\ntinstall\install » sous la lettre Z :
5.Approvisionnement du répertoire /xpinstall/unattended/install/os/
On créera dans ce répertoire un répertoire nommé « winxp » dans lequel il faudra copier le répertoire i386 de notre CD d’installation XP.
6. Mise à jour automatique des scripts d’installation
Les scripts « scripts-update » et « prepare » situés dans le répertoire « /xpinstall/unattended/install/tools/ » doivent être lancés dans cet ordre (bien sûre avec une connection internet fiable) pour charger les dernières version des scripts d’installation à travers le site du développeur.
NB :Comme j’ai utilisé une version française de « windows XP », le script « prepare » devra être lancé avec le paramètre « fra » sinon par défaut , la mise à jour des packages se fera en anglais.
7.Installation à travers le réseau
Dans notre cas, on utilisera le « bootdisk tool »; on copiera le répertoire « tftpboot » situé sous « /xpinstall/unattended/bootdisk/ » dans le répertoire « /tftpboot/images/unattended » .
Les opérations à effectuer sont les suivantes :
[root@ntinstall pxelinux.cfg]# cp /xpinstall/unattended/bootdisk/tftpboot/* /tftpboot/images/unattended/
[root@ntinstall pxelinux.cfg]# cp /xpinstall/unattended/bootdisk/images/undis3c.imz /tftpboot/images/unattended/unattended/
NB: On choisit ici d’utiliser les pilotes universelles « undis3c.imz » pour les cartes réseau des clients PXE.
L’ajout de pilotes peut aussi se faire en créant les répertoires « $oem$ » et « $1 » dans cette ordre, sous le répertoire « xpinstall/unattended/install/os/i386 » précédemment créé .
Ainsi “Windows Setup” copiera toutes les pilotes qui se situent dans « $1 » dans le répertoire « C :%SystemDrive% » des clients au cours de l’installation.
[root@ntinstall images]# vi /tftpboot/images/unattended/pxelinux.cfg/default
On ne gardera que l’entrée suivante du fichier :
default undis3c
label undis3c
kernel unattended/memdisk
append initrd=unattended/undis3c.imz keeppxe
NB: ON PEUT AINSI MODIFIER NOTRE « DHCP filename » COMME SUIVANT:
- filename "pxelinux.0";
filename "images/unattended/pxelinux.0";
Après l’installation d’un premier client PXE, on pourra récupérer le fichier “UNATTENDED.TXT” généré sur le disk d’installation C:
On adaptera et placera ce fichier dans le répertoire « /xpinstall/unattended/install/site » pour permettre à « windows setup » d’avoir un « Kikcstart file ».
Le fichier “UNATTENDED.TXT” utilisé dans cet exemple est le suivant :
;
[UserData]
ProductKey = --WCBRU-IPX2M-F39PP-8RRTJ-63673--
ComputerName = pxe
OrgName = IEPSCF-UCCLE
FullName = pxeinstall
[GuiUnattended]
;Romance Standard Time (GMT+01:00)
TimeZone = 105
OEMSkipRegional = 1
OemSkipWelcome = 1
AdminPassword =tester
AutoLogon = Yes
[Unattended]
DriverSigningPolicy = Ignore
UnattendMode = DefaultHide
FileSystem = ConvertNTFS
ExtendOemPartition = 1
OemSkipEula = Yes
OemPreinstall = Yes
;
UnattendSwitch = Yes
[Components]
;Do not install IIS
iis_common = Off
iis_inetmgr = Off
iis_www = Off
;
;
iis_pwmgr = Off
;
iis_doc = Off
[Data]
AutoPartition = 1
MsDosInitiated = 0
UnattendedInstall = Yes
[Display]
BitsPerPel = 32
Xresolution = 1024
YResolution = 768
Vrefresh = 75
[LicenseFilePrintData]
;AutoMode = PerServer
; AutoUsers = 5
[Networking]
InstallDefaultComponents = Yes
[NetOptionalComponents]
;
LPDSVC = 1
[Identification]
;JoinDomain=ntinstall
;DomainAdmin=ntinstall\guest
;DomainAdminPassword="guest"
JoinWorkgroup=MSHOME
[GuiRunOnce]
; Command which runs after OS installation finishes
Command0 = "C:\netinst\mapznrun.bat C:\netinst\postinst.bat"
; This section is for informational purposes.
; Windows Setup does not use it.
[_meta]
; Don't want tu use nt5x-install script
ntinstall_cmd = "format_cmd"
; Use extended INT13 BIOS calls for fdisk?
fdisk_lba = 1
fdisk_cmds="fdisk /clear 1;fdisk /pri:4000;fdisk /activate:1"
netinst = c:\netinst
OS_media = Z:\os\winxp
; Command to disable (or modify) autologon when installation finishes
autolog = "autolog.pl --logon=0"
; Password for mapping install share
z_password =guest
; Install share drive letter in DOS
dos_zdrv = Z:
; Display prompt for final edits?
edit_files = 1
; Install share drive letter
z_drive = Z:
; Username for mapping install share
z_user = guest
replace_mbr = 1
; Contents of doit.bat script
doit_cmds = "Z:;cd Z:\os\winxp\i386;winnt /rx:lang /s:Z:\os\winxp\i386 /u:C:\netinst\unattend.txt"
; Directory holding OS media directories
os_dir = Z:\os
format_cmd = "format /y /z:seriously /q /u /a /v: c:"
;Dont Prompt for confirmation before running fdisk_cmds?
fdisk_confirm = 0
; UNC path to install share
z_path = \\ntinstall\install
; Drive used for temporary files in DOS
tmpdrive = ""
;NTP servers to use
ntp_servers = "ntp.belnet.be"
;I don't wanna answer to final edit question
edit_files = 0
;which domain accounts are added to the local Administrators group
local_admin = guest
; First script run by postinst.bat
top = base.bat
; Optional script(s) run by postinst.bat
middle = "ofc2003.bat"
; Last script(s) run by postinst.bat
bottom = ""
NB : On notera , l’appel du premier script « base.bat » par le script « install.pl » pour effectuer l’installation du System d’exploitation .
Pour éviter les mises à jour non contrôlées , il faudra customiser le fichier comme suivant :
:: MASTER: Perform a basic workstation installation
@Echo off
:: Set Automatic Updates to download and update automatically (SP2 behavior)
::todo.pl "auconfig.pl --day 0 --time 3 --wait 10 4"
:: Defragment the drive to collect the free space.
todo.pl defrag.bat
:: Update windows and turn off annoying stuff.
::todo.pl %%WINVER%%-updates.bat %%WINVER%%-notips.pl .reboot
:: Set IIS startup type to manual and ignore if not installed.
::todo.pl ".ignore-err 255 startup-type.pl Manual IISADMIN" ".ignore-err 255 startup-type.pl Manual W3SVC"
:: Turn off Windows Messenger service
todo.pl "startup-type.pl Disabled Messenger"
Les entrées “::” en début de strings permettent de désactiver l’option.
On notera également ici le lancement du script post installation « ofc2003.bat » pour installer Office2003.
Pour cela , il faudra copier tout le contenu du CD Office2003 dans le répertoire « /xpinstall/unattended/install/packages/office2003 »
La clef du produit sera documentée dans le fichier « /xpinstall/unattended/install/site/ keys.bat » comme suit :
:: License-Key file
::
:: This file is used by several installation scripts to obtain license keys.
:: Please edit this file and provide your license keys.
:: Microsoft Office 2000
set office2k=xxxxxxx
:: Microsoft Office XP
set officexp=xxxxxxx
:: Microsoft Office 2003
set office2k3=P8459-VFMF7-7254W-G275C-Y1BQY
:: Microsoft Visual Studio 6
set vs6=xxxxxxx
Aperçu du message:
Fermer l'aperçu