Performing an Unattended Installation of ZENworks for Desktops 3 on Remote Servers
Articles and Tips: article
01 May 2001
Installing Novell's ZENworks for Desktops on NetWare servers across a slow WAN link can be challenging. By following the procedures outlined in this AppNote, you can not only perform an unattended installation of ZENworks on a remote server, but also minimize traffic across WAN links. This AppNote includes procedures for both NetWare 4.x and 5.x.
Novell's ZENworks for Desktops (ZfD) is a directory-enabled desktop management solution designed to make network administrators' lives easier. By leveraging the power of Novell Directory Services (NDS), ZfD simplifies networking for users, cuts administrative costs, and helps businesses manage change. The latest release, version 3, adds new features that make it even more useful in managing and configuring user workstations and laptops. (For more information about ZENworks for Desktops, see the product Web site at http://www.novell.com/products/zenworks.)
In large organizations with many remote sites, installing ZfD 3 onto servers across the WAN offers a number of challenges. It is often impractical or cost-prohibitive to physically travel to each remote site to install the product, yet few remote offices have a full-time network administrator on-site to perform such installations. And while numerous remote access options are available, it can be time-consuming and expensive to transfer large amounts of data across slow WAN links.
This AppNote describes a procedure for performing an unattended installation of ZfD 3 to a remote NetWare 4.x or 5.x server. It outlines the preparatory steps for NetWare 4.x servers, explains how to stage the files needed for the installation, and provides several options for copying the necessary files and triggering the actual installation.
Preparing for the ZfD Installation
This section outlines the steps you will need to complete before you tackle the ZfD installation itself.
Overview of the Process
Here is an overview of the entire process discussed in this AppNote.
For NetWare 4.x servers only:
Create directories for the Object Request Broker (ORB) and Java Virtual Machine (JVM) installation.
Copy the JAVA and JAVASAVE directories to the target NetWare 4.x server.
Copy the changes to the ETC directory to the target server.
Install WinSock 2 on the target server.
Edit the target server's AUTOEXEC.NCF file to add the necessary search paths and load the WinSock modules.
Manually (or via a remote server management tool) load the new commands that were added to the AUTOEXEC.NCF file at the server's console prompt. (This saves a reboot.)
For all target servers:
Copy the ZEN3.ZIP file to the SYS:UPDATES directory on the target server.
Copy the ZEN3.INI, Z.BAT, UNZIPZEN.NCF, and HRUNZIP.NLM files to the appropriate places on the target server.
Extract the ZfD files in ZEN3.ZIP by running UNZIPZEN.NCF.
Ensure that the NAL Window is not open on any workstation at the remote site.
Have a user at the remote site run the Z.BAT file (or start it yourself via a workstation Remote Control utility).
Configure ZENworks for Desktops 3 in ConsoleOne.
What You'll Need
Before you begin, here is a checklist of the software and utilities you will need to complete the procedures outlined in this AppNote:
ZENworks for Desktops 3 CDs, available with the purchase of the product from your authorized Novell reseller
PKZIP, a popular compression utility available free from http://www.pkware.com
TOOLBOX.NLM, a collection of NetWare server tools available for download from http://support.novell.com (search for TID #2956830)
HRUNZIP.NLM, a server-based ZIP file extraction utility available for download from http://www.novell.com/coolsolutions/zenworks/downloadables.html
Also, make sure you have installed the latest OS updates and patches on your NetWare servers. (Visit http://support.novell.com/misc/patlst.htm for a list of available updates and patches.)
Preparations for NetWare 4.x Servers
Before you can install ZfD 3 on a NetWare 4.x server, you must first install the following software that ZfD requires:
The Object Request Broker (ORB). Novell has its own implementation of the Object Request Broker, a component in the CORBA (Common Object Request Broker Architecture) programming model. The Novell ORB is required on NetWare servers in order to run CORBA-compliant distributed-object applications, such as ZfD 3.
The Java Virtual Machine (JVM). The Novell JVM is a set of NetWare Loadable Module (NLM) programs that must be loaded to allow Java applications to run on a NetWare server.
WinSock 2. WinSock 2 is a network programming interface that provides Windows applications with transport independence across a wide range of communication transports.
Note: These programs are installed by default on NetWare 5.x servers. Follow the instructions below only for NetWare 4.11 or 4.2 servers.
Creating the ORB and JVM Directory Structure. The ORB and JVM program files should be combined into a directory structure to be "pushed" or transferred to your target NetWare 4.x servers. You do not need to run the installation for these programs. It is simply a matter of copying the contents of a few directories.
Note: If you have Novell's ZENworks for Servers, you could create a script to push the files; however, this is not necessary for our purposes.
The Novell ORB installation copies several files to the JAVA directory on the target server. All of these files are needed in order for ZfD 3 to function properly. The ORB installation will also add some search paths to the AUTOEXEC.NCF file.
The JVM installation normally copies around 60 MB of data to a NetWare 4.x server. However, the amount of data that is actually needed for our purposes is only about 24 MB. Running a ZENworks snAppShot on the JVM installation reveals that it creates several directories at the root of the SYS volume, including the JAVA and JAVASAVE directories. It also makes some changes in the standard ETC directory. Some of the subdirectories in this structure are not needed; for example, you can safely delete the SYS:JAVA\NWGFX subdirectory, after you have copied the NAWT.NLM file into the SYS:JAVA\BIN directory.
To create your "push" structure for NetWare 4.x servers, simply install the JVM and ORB software on a test server. Then, referring to Figure 1, delete all unneeded directories until your structure resembles the one shown in the figure.
The directory structure used to "push" the JVM and ORB installations to target NetWare 4.x servers. (SYS is shown only to indicate that the directories are placed at the root of SYS.)
This is the structure you will use to copy the changes in the ETC directory, along with the JAVA and JAVASAVE directories, to your target NetWare 4.x server.
Editing the jvm and orb Files. You need to edit two files that reside in the SYS:JAVASAVE\CONTENTS directory. They are text files named "jvm" and "orb". Open each file and delete the line that has the server name in it. The finished files should look like the ones shown in Figure 2.
The edited jvm and orb files.
The resulting files will allow a new version of the JVM/ORB to update the old one when needed. You will not be able to uninstall the JVM or ORB. However, you can delete the directories and delete the modifications to the AUTOEXEC.NCF if needed.
Note: If you want to install the ORB using SETUP.EXE, you cannot run it on a Windows 2000 workstation.
Editing the AUTOEXEC.NCF File. The following lines are added to the server's AUTOEXEC.NCF file during the JVM and ORB installations:
SEARCH ADD SYS:\JAVA NJCLV2\BIN SEARCH ADD SYS:\JAVA\BIN SEARCH ADD SYS:\JAVA\NWGFX
The last line (adding the search path to SYS:\JAVA\NWGFX) is not needed and should be deleted.
Installing WinSock 2
WinSock 2 is a needed addition to a NetWare 4.x server in order for the server to act as a staging server for the ZfD inventory. (Note that a staging server is not a database server. It is a server that allows the inventory .STR files to be stored in the VOL:ZENWORKS directory until your configured NDS policy schedules the transfer to the next-level database server.)
WinSock 2 for NetWare 4.x is included as part of the NetWare 4 Service Pack 8a (and later service packs). When you load this service pack, it creates a directory called VOL:nw4sp8a\Tools\Coredump (where VOL represents the server volume in which you extracted the service pack file).
There are many ways to install WinSock 2. For simplicity, I used the Copy command that is part of TOOLBOX.NLM to copy the files from the \Tools\Coredump directory to other directories on the server. The steps are as follows:
At the console prompt, type LOAD TOOLBOX <Enter<.
Type Copy VOL:nw4sp8a\tools\coredump\*.* c:\nwserver
Type Copy VOL:nw4sp8a\tools\coredump\uni*.* sys:system
Editing the AUTOEXEC.NCF File. To complete the WinSock 2 installation, you need to add the following lines to the target server's AUTOEXEC.NCF file:
SEARCH ADD C:\NWSERVER LOAD LOCNLM32 LOAD WSDBE LOAD WS2_32 LOAD WSPIP
To avoid having to reboot the server, you may want to manually enter the above commands at the server prompt to load the WinSock 2 modules. (Note: You must reboot the server sometime after the Winsock 2 installation in order for the Inventory Policies to function correctly.)
At this point, you have installed WinSock 2 on the target NetWare 4.x server and updated the server's AUTOEXEC.NCF file with the appropriate commands. You will also need to copy the JVM and ORB directory structure to the target server. Possible ways to do this are discussed later in this AppNote.
You are now ready to begin work on preparing the ZfD 3 files for an unattended install on NetWare 4.x and 5.x servers.
Preparing the ZfD 3 Server Files
Before you create and run an unattended install file, you need to copy the ZfD 3 server code to the target server. This section outlines the steps for a NetWare 4.x or 5.x server that will act as a "leaf" inventory server. This is the recommended configuration for any server across a WAN link, and is the type of server assumed in this AppNote.
Creating the ZEN3.ZIP File
The following steps will reduce the ZfD 3 server files from 196 MB down to 62 MB for ease in copying them across the network or distributing them on a CD.
Copy the entire contents of the ZENworks for Desktops 3 Server CD to a hard drive (SYS is not a good choice; I recommend that you use your local C: drive).
In the resulting directory structure, delete the following directories:
\NovDocs (from the CD root directory)
Zenworks\Products\imaging and all of its subdirectories (unless you want to use the imaging feature)
Any language-specific directories you do not need
Note: This list could be more extensive; however, this is enough to reach our goal of 62 MB. Deleting any of the remaining directories would not give us any significant disk space savings.
Compress the remaining directories/files into a single archive using PKZIP. (The reason for using PKZIP is to maintain the long file name structure needed for the JAVA code that ZfD 3 installs. The CDROM.NLM on NetWare 4.x servers does not support long file names, so this step is very important.) Name the file ZEN3.ZIP.
You now have a 62 MB file that will be copied to a volume on your target server, along with the supporting files described next. For this AppNote, I will use SYS:UPDATES as my copy point. You can use any volume you like, as long as you remember to modify the supporting files accordingly.
Creating the Supporting Files
In addition to ZEN3.ZIP, you will need to create a few other files and copy them to the target server:
UNZIPZEN.NCF (this will unzip the ZEN3.ZIP file)
ZEN3.INI (this is the unattended install file, discussed later)
Z.BAT (this will be run by a user or by you via a remote-controlled workstation to kick off the unattended install)
You will also need to copy HRUNZIP.NLM to the target server, as this file is needed by UNZIPZEN.NCF.
I will first explain what these files do, then describe ways to copy them to the target server and complete the remote ZfD installation.
UNZIPZEN.NCF. This file unzips the ZEN3.ZIP file that was copied to SYS:UPDATES. This file uses HRUNZIP.NLM, which should be located in the SYS:SYSTEM directory on the target server.
The logic of the UNZIPZEN.NCF file is as follows:
; File: UNZIPZEN.NCF ; Date: 10-24-00 ; By: Edward J. Hanley, Novell Consulting ; Desc: This NetWare batch file unzips the ZENworks v3 file SYS: UPDATES\ZEN3.ZIP which has been created for Company. Load hrunzip -qq -o sys:updates/zen3 -d sys:
The command switches for HRUNZIP are necessary to allow a silent install. (For a complete list and description of the available switches, type LOAD HRUNZIP at the server console prompt.)
ZEN3.INI. This is the file needed to do an unattended installation. Note that the unattended install will currently work only for the following installation environment:
Leaf inventory server (a staging server for remote inventory information)
No database installed on the remote server (I do not recommend that you install a database on remote servers)
Note: There is no Novell support for unattended installations. Follow these instructions at your own risk.
The ZEN3.INI file has the following syntax:
[Novell:ZfD:ServerList] TreeName=ZEN4FRESH NumberOfServers=1 ServerName1=ZEN4 ServerType1=NW ServerNameNT1= ServerContext1=novell CopyConsoleOneSnapins1=FALSE AutoWorkstationRole1=Import InventoryRole1=Leaf Server InventoryConnectedToDB1=false InventoryHasWorkstationsAttached1=true InventoryScanDir1=Sys [Novell:ZfD:Languages] NumberOfLanguages=1 Language1=English [Novell:ZfD:Install] ApplicationManager=true AutoWorkstationImport=true Imaging=false RemoteControl=TRUE WorkstationInventory=true WorkstationManager=true Sybase=false [Novell:ZfD:PartList] CopyFiles=true UpdateSchema=true CreateAppObjects=true
In the Novell:ZfD:ServerList section, the settings shown are for NetWare servers. If you are installing ZfD on an NT server, set "ServerType1=NT" and provide a server name on the "ServerNameNT1=" line.
It is usually not necessary to copy the ConsoleOne snap-ins at remote sites; hence the setting "CopyConsoleOneSnapins1=FALSE".
For "AutoWorkstationRole1=", there are four possible choices: None, Import, Removal, or Import/Removal. I recommend that remote servers act as Import servers.
The setting for "InventoryScanDir1=Sys" indicates the volume on which you want to store the .STR files.
Feel free to experiment with this file and expand its possibilities. Unfortunately, there is no documentation for this file. If you have questions, please do not contact Novell Technical Support; you may e-mail me at email@example.com
Z.BAT. This batch file unzips the ZEN3.ZIP file that was copied to SYS:UPDATES. This file uses HRUNZIP.NLM, which should be located in the SYS:SYSTEM directory on the target server.
The file contains the following logic:
f:\ cd\ f:\ cd public map root q:=fs1/sys:updates\zen3\zenworks cd\ q: install \template=f:\public\zen3.ini /silent
Z.BAT assumes that drive F: is mapped to SYS on the user's local server. It also assumes that drive Q: is not in use.
Copying the Files to the Target Server
There are several ways you could copy these files to the target server. The most straightforward way is to log in to the target server and copy the files to it from a workstation. (Refer to the sample NCF file below for the destination directories.)
Another possibility is to copy these files, along with the ORB and JVM directories and ETC changes, onto a CD. Then send the CD to your remote site with the instructions "Insert the CD into the server CD slot." Once that is done, you can mount the CD remotely and run an NCF file to extract the files on the server. (See the TOOLBOX.NLM documentation for copy commands that could be used for creating such a CD and copying the files to the server.)
An example of such an NCF file is as follows:
Load TOOLBOX COPY CDVOL:SYS\JAVA SYS:JAVA COPY CDVOL:SYS\JAVASAVE SYS:JAVASAVE COPY CDVOL:SYS\ETC\*.* SYS:ETC COPY CDVOL:ZEN3.ZIP SYS:UPDATES\ COPY CDVOL:Z.BAT SYS:PUBLIC COPY CDVOL:ZEN3.INI SYS:PUBLIC COPY CDVOL:HRUNZIP.NLM SYS:SYSTEM COPY CDVOL:UNZIPZEN.NCF SYS:SYSTEM
Note: The search path and WInSock changes to the AUTOEXEC.NCF file can be done at any time, independent of the file copying process. You can be distributing the CDs or copying the files to the servers before, during, or after the updating of the AUTOEXEC.NCF file.
Performing the Remote ZfD Installation
With the files on the server in the appropriate places, you can now proceed with the installation of ZENworks for Desktops 3. Remember that the user installing ZfD must have rights to do so, and that the Novell Application Launcher (NAL) Window should be closed on every workstation at the remote site.
I have had success using a Bridge telephone line with 20 to 30 remote sites per night. First, make sure you have given rights to the remote server to the Organizational Unit that holds the end-users for the sites that will be calling in. This ensures that you do not need to call a particular person. Second, remark out the line in the login script that executes the NAL or NALEXPLD programs.
Before the users call, it is wise to have sent an e-mail scheduling the night's actions. One thing to include in the e-mail is to tell your people to ensure that all of the computers on site have been turned off prior to calling.
When the person calls from the site, have them turn on a single PC that has the latest Novell Client software loaded. Once it has booted up, have the user click Start | Run, type the letter |Z| in the |Open| box, and click on the OK button. The installation will run automatically at this point.
Configuring ZfD 3
Once ZfD 3 is installed, you must configure it in ConsoleOne. See the online documentation at http://www.novell.com/documentation/lg/zfd3/docui for more information.
This AppNote has shown how to perform an unattended installation of ZENworks for Desktops 3 to remote servers across a WAN. This process is designed to save both time and WAN costs when installing this software. Again, the unattended installation process described herein is not supported by Novell. Please contact the author (firstname.lastname@example.org
) if you have questions.
* Originally published in Novell AppNotes
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.