Fratello, quante volte hai "SYSPREPPATO"?

Da sempre per accelerare il deployment del sistema operativo, quando si parla di grandi numeri (centinaia - migliaia di PC) ci si appoggia a strumenti di IMAGING che permettono di accelerare notevolmente la procedura. Come tutti sapete (vero?) è importante, prima di "catturare" in un file un'immagine di un sistema operativo, "SYSPREPPARLA". Cosa vuol dire? Sigifica, in soldoni, utilizzare il tool SYSPREP.EXE (vedi l'articolo How to use the Sysprep tool to automate successful deployment of Windows XP) per "preparare" l'immagine ad essere deployata. In breve cosa fa Sysprep?

  • Prepara il sistema operativo Windows per la duplicazione da un computer all'altro.
  • Modifica gli ID di protezione (SID) e altre impostazioni di sistema e di configurazione per renderli univoci.
  • Configura le informazioni specifiche dell'utente in modo che possano essere personalizzate dall'utente finale al primo avvio di Windows.
  • Crea immagini dei sistemi operativo (per poi poter essere "catturata").
  • Automatizza il programma di installazione minima (MINISETUP) di Windows.

Particolarmente importante questa operazione perchè  "resettando" numerosi valori (tra cui il famigerato SID, Security Identifier, un'identificatore univoco che a partire da Windows NT serve a riconoscere uno e un solo PC) permette di non avere centinaia di PC con lo stesso SID con i problemi (e la non supportabilità) descritti dall'articolo Do not disk duplicate installed versions of Windows.

In breve quindi l'attività da fare per distribuire Windows XP tramite IMMAGINI è la seguente (vedi articolo technet How to Prepare Images for Disk Duplication with Sysprep):

  1. installare su un PC Windows XP e tutti i programmi (ad esempio OFFICE) che si vogliono includere nell'immagine (chiamiamola immagine MASTER); come best practice partire da un'installazione unattended per non sbagliare le impostazioni)
  2. Lanciare SYSPREP
  3. Catturare l'immagine tramite un tool di imaging (un tempo GHOST, ora anche IMAGEX)

Vorrei soffermarmi brevemente sul punto 1.

Immaginate di dover aggiungere un programma all'immagine MASTER. Come ci si comporta?

Metodo A

Si ricrea l'immagine master originale, si installa il programma e si procede con i punti 2 e 3 ricreando quindi l'immagine catturata pronta da deployare.

Siccome non è (sempre) agevole creare un'immagine master (occore partire da un'installatione tradizionale, dal CD tanto per intenderci), in realtà quello che succede spesso è questo:

Metodo B

Si installa un immagine partendo dall'immagine catturata "SYSPREPPATA" (e non dal CD di Windows), si installa l'applicazione mancante e si lancia nuovamente SYSPREP ricreando l'immagine "modificata".

Il metodo B, anche se più veloce, non è la "best practice" come si suol dire. Se parliamo puramente dal punto di vista di un processo, io dovrei partire ESATTAMENTE dall'immagine MASTER (PRE-SYSPREP) per poi modificarla; invece parto da un'immagine che non è la master ma la MASTER DEPLOYATA (POST SYSPREP) e poi la modifico. Non è e non sarà mai la stessa identica cosa.  Intendiamoci... non ho trovato articoli pubblici o richieste di supporto che dichiarano "non supportata" questa procedura (NB: per XP; al contrario Vista, invece, si blocca al terzo "sysprep" della stessa immagine, vedi articolo An error message occurs when you run "Sysprep /generalize" in Windows Vista: "A fatal error occurred while trying to Sysprep the machine").

Ho trovato invece parecchia documentazione che indica che il metodo da utilizzare è il Metodo A:

_______________________________________________________________________________

Articolo How to Prepare Images for Disk Duplication with Sysprep

How to prepare a master installation for cloning
  1. Install Windows XP on a master computer. As a best practice, Microsoft recommends that Windows XP be installed from a distribution folder by using an answer file to help ensure consistency in configuring the master installation, so that iterative builds can be created and tested more readily. See Unattend.txt for information about automating Windows Setup using an answer file.

  2. ....

_______________________________________________________________________________

Dalla Windows 2003 Deployment Guide (sostanzialmente simile al corrispondente per Windows XP), capitolo Bulding Master Installation.

Installing and Configuring a Master Installation

...... each of your master installations. For a master installation, you can configure the operating system and software using one of three methods.

Manual installation and configuration method

You can manually install the operating system by using Windows Setup, and then manually install software and configure system settings. There are two ways you can do this:

•Start the master computer by using the Windows Server 2003 operating system CD. Windows Setup will start automatically. When you finish installing the operating system, you can then install and configure software applications.

•Start the master computer by using an MS-DOS startup disk, and then start Windows Setup by running Winnt.exe, which is located in the I386 folder on the operating system CD. When you finish installing the operating system, you can then install and configure software applications.

Semi-automated installation and configuration method

You can use an answer file to automate Windows Setup, and then manually install and configure software. This automated method of installing the operating system is known as unattended installation. You can perform an unattended installation by starting the master computer with an operating system CD, and then automating Windows Setup by using a Winnt.sif answer file. You can also perform an unattended installation by starting the master computer with an MS-DOS startup disk, and then automating Windows Setup by using an Unattend.txt answer file.

Fully automated installation and configuration method

To fully automate the installation and configuration of the operating system and software, you can use answer files in conjunction with configuration sets that reside on a distribution share. A configuration set contains device drivers, software files, answer files, and configuration settings that are required to build a master installation. A distribution share is a shared folder that contains all of your configuration sets. You can use Setup Manager to create configuration sets.

_______________________________________________________________________________

Sempre dalla Windows 2003 Deployment Guide, il capitolo Overview of Unattended Installation cita:

....unattended installation is a useful method of creating master installations for image-based and RIS installations.

_______________________________________________________________________________

Aggiungo che la BDD 2007 (Business Desktop Deployment), una serie di tool e documenti (condensati in un WorkBench un'unica console) atti ad agevolare il deploy di Windows in ambienti Enterprise, prevede in estrema sintesi questi passi (automatizzati interamente grazie agli script ed ai tool presenti):

  • Generazione automatizzata della REFERENCE MACHINE (master) tramite
    • installazione unattended di Windows
    • installazione unattended di applicazioni
  • Cattura dela REFERENCE MACHINE:
    • creazione di un immagine SYSPREPPATA
    • caricamento dell'immagine della reference machine nel workbench
  • Creazione della BUILD da deployare, formata da:
    • immagine syspreppata caricata precedentemente
    • applicazioni aggiuntive (da installare automaticamente dopo il deploy della build)
    • task aggiuntivi (esempio: esecuzioni di script, copia di files, ecc)

Leggendo questo processo di intuisce come sarà il processo di modifica di una reference machine (Master) per aggiungerci per esempio un'applicazione in più:

  • creazione dell'installazione unattended dell'applicazione
  • inserimento del task di installazione dell'applicazione nel processo di generazione della REFERENCE MACHINE
  • Cattura della reference machine modificata
  • Caricamento dell'immagine della reference machine modificata nella build precedentemente creata

Il processo di deploy di Windows ha raggiunto ormai una maturità tale da poter essere gestito interamente come un processo controllato in tutto e per tutto; gli strumenti ci sono e funzionano, l'importante è ricordarsi una regola fondamentale: investire nello sviluppo e nell'automazione di un processo permetterà di risparmiare tempo e denaro nelle operations di tutti i giorni. Come la famosa pubblicità... NON HA PREZZO :)