Customizing Daisy for your environment
Document version 1.0 (12/1/03)
By Marc DeBonis (marc.debonis@vt.edu)
Objective:
Replicate the required services and data in order to
mirror the processes that Daisy uses to effectively localize your hotfix
process.
Background:
Daisy is a client based application that utilizes several
mechanisms to identify, download, install, and (if necessary) reboot Microsoft
Windows systems.
For more information see http://opensource.w2k.vt.edu
Requirements:
- A local server inside your firewall that can run a
passive FTP server
- A robust FTP server (I'd suggest SERV-U
http://www.serv-u.com/)
- The necessary space to hold the total sum of all
current hotfix files (currently, as of this writing (around 1.5 gigabytes))
- A mechanism to re-package the Daisy software (I'd
suggest NSIS http://nsis.sourceforge.net/site/index.php)
- A mechanism to regenerate your daisy directory
structure from the master Daisy FTP server (optional), (I'd suggest FlashFXP
http://www.flashfxp.com/)
- ?
Setup:
[FTP Server]
Install the ftp service on your local Daisy server. Build a user account that all the Daisy
clients will use to access the directory structure (username and password will
be transmitted in cleartext). Make
sure the account is restricted to READ ONLY for the intended directory
structure. Make sure that more
than one user with this account can log in at the same time!
Directory
structure format
Daisy\
(entry point for client)
approved
\ (where approved hotfixes go)
exc2k\
(specific folders for each MS product to patch)
...
xptpc\
(see daisy.ini for the correct mappings)
disapproved\
(not currently used)
holding\
(where hotfixes go for testing)
uninstall\
(not currently used)
hint!:
Using a tool like FlashFXP you can easily define a
scheduled command to update this directory structure from the master Daisy ftp
server, unless you want to add hotfixes manually. Be careful of overwriting the daisy_ini.new file you've
customized (see next section)
[INI editing]
In the approved folder on the ftp server is a filed
called daisy_ini.new. This file
should be edited to direct the Daisy clients to your local ftp server. You'll want to modify:
[Main]
host
= the dns for your ftp server
port
= port ftp server is listening at (normally 21)
userid
= the username for the client to use
password
= the password for the client to use
You
probably won't need to touch anything else (unless you are hosting the XML cab
file locally as well). The .new
file is copied to the Daisy client upon its initialization cycle and renamed to
daisy.ini, this file is used for all subsequent operations. It is downloaded EVERY time Daisy is
run.
Be sure to watch for the file changing on the Master
Daisy ftp server (currently jook.ais-servers.vt.edu) . Changes to the file need to be mirrored
to your local file (except for those you've specifically customized, of
course).
You should also make these changes to the daisy.ini file
that is located in the client\bin directory. Download the daisy package, edit the file to customize your
settings, then repackage it for distribution internally. The first time Daisy is run after the
install, it will download the daisy_ini.new from your local ftp server and
continue on from there.
[Adding hotfixes]
If you wish to add hotfixes manually, instead of simply
synching the approved folder with the master Daisy ftp server, you need to do
the following.
When a new MS patch comes out, follow the MS web links
and download the hotfix for each version of the OS or application. Put these hotfixes in their unique
folders under the holding directory.
Discover what command line switches are needed for the hotfixes to run
A) unattended, B) quiet, and C)
without rebooting. Next make sure
the following files are in the same directory as the hotfix:
Do_md5.exe
Md5.dll
Wbdda34i.dll
Hint!:
These files can be ftp'ed from the master Daisy ftp
server under the holding\w2ks directory.
Create a text file with the EXACT same name as the
hotfix, except for the extension, which should be .cls
Edit the file and add the command line switches on the
first line, save and close the file.
Now run "do_md5.exe".
This will search the current directory for .cls files, find their
companion .exes and calculate the size and md5 checksum for each file. It will update the .cls files with this
information, so you will get as a results a .cls file that has:
Commandline
switches
Filesize
in bytes
Md5
checksum
For example:
For
a hotfix called "Windows2000-KB828749-x86-ENU.exe"
There
is a companion .cls file called "Windows2000-KB828749-x86-ENU.cls"
which contains the information:
/quiet /passive /norestart
336744
169-50-246-26-50-96-62-158-69-190-201-234-131-176-75-161-
When you've tested this hotfix to your satisfaction, move
both the .exe and .cls file into the corresponding folder under the approved
folder. This hotfix is now
"approved" and Daisy clients will be able to download the file.
[Errata]
There are no updates to this document.
[Questions or comments?]
Please email me.