summaryrefslogtreecommitdiffstats
path: root/bootconf.pod
blob: f2d41c1f3c5d141a47ad816fce3cadf7766dbfd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
=head1 NAME

bootconf - simple configuration of PXE boot + kickstart environments

=head1 SYNOPSIS

bootconf command [subcommand] [--arg1=] [--arg2=]

=head1 DESCRIPTION

Configuration of a boot server involves a lot of things.  Perhaps too many.  These items include a tftpd server, a dhcpd server, syslinux, and a lot of copying files around and creating other config files.  Bootconf makes these things simpler and more flexible.

bootconf requires root access.

=head1 INSTRUCTIONS

B<before you start...>

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<bootconf check>

This verifies that everything you need to set up is properly set up.
This will mention any missing services and obvious configuration errors.
Correct any problems reported, then run check until there are none.

Of particular note:  The kernel_opts field in /etc/bootconf.conf is the default kernel options list for all netbooting systems.  It can be overriden by distro, group, or system specific settings, though the defaults are probably good enough for most administrators.

B<bootconf distro add --name=distro_name --kernel=path --initrd=path [--kopts="string"]>

Defines a distribution as a matched pair of a kernel and an initrd, and 
gives it a name.  This could be 'fc5-i386' or 'foosball_rocks', it's your name. Kernel options are inherited from the kernel_opts parameter in /etc/bootconf.conf, though you can override some or all of them.

B<bootconf group  add --name=group_name --distro=distro_name [--kickstart=url] [--kopts="string"]>

Defines a provisioning group, which is a distro (you did define a distro, right?) and optionally a kickstart.  Kickstarts are served up by URLs, so these need to be HTTP, NFS, or FTP URLs that point to a kickstart file.  If you don't want a kickstart, leave that parameter out.  Kernel options are inherited from the distro, but you can optionally override some or all of them.

B<bootconf system add --name=ip|mac|hostname --group=group_name [--kopts="string"]>

Defines a system, which is a representation of any netbootable system.  A system can't have a free form name, it has to be a hostname that resolves to an IP, a MAC address, or an actual IP.  Partial IP's (as in whole subnets) may be supported later.  The group parameter is the group name you used with "group add", that is, what group the system belongs to.  Kernel options are inherited from the group, and you probably don't want to override them, but you can override some or all of them.

B<bootconf distro list>

Gives a list of distributions that are currently configured.  

B<bootconf group list>

Gives a list of all of the groups in a system that are currently configured.

B<bootconf system list>

Gives a list of the sytems that are currently configured.

B<bootconf distro remove --name=distro_name>

Deletes a distro from the stored configuration.  You can't delete a distro if any groups reference that distro, you'd have to delete all of the systems using that distro first.   Deleting a distro just means that you no longer want it configured for booting, it does not delete any files.

B<bootconf group remove --name=group_name>

Deletes a group from the stored configuration.   You can't delete a group if any systems reference it.  Does not actually delete any kickstart files.

B<bootconf system remove --name=system_name>

Deletes a system from the stored configuration.  You can always delete a system.

B<bootconf sync [--dryrun]>

Applies the stored configuration to the system.  If you have any configuration errors, bootconf sync will ask you to run 'bootconf check' and fix them first.  

Usage of the dryrun option will show you the pending changes without actually making them.

=head1 EXAMPLE

B<bootconf check>

B<bootconf distro add --name=rhel4u3 --kernel=/dir1/vmlinuz --initrd=/dir1/initrd.img>

B<bootconf distro add --name=fc5 --kernel=/dir2/vmlinuz --initrd=/dir2/initrd.img>

B<bootconf distro list>

B<bootconf group add --name=fc5webservers --distro=fc5-i386 --kickstart=http://192.168.1.10/blah/fc5-webservers.ks --kopts="customization=blah">

B<bootconf group add --name=rhel4u3dbservers --distro=rhel4u3 --kickstart=http://192.168.1.10/blah/rhel4u3-dbservers.ks>

B<bootconf group list>

B<bootconf system add --name=AA:BB:CC:DD:EE:FF --group=fc5-webservers>

B<bootconf system add --name=AA:BB:CC:DD:EE:FE --group=rhel4u3-dbservers>

B<bootconf system list>

B<bootconf sync --dryrun>

B<bootconf sync>

=head1 CONFIGURATION_FILES

bootconf uses /etc/bootconf.conf to store basic settings and /var/bootconf/bootconf.conf for it's internal state.  

After editing /etc/bootconf.conf, run 'bootconf check' againt o 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.

=head1 BUGS

It's a new product, there could be one.  Somewhere.

=head1 EXIT_STATUS

bootconf returns a zero for success and non-zero for failure.

=head1 AUTHOR

Michael DeHaan <mdehaan@redhat.com>