Objective: How to automate installation/Resuce(PXE using kickstart) CentOS.
I have already discussed about the kickstart installation in my previous post CentOS kickstart
In my earlier post, I had generated kickstart file then boot from CD/DVD where I pointed the location of kickstart file either from HTTP/FTP/NFS method. But in this post I have used the same kickstart file to NIC of the destination server which acts like a boot device, eliminating CD/DVD.
Environment: RHEL/CentOS 6.3 (i386)
What is PXE ?
Preboot eXecution Environment is an environment to boot computers using a network interface independently of data storage devices (like hard disks) or installed operating systems.
PXE works with NIC of the system making it function like a boot device. PXE enabled NIC of the client sends out broadcast request to DHCP server, which returns with the IP address of the client along with the address of the TFTP server, and the location of the boot files on the TFTP server.
In detail :
1. Destination server is booted
2. NIC of the destination triggers DHCP request.
3. DHCP server intercepts the request and responds with the standard information(IP, subnet, gateway, etc). In addition it provides information about the location of a TFTP server and boot image(pxelinux.0)
4. When client receives this information, it contacts TFTP server for obtaining the boot image.
5. TFTP server sends the boot image(pxelinux.0) and client executes it.
6. By default, boot image searches the pxelinux.cfg directory in TFTP server.
7. The destination server downloads all the files it needs(kernel and root file system), and then loads them.
Make sure below packages are installed and services are started. [ Skipping package installation ]
1. tftp-server
2. syslinux
3. dhcp
#grep disable /etc/xinetd.d/tftp
disable = no
#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
#cp /usr/share/syslinux/memdisk /var/lib/tftpboot/
#cp /usr/share/syslinux/mboot.c32 /var/lib/tftpboot/
#cp /usr/share/syslinux/chain.c32 /var/lib/tftpboot/
#mkdir /var/lib/tftpboot/pxelinux.cfg
#mkdir -p /var/lib/tftpboot/images/centos/i386/6.3
#cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/images/centos/i386/6.3
#cp /var/ftp/pub/isolinux/vmlinuz /var/lib/tftpboot/images/centos/i386/6.3
DHCP configuration file is as below..
# cat /etc/dhcp/dhcpd.conf
option domain-name "localhost.com";
option domain-name-servers hostname.localhost.com;
default-lease-time 600;
max-lease-time 7200;
authoritative;
#################The followings are mandatory to boot from PXE ###################
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
next-server 192.168.156.107;
filename "/pxelinux.0";
###############################################
subnet 192.168.156.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.156.151 192.168.156.254;
option broadcast-address 192.168.156.255;
option routers 192.168.156.1;
}
#
# cat /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 0
timeout 30
MENU TITLE PXE Menu
LABEL CentsOS_6.3_i386
MENU LABEL CentOS 6.3 i386
KERNEL images/centos/i386/6.3/vmlinuz
APPEND initrd=images/centos/i386/6.3/initrd.img ks=ftp://<IPaddress of kickstart file server>/pub/ks.cfg ramdisk_size=100000
LABEL CentsOS_6.3_i386_Rescue
MENU LABEL CentOS 6.3 i386_Rescue
KERNEL images/centos/i386/6.3/vmlinuz
APPEND initrd=images/centos/i386/6.3/initrd.img ramdisk_size=100000 repo=ftp://<IPaddress of kickstart file server>/pub lang=en_US.UTF-8 keymap=us rescue
This completes all your configuration, before this works make sure all your services are running and persistant.
#service xinetd start
#chkconfig xinetd on
#service dhcpd start
#chkconfig dhcpd on
you need to check in what method are you trying to kickstart your installation based on which your services should be up.
#service vsftpd/httpd/nfs start
#chkconfig vsftpd/httpd/nfs on
NOTE: Make sure your first boot device is network.
I have chosen to change the password in the rescue environment as a test and is successful.
Snapshots:
No comments:
Post a Comment