When doing a provisioning job of a RedHat machine, you're really doing an automated HTTP install. If you ever do a RedHat install manually, once the stage1.img is loaded (core kernel essentials), you can select several install options. One is from local media (HD, CDRom), another is via FTP, still another is NFS, and finally there is via HTTP.
If you select HTTP or FTP, the first thing that happens (after you define your network parameters and configuration) is to define a site to get the next part of the installation set from. In the case of provisioning, it's on the local network someplace. The stage1.img knows that if it is a network install, it has to retrieve the netstage2.img file before it can do anything else. The netstage2.img file is where all the magic happens. This file is responsible for the anaconda installer and reading the supplied kickstart file.
Right, but how does it know which specific filename to request from the HTTP server?
How would I add an extra RPM? If I add a new RPM to the list of files to download, anaconda says it cannot find it, even if it is there. How do I tell anaconda that the file IS there?
It knows based on entries in the kickstart file. In the PM console for your RH system package, check the box for 'Use Script for OS Component Selection'. The entries here allow for use of predefined groups, custom software groups, and standalone RPMs. For groups that are already defined the naming format is '@groupname'. For standalone RPMs, the naming format is 'rpm-name' without the versioning information.
So for example, Ethereal is called ethereal-0.9.13-4.i386.rpm, so we'll reference it as ethereal. So when I want to install Ethereal as part of my base RHAS3 install, my software group script may state the following:
See also this reference which will provide the same insight:
Indeed, but what if I copy a new RPM into the RPMS directory where all the RPMs are stored. If I add the name of that RPM, less the version number and anything more to the right, anaconda reports that it cannot find that file at the initialization of installation. Why?