=head1 NAME bootconf is a command line tool for configuration of bare-metal PXE and Xen provisioning servers. It is also accessible as a Python library. =head1 SYNOPSIS bootconf command [subcommand] [--arg1=] [--arg2=] =head1 DESCRIPTION Configuration of a PXE boot server involves setting up a tftpd server, a dhcpd server, syslinux, and creating semi-complex configuration file trees. Bootconf makes these things faster, simpler, and more flexible. It also does the same things for provisioning Xen as it does for PXE -- allowing the same repository to deploy PXE and Xen while remaining fairly agnostic to the differences between them. The client-side tool for xen is xen-net-install. =head1 INSTRUCTIONS FOR PXE B First install dhcpd, tftpd, and syslinux. You'll also need FTP, HTTP, or NFS to serve kickstarts (if you want kickstarts).Finally, you'll also have to edit dhcpd.conf for your particular DHCP environment. yum install dhcp tftp-server syslinux ... vi /etc/dhcpd.conf B This verifies that prerequisites are properly installed and configured. Any problems should be corrected, except unless the DHCP server is on another machine, in which case those errors can be ignored. B --kernel= --initrd= [--kopts=]> Defines a distribution. Minimally, this is a matched set of an initrd and a kernel that has a name, such as 'fc5-i386' or 'rhel4-x86_64'. Here you can also override and extend the default kernel options ('kopts') specified in /etc/bootconf.conf (kernel options are a comma seperated list of key=value pairs). B [--kickstart=] [--kopts=] [--xen-name=] [--xen-file-size=] [--xen-ram=] [--xen-mac= [--xen-paravirt=true|false] Defines a provisioning profile, which is a distro, some other optional parameters, and a name for the profile. Almost always you will want to specify a kickstart file. For Xen parameters, xen-net-install may interpret some parameters as hints, not absolutes, if it has to resolve conflicts. All of these Xen parameters are optional, though as many as possible should be specified if you don't want to risk xen-net-install's defaults. B --profile= [--kopts=]> Correlates a system name (an IP, hostname, or MAC address of a bare-metal system or a Xen dom0) with a PXE profile to be deployed to the system. For Xen, system configurations are *not* relevant -- xen-net-install run on the dom0 decides what profiles will be installed. =head1 LIST OPERATIONS B B B These commands list the current configuration. B> Trace shows what is configured to deploy to a certain system =head1 DELETING ENTRIES B> B> B> =head1 APPLYING CONFIGURATIONS B Configurations are saved in /var/bootconf/bootconf.conf and are not applied until 'bootconf sync' is run. A '--dryrun' option is available for the paranoid. =head1 PXE EXAMPLE It is easier to understand bootconf once having gone through some examples. B B B B B B B B =head1 XEN EXAMPLE TBA =head1 CONFIGURATION FILES The current bootconf configuration is kept in /var/bootconf/bootconf.conf. The file is reasonably-human editable YAML. Global settings are in /etc/bootconf.conf. After editing /etc/bootconf.conf, run 'bootconf check' to ensure that no errors were introduced. If you happen to screw up /var/bootconf/bootconf.conf or /etc/bootconf.conf, you can delete them and they will be recreated. No changes are ever applied to the provisioning state unless 'bootconf sync' is run. =head1 EXIT_STATUS bootconf returns a zero for success and non-zero for failure. =head1 AUTHOR Michael DeHaan