mNo edit summary |
Immanetize (talk | contribs) m (RFC1918 compliance) |
||
Line 22: | Line 22: | ||
Fedora Core 6 includes a graphical utility (system-config-netboot) which helps ease initial configuration. | Fedora Core 6 includes a graphical utility (system-config-netboot) which helps ease initial configuration. | ||
For this tutorial, the install network is 172. | For this tutorial, the install network is 172.16.0.0/24, the server IP adress is 172.16.0.5, the gateway and the name (dns) server are 172.16.0.1. | ||
=== Requirements === | === Requirements === | ||
Line 34: | Line 34: | ||
=== Network === | === Network === | ||
The server needs a static IP address (172. | The server needs a static IP address (172.16.0.5). Edit the file <code>/etc/sysconfig/network-scripts/ifcfg-eth0</code> to look like this: | ||
<pre> | <pre> | ||
Line 41: | Line 41: | ||
ONBOOT=yes | ONBOOT=yes | ||
BOOTPROTO=static | BOOTPROTO=static | ||
BROADCAST=172. | BROADCAST=172.16.0.255 | ||
IPADDR=172. | IPADDR=172.16.0.5 | ||
NETMASK=255.255.255.0 | NETMASK=255.255.255.0 | ||
NETWORK=172. | NETWORK=172.16.0.0 | ||
</pre> | </pre> | ||
Line 57: | Line 57: | ||
ignore client-updates; | ignore client-updates; | ||
subnet 172. | subnet 172.16.0.0 netmask 255.255.255.0 { | ||
option routers 172. | option routers 172.16.0.1; | ||
option subnet-mask 255.255.255.0; | option subnet-mask 255.255.255.0; | ||
option domain-name "pxe-server.local.localdomain.net"; | option domain-name "pxe-server.local.localdomain.net"; | ||
option domain-name-servers 172. | option domain-name-servers 172.16.0.1; | ||
option ntp-servers 172. | option ntp-servers 172.16.0.2; | ||
range dynamic-bootp 172. | range dynamic-bootp 172.16.0.50 172.16.0.100; | ||
default-lease-time 21600; | default-lease-time 21600; | ||
max-lease-time 43200; | max-lease-time 43200; | ||
Line 76: | Line 76: | ||
class "pxeclients" { | class "pxeclients" { | ||
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; | match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; | ||
next-server 172. | next-server 172.16.0.5; | ||
filename "linux-install/pxelinux.0"; | filename "linux-install/pxelinux.0"; | ||
} | } | ||
Line 127: | Line 127: | ||
<pre> | <pre> | ||
cat <<END_ENTRY >> /etc/exports | cat <<END_ENTRY >> /etc/exports | ||
/mnt/export 172. | /mnt/export 172.16.0.0/24(ro) | ||
END_ENTRY | END_ENTRY | ||
</pre> | </pre> | ||
Line 135: | Line 135: | ||
<pre> | <pre> | ||
cat /etc/exports | cat /etc/exports | ||
/mnt/export 172. | /mnt/export 172.16.0.0/24(ro) | ||
</pre> | </pre> | ||
Line 170: | Line 170: | ||
# '''Select protocol for installation:''' -- Choose ''NFS'' for this tutorial | # '''Select protocol for installation:''' -- Choose ''NFS'' for this tutorial | ||
# '''Kickstart:''' -- Point to a kickstart file. You can make a kickstart file with <code>system-config-kickstart</code> to automate the installation process. | # '''Kickstart:''' -- Point to a kickstart file. You can make a kickstart file with <code>system-config-kickstart</code> to automate the installation process. | ||
# '''Server IP Address:''' -- The IP address of your installation server -- <code>172. | # '''Server IP Address:''' -- The IP address of your installation server -- <code>172.16.0.5</code> for this tutorial | ||
# '''Location:''' The path to your install software; this tutorial uses <code>/FC6</code>. | # '''Location:''' The path to your install software; this tutorial uses <code>/FC6</code>. | ||
Line 214: | Line 214: | ||
Mar 17 17:58:00 pxe-server xinetd[28877] : Started working: 0 available services | Mar 17 17:58:00 pxe-server xinetd[28877] : Started working: 0 available services | ||
Mar 17 17:58:32 pxe-server dhcpd: DHCPDISCOVER from 55:44:33:22:11:00 via eth0 | Mar 17 17:58:32 pxe-server dhcpd: DHCPDISCOVER from 55:44:33:22:11:00 via eth0 | ||
Mar 17 17:58:33 pxe-server dhcpd: DHCPOFFER on 172. | Mar 17 17:58:33 pxe-server dhcpd: DHCPOFFER on 172.16.0.99 to 00:11:22:33:44:55 via eth0 | ||
Mar 17 17:58:36 pxe-server dhcpd: DHCPREQUEST for 172. | Mar 17 17:58:36 pxe-server dhcpd: DHCPREQUEST for 172.16.0.99 (172.16.0.5) from 00:11:22:33:44:55 via eth0 | ||
Mar 17 17:58:36 pxe-server dhcpd: DHCPACK on 172. | Mar 17 17:58:36 pxe-server dhcpd: DHCPACK on 172.16.0.99 to 55:44:33:22:11:00 via eth0 | ||
Mar 17 17:58:36 pxe-server in.tftpd[28881] : tftp: client does not accept options | Mar 17 17:58:36 pxe-server in.tftpd[28881] : tftp: client does not accept options | ||
</pre> | </pre> |
Latest revision as of 05:56, 29 August 2012
Documentation Summary: How to make a boot/network install server
Purpose: Ease deployment of Fedora Core in enterprise environments or install fests
Audience: IT, Ambassadors
Assumptions: The user understands at least basic network and TCP/IP configuration concepts.
Related Documents:
Lead Writer: NicolasCorrarello
Making a Network Install Server
Having a PXE network install server available on a network can help alleviate new installation workload on large and small networks by automating tasks that otherwise can require a fair amount of user input.
Fedora Core 6 includes a graphical utility (system-config-netboot) which helps ease initial configuration.
For this tutorial, the install network is 172.16.0.0/24, the server IP adress is 172.16.0.5, the gateway and the name (dns) server are 172.16.0.1.
Requirements
Some additional software packages (TFTP, DHCP, xinetd) are required, use yum
to install them.
yum install system-config-netboot dhcp tftp xinetd
Network
The server needs a static IP address (172.16.0.5). Edit the file /etc/sysconfig/network-scripts/ifcfg-eth0
to look like this:
TYPE=Ethernet DEVICE=eth0 ONBOOT=yes BOOTPROTO=static BROADCAST=172.16.0.255 IPADDR=172.16.0.5 NETMASK=255.255.255.0 NETWORK=172.16.0.0
DHCP Server
Edit /etc/dhcpd.conf
to look like this:
# # ddns-update-style none; ignore client-updates; subnet 172.16.0.0 netmask 255.255.255.0 { option routers 172.16.0.1; option subnet-mask 255.255.255.0; option domain-name "pxe-server.local.localdomain.net"; option domain-name-servers 172.16.0.1; option ntp-servers 172.16.0.2; range dynamic-bootp 172.16.0.50 172.16.0.100; default-lease-time 21600; max-lease-time 43200; } allow booting; allow bootp; class "pxeclients" { match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; next-server 172.16.0.5; filename "linux-install/pxelinux.0"; }
If different network parameters or additional configuration options are being used, replace the options shown here with the appropriate values.
Start the DHCP service:
service dhcpd start
NFS
Download the FC6 DVD ISO file, the SHA1SUM file, and the directory images /pxeboot
and put it in an NFS export.
To get the directory from the ISO file, mount the image as a loopback file system:
mount -o loop -t iso9660 /path/to/FC-6-i386-DVD.iso /media/loop mkdir /mnt/export/FC6/images cp -r /media/loop/images/pxeboot /mnt/export/FC6/images/
In this example, the path to the FC6 ISO file is /mnt/export/FC6
.
The result is a directory tree like this:
tree /mnt |-- export | |-- FC6 | | |-- FC-6-i386-DVD.iso | | |-- SHA1SUM | | |-- images | | | <code>-- pxeboot | | | |-- README | | | |-- TRANS.TBL | | | |-- initrd.img | | | <code>-- vmlinuz | | <code>-- ks.cfg
Next, /etc/exports
needs a new entry about the export directory:
cat <<END_ENTRY >> /etc/exports /mnt/export 172.16.0.0/24(ro) END_ENTRY
Now the file should look like this:
cat /etc/exports /mnt/export 172.16.0.0/24(ro)
Start the NFS service:
service nfs start
Netboot
Now start the system-config-netboot
utility. Using the graphical utility, start via System > Administration > Server Configuration > Network Boot Service. Then select Network Install:
File:Docs Drafts NetworkInstall netboot 01.png
Check the default paths and IP address, they will differ based on what IP settings were used in the above configuration files.
File:Docs Drafts NetworkInstall netboot 00.png
- Operating system identifier -- The name, for example FC6
- Description: -- A more detailed description of the installation source
- Select protocol for installation: -- Choose NFS for this tutorial
- Kickstart: -- Point to a kickstart file. You can make a kickstart file with
system-config-kickstart
to automate the installation process. - Server IP Address: -- The IP address of your installation server --
172.16.0.5
for this tutorial - Location: The path to your install software; this tutorial uses
/FC6
.
TFTP Server
Enable the TFTP server in xinetd
:
chkconfig tftp on
Start the xinetd
service
service xinetd start
Installation
Plug the target system(s) in to the network, choosing the option Booting from a network or Booting from onboard NIC. After the system has received an IP address, the boot process starts over PXE and a screen of choices appears:
- Boot from local harddisk
- Launch installation
This installs a system with Fedora Core 6 in usually less than a half-hour, but will vary based on system specifications and install options.
Monitoring
On the server you can control the work.
tail -f /var/log/messages
The output looks similar to this:
Mar 17 17:58:00 pxe-server xinetd[28877] : xinetd Version 2.3.14 started with libwrap loadavg labeled-networking options compiled in. Mar 17 17:58:00 pxe-server xinetd[28877] : Started working: 0 available services Mar 17 17:58:32 pxe-server dhcpd: DHCPDISCOVER from 55:44:33:22:11:00 via eth0 Mar 17 17:58:33 pxe-server dhcpd: DHCPOFFER on 172.16.0.99 to 00:11:22:33:44:55 via eth0 Mar 17 17:58:36 pxe-server dhcpd: DHCPREQUEST for 172.16.0.99 (172.16.0.5) from 00:11:22:33:44:55 via eth0 Mar 17 17:58:36 pxe-server dhcpd: DHCPACK on 172.16.0.99 to 55:44:33:22:11:00 via eth0 Mar 17 17:58:36 pxe-server in.tftpd[28881] : tftp: client does not accept options