Registered: Jan 2005
Distribution: Solaris, Linux Fedora Core 6
I am not sure I understand your reply.
The method used in the url I referenced above will lead to the following sequence.
1. You boot the new machine and use whatever keystroke you need to enter the boot BIOS. This can be done from the keyboard or from a remote terminal server.
2. Set the "Enable PXE boot". (Depends on BIOS.) Do not save setting, just boot.
3. New machine will look for a PXE server.
4. New machine will connect to your PXE server.
5. PXE server will send a boot image which consists of an "Install Linux" CD image (A PXE format install image will be included on a distribution CD.) In addition, it will append the "ks=..." information to the boot image. You can specify how to load the kickstart file (http, ftp, nfs, etc.).
6. When the new server has retrieved the build image, The "ks=..." information will be placed into the line where you would have typed it in (for example, where you would otherwise have typed in "ks=floppy".) The kickstart file can be loaded from the PXE server by any of the supported methods -- http, ftp, nfs, etc. The kickstart file can specify how to load the build rpm's (http, ftp, nfs, etc.) to build the system. You do not need either an install cdrom or a floppy disk to be inserted into the new server.
Now, your job will be to come up with a utility to create a kickstart file and place it into a special directory on the PXE server with the correct name. (The PXE server knows the MAC address it is connected to and will search for a file name which has that MAC address embedded into it. There are several patterns PXE will recognize, see the url above.) There isn't any such thing I am aware of in the nature of a "general purpose already written for you" script to create the rest of the kickstart files. In every case I have worked with, the Corporation has standards of what it considers "Corporate Standard" packages which are installed on all servers, perhaps another group of packages that are installed conditionally, for example, if you are building a webserver you would load Apache, or if building a data base server, would load MySql, etc...
I have seen these utilities in the form of Java scripts, and perl scripts front ended by a webserver html form. Although I have not encountered one yet, it seems to me that this utility could be done quite in PHP5 as well.
Typically, to build a server, the engineer would bring up a web page, enter data like hostname, IP Address, MAC, netmask, default router, etc., then click a couple of radio buttons adding groups of predetermined packages depending on if it is a webserver, Data Base server, ldap server, firewall, or whatever. Then log into the new server via a remote console session, do a PXE boot, and the system builds itself. He/She does not even have to enter the room where the server is located.
The url above explains just about everything except for writing code automating the generation of a kickstart file. Without this code, you could generate a few template kickstart files. Manually edit one of the standard kickstart files changing the hostname, IP address, etc., and manually saving it to a file name with the correct MAC in the name, etc.
Third party software, which is often part of the "Corporate Standard" build can be done by inserting lines into the "post procedure" section. This can be used to download the product file, execute a build script, insert a license key, etc.
--- edit ---
In looking at your sample, your "ks=..." lines seem to indicate you are at least loading a kickstart from a remote server. This is good. Adding all the PXE stuff is add the "unattended" part. And I forgot to mention -- PXE relies on tftp, so your tftp port must be open through your network. Sometimes the old "Network Support" people kick at this...
Last edited by wpn146; 02-12-2007 at 05:58 PM.