Unattended Installation of NLB Clusters

Applies To: Windows Server 2003 with SP1

Unattended installation of NLB clusters consists of the following steps:

  1. Planning and Preparation for operating system installation

  2. Preparing an answer file for unattended installation of the Windows Server 2003, Enterprise Edition operating system

  3. Creating a Master Installation

  4. Running winnt32.exe

  5. Enabling and configuring Network Load Balancing

Planning and Preparation for Operating System installation

For detailed instructions on how to plan and prepare for Windows Server 2003, Enterprise Server operating system installation, please refer to the Microsoft Windows XP Preinstallation Guide. This document is located in Deploy.cab on the Windows Server 2003 CD. Although the Guide contains the instructions on preparing for Windows XP installation, the same instructions apply to Windows Server 2003, Enterprise Edition as well.

Answer file

To automate the Windows Server 2003 installation completely you must prepare an answer file, usually called unattend.txt, which contains all of the answers for a series of graphical user interface (GUI) dialog boxes. Unattend.txt tells Setup how to interact with the distribution folders and files you create and supplies Setup with all of the information that the end user provides during a typical Windows Setup. For example, Unattend.txt contains a FullName entry in the [UserData] section that instructs Windows Setup to prompt the end user to provide a full name.

Although the answer file for Setup is commonly called Unattend.txt, for a network pre-installation you can name the file anything you like. For a CD-based Setup, you must name the answer file Winnt.sif.

If you are using the OPK toolkit (available only to OEMs), you can create or modify a Unattend.txt file by using a tool called Setup Manager. You can also use any text editor to create or modify the answer file.

Operating System Sections and Entries for Unattended Install

A fully unattended operating system setup requires the following sections and entries:

Required section Required entries in that section Comments

[Unattended]

UnattendMode

TargetPath

[GuiUnattended]

AdminPassword

TimeZone

[Identification]

JoinWorkgroup

You may instead specify JoinDomain, DomainAdmin, and DomainAdminPassword.

[LicenseFilePrintData]

AutoMode

AutoUsers

Requires AutoUsers if
AutoMode = PerServer.

[Networking]

Required to configure network protocols.

[UserData]

ComputerName

[Unattended]

This section contains entries for running Setup, such as whether to extend the partition on which you install the Windows operating system, specifies location of files necessary for installation during Setup, etc. You must instruct Setup to accept the EULA if you want your installation to be fully automated:

 [Unattended] 
OemSkipEula = Yes 

[GuiUnattended]

This section of Sysprep.inf contains entries for preparing the graphical user interface (GUI) for unattended Setup. To completely automate operating system setup you need to include the following entries:

[GuiUnattended] 
AutoLogon = Yes 
AdminPassword = *** <replace the asterisks with the actual password> 
OemSkipWelcome = 1 
OemSkipRegional = 1 
TimeZone = 20 <specify your time zone here> 

[Identification]

This section contains entries for specifying the network identification of a computer. If these entries are not present, Setup adds the computer to the default workgroup called WORKGROUP. If there is not enough information for this entry, Setup will prompt the end user to provide this information.

Prior to adding the first node to a cluster or adding additional nodes, all nodes must have joined a domain (instead of a workgroup) and be members of the same domain. When you create a cluster or join nodes to a cluster, you specify the domain user account under which the Cluster service runs. Therefore, you need to specify in this section which domain a destination computer should join, and provide the valid credentials under which to join

[Identification] 
DomainAdmin = your_domain\user 
DomainAdminPassword = ***** <replace the asterisks with the actual password> 
JoinDomain = your_domain 

[LicenseFilePrintData]

This section contains entries for installing licensing information for the Windows Server 2003 family.

[LicenseFilePrintData] 
AutoMode = PerSeat 

[Networking]

This section contains no entries. However, to configure network protocols during an unattended setup, you must include the [Networking] section name in your answer file. In addition, you must include additional sections that describe your network adapters, protocols to be installed, and static IP address information.

If you decide to change your Network Load Balancing model, add, remove or modify virtual clusters during the unattended installation, you must make sure you have all of the required information (new cluster virtual IP addresses, additional static IP addresses, etc.) available. You will need to provide all of that information in the [Networking] section of the answer file.

Depending on the particular scenario in which you use NLB clusters the [Networking] section can contain different sets of information. For example, if you use multiple network adapters, you need to configure them both here; otherwise you only need to configure one network adapter. If you use multiple virtual clusters, you also need to configure the network adapter(s) and bind NLB in this section. Below is an example of a [Networking] section that configures two network adapters that are configured for use with NLB later in the [params.MS_WLBS.Adapter] sections.

For a complete list of instructions for configuring and enabling NLB and NLB best practices, please refer to Windows Advanced Server 2003 Online Help/Availability and Scalability/Network Load Balancing.

Use the following entries in unattend.txt to enumerate your network cards:

[NetAdapters] 
;list your network adapters here 
Adapter01 = params.Adapter01 
Adapter02 = params.Adapter02 

Next, you need to uniquely identify each network adepter. You can either use the INFID entry where you need to specify the Plug and Play IDs of your network adapters or the NetCardAddress entry to specify MAC addresses. You need to run a special tool called pnpids.exe to retrieve the PnP IDs for your network cards. For computers with multiple adapters of the same type (that is, the Plug and Play ID for each is the same), you must specify the NetCardAddress or PCI location information. If you do not specify the NetCardAddress or PCI location, only the first adapter enumerated/detected that matches the PnP ID receives the answer file entries.

If you specify the NetCardAddress or PCI location, Setup does not use the INFID entry because it is the least specific entry.

Therefore, we recommend that you simply identify your network cards by their MAC addresses as follows:

[params.Adapter01] 
NetCardAddress = 0x0002A5D0510F 
[params.Adapter02] 
NetCardAddress = 0x000476D5F57D 
;Install Client for MS Networks 
[NetClients] 
MS_MSClient = params.MS_MSClient 
[params.MS_MSClient] 
;Specify which network protocols to install 
[NetProtocols] 
MS_TCPIP = params.MS_TCPIP 
;TCP/IP properties 
[params.MS_TCPIP] 
AdapterSections = params.MS_TCPIP.Adapter01, params.MS_TCPIP.Adapter02 

Now we need to configure both network cards with static IP address information since NLB does not allow DHCP-assigned addresses.

;Adapter01 is used for intra-cluster communication. 
 [params.MS_TCPIP.Adapter01] 
DHCP = No 
IPAddress = 172.24.23.91 
SpecificTo = Adapter01 
SubnetMask = 255.255.0.0 
DNSServerSearchOrder = 157.5.0.1,157.6.0.2 
WINS = Yes 
WINSServerList = 157.5.0.1,157.5.1.2 
;Adapter02 represents a public network 
[params.MS_TCPIP.Adapter02] 
DefaultGateway = 157.6.8.1 
DHCP = No 
IPAddress = 157.5.4.1 
SpecificTo = Adapter02 
SubnetMask = 255.255.252.0 
DNSServerSearchOrder = 157.5.0.1,157.6.0.2 
WINS = Yes 
WINSServerList = 157.5.0.1,157.5.1.2 

[UserData]

This section contains entries for specifying user settings during setup:

[UserData] 
ComputerName = SV-NODE1 
FullName = User Name 
OrgName = Organization Name 
ProductKey = 11111-22222-33333-44444-55555 

Of course you need to replace all of the names, passwords and the cluster IP address with real ones.

NLB-specific Sections and Entries

[params.MS_WLBS]

This section contains parameters for configuring NLB and binding NLB to network adapters. For unique Configuration/Binding, see the [NetBindings] section below.

[params.MS_WLBS] 
AdapterSections=params.MS_WLBS.Adapter01,params.MS_WLBS.Adapter02 
[params.MS_WLBS.Adapter01] 
SpecificTo=Adapter01 
ClusterIpAddress=172.24.23.10 
ClusterNetworkMask=255.255.252.0 
IGMPSupport=0 
MulticastSupportEnable=1 
RemoteControlEnabled=1 
HostPriority=1 
ClusterModeOnStart=1 
DedicatedIPAddress=172.24.23.91 
DedicatedNetworkMask=255.255.255.0 
Ports=1,65535,Both,Multiple,Single,Equal 
[params.MS_WLBS.Adapter02] 
SpecificTo=Adapter02 
ClusterIpAddress=172.24.23.10 
ClusterName = nlbcluster.domain.com 
ClusterNetworkMask=255.255.252.0 
IGMPSupport=0 
MulticastSupportEnable=1 
RemoteControlEnabled=1 
HostPriority=1 
ClusterModeOnStart=1 
DedicatedIPAddress=157.5.4.1 
DedicatedNetworkMask=255.255.252.0 
Ports= 1,65535,Both,Multiple,Single,Equal 

What each line means:

ClusterIpAddress - This address is a virtual IP address and it must be set identically for all hosts in the NLB cluster

ClusterName - Specifies a full Internet name for the NLB cluster

ClusterNetworkMask - Specifies the subnet mask for the NLB cluster IP address

IGMPSupport - Specifies whether or not to use IGMP support to prevent switch flooding

MulticastSupportEnable - Specifies whether or not to use a multicast MAC address for NLB cluster operations

RemoteControlEnabled - Specifies whether or not to enable remote-control operations

HostPriority - Specifies hosts unique priority ID in the NLB cluster

ClusterModeOnStart - Specifies whether a host joins the NLB cluster upon startup or waits for an explicit command to do so

DedicatedIPAddress Specifies hosts unique IP address

DedicatedNetworkMask - Specifies the subnet mask for the dedicated IP address

Ports - Specifies rules for distributing traffic among NLB cluster hosts according to protocol and destination ports

For a complete list of all available NLB configuration options in the answer file, please refer to the following document: Microsoft Windows XP Preinstallation Guide. This document is located in Deploy.cab on the Windows Server 2003 CD.

[NetBindings]

This section contains entries for disabling, enabling, and demoting binding rules for network components such as services, protocols, and adapters.

[NetBindings]

Disable=MS_WLBS,Adapter01

Enable=MS_WLBS,Adapter02

For more information about unattend.txt, please refer to the following document: Microsoft Windows XP Preinstallation Guide. This document is located in Deploy.cab on the Windows Server 2003 CD.

Creating a Master Installation

There are no cluster-specific items in this step. Please refer to the Microsoft Windows XP Preinstallation Guide, located in Deploy.cab on the Windows Server 2003 CD for detailed instructions on how to create a Master Installation.

Running winnt32.exe

You can run Winnt32.exe from a command prompt to start Windows Setup.

For a complete list of the Winnt32.exe command-line options, see Winnt32.exe Command-Line Options topic in the Microsoft Windows XP Preinstallation Guide. This document is located in Deploy.cab on the Windows Server 2003 CD. Although the Guide contains the instructions on preparing for Windows XP installation, the same instructions apply to Windows Server 2003, Enterprise Edition as well.

To install Windows from a network share, boot the computer using your Windows Server 2003 CD (or any other startup media) and then connect to the desired network location. Placing the distribution share and the configuration set on the network adds considerable flexibility to the pre-installation process.

To run Setup using Winnt32.exe

Prepare an Unattend.txt file as part of building a configuration set as described above.

  1. Start the computer where you want to install Windows.

  2. Click Start, click Run, and then type:

    path_to_winn32\winnt32 /unattend:filename

    where:

    path_to_winnt32

    Specifies the path to the location of Winnt32.exe. For example, \\server\share\Lang\Eng\sku\pro\x86\I386.

    filename

    Specifies the name of the answer file, which contains answers to installation questions you want to automate. The value of filename is usually Unattend.txt.

Installing and Configuring NLB

If you specified all of the information in the [params.MS_WLBS] section of unattend.txt as described in section NLB-specific Sections and Entries above, you need to do nothing further you have already installed and configured an NLB cluster with at least one host in it. You can now use NLB Manager or WMI to add hosts to this cluster, or you can add hosts to the cluster when you perform an unattended install on those computers with the [params.MS_WLBS] section of the answer file configured as described above.