一、pxe准备工作
简要描述一下pxe,它是一种C/S架构的网络模式,主要借助于DHCP和TFTP服务器工作。客户机通过DHCP服务器获取IP地址后,继而转入预先设定的TFTP服务器,读取指定引导文件,而后进入操作系统开始工作。早期是运用于网络模式下无盘的工作站,现阶段pxe主要用来网络环境下安装操作系统。所以在使用pxe的方式安装操作系统前,必须要有一台主机作为DHCP服务器和TFTP服务器,并且客户机的网卡要支持网络启动。我们知道,通过光盘安装操作系统主要是使用了anaconda程序作为引导程序,主要的程序文件是光盘里的isolinux/文件夹,我们在安装系统时所作的互动选择,全部会生成anacondar的一个配置文件kickstart。于是我们手动生成一个kickstart文件就可以让系统全自动安装系统了。kickstart和pxe相结合,于是我们就可以在网络环境下,实现一个系统的全自动安装了。pxe安装系统的技术主要应用于大匹量安装相同操作系统的工作。知道了这些我们就可以开始实验了!
二、pxe安装Linux
前言,为了方便实验,我们须把虚拟机的网络通道改成一个小众通道。
1、配置dhcp、tftp服务器
1.1、安装dhcp、tftp服器
yum -y install dhcp xinetd tftp-server tftp #dhcp : dhcp服务器软件 #xinetd: 用于管理 tftp服务器 #tftp-server: tftp服务器端软件 #tftp: tftp客户端,用于测试tftp服务器
1.2、架设DHCP服务器,主机IP必须要设为静态的,配置一下IP地址。
1.3、配置dhcp服务器
dhcp服务器的配置文件为/etc/dhcp/dhcpd.conf,我们在配置文件中新加一个网络配置。
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.120 192.168.1.200; option routers 192.168.1.1; next-server 192.168.1.100; filename "pxelinux.0"; }
range表示分配IP地址的范围,option routers表示路由地址,next-server为tftp服务器的地址,filename是pxe的引导文件,该文件位于tftp服务器内。
1.4、启动dhcp服务
1.5、配置tftp服务器
安装完成后直接开启服务就行了
chkconfig tftp on
开启服务时直接开启xinetd
service xinetd start
tftp服务器的目录为/var/lib/tftpboot,端口号为69
使用ss命令测试服务状态:
ss -unl | grep ":69"
2、配置web服务器作为yum源,用于安装软件
2.1、开启apache作为我们的web服务器,安装步骤不在此讨论。
2.2、挂载光盘
2.3、挂载光盘目录至web目录
mkdir /var/www/html/centos6 mount --bind /media/cdrom /var/www/html/centos6
3、给tftpboot目录准备文件
3.1、先准备pxelinux.0文件,pxelinux.0为syslinux自动生成,安装软件系统里就有该文件,pxelinux.0文件用于引导系统。
yum -y install syslinux cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
3.2、准备pxe专用的内核文件和initrd文件。
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
3.3、准备isolinux引导文件
cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg} /var/lib/tftpboot/
3.4、准备pxelinux的配置文件,也就是安装光盘的isolinux.cfg文件,pxelinux.0文件就是用来代替isolinux.bin的,所以配置文件不变。
mkdir /var/lib/tftpboot/pxelinux.cfg cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
4、准备kickstart配置文件
系统安装完成后/root目录会有一个anaconda-ks.cfg文件,此文件即为kickstart配置文件,可以以此为模板修改,也可根据红帽官方文档手动配置一份,或者使用system-config-kickstart来生成。system-config-kickstart需在linux中事先安装,软件须在xmanger环境下运行。使用win7下的Xmanager软件可支持linux下的此软件运行图形窗口。我们以/root/anaconda-ks.cfg作为模板,使用system-config-kickstart软件手动配置一份kickstart.cfg配置文件。
4.1、启动system-config-kickstart软件,并选择文件菜单导入/root/anaconda-ks.cfg配置文件。
4.2、选择http服务器地址
4.3、文件生成后保存到/var/www/html/目录下,取名为ks_sys.cfg。
#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install text # Use network installation url --url="http://192.168.1.110/centos6" repo --name="PXE_CentOS" --baseurl=http://192.168.1.110/centos6 --cost=100 # Root password rootpw --iscrypted $1$TMtSfRcT$2madFo6eDfIVuaBOh/NPe1 # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical firstboot --disable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux --disabled # Installation logging level logging --level=info # Reboot after installation reboot # System timezone timezone Asia/Shanghai # Network information network --bootproto=dhcp --device=eth0 --onboot=on # System bootloader configuration bootloader --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet" --location=mbr --driveorder="sda" # Partition clearing information clearpart --all initlabel zerombr # Disk partitioning information part /boot --fstype="ext4" --size=100 part / --fstype="ext4" --size=60000 part swap --fstype="swap" --size=2000 %post echo -e 'wubinary \nhttp://wubinary.blog.51cto.com\n' >> /etc/issue sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab [ ! -d /root/.ssh ] && mkdir /root/.ssh && chmod og=--- /root/.ssh # Set the hostname sed -i "s@HOSTNAME=.*@HOSTNAME=wunbinary.blog.51cto.com@g" /etc/sysconfig/networks %end %packages %include http://192.168.1.110/packages.inc %end
5、修改文件/var/lib/tftpboot/pxelinux.cfg/default,在第一个标签项后面加上kickstart配置文件路径。
6、接下来新建一个拟虚拟机,选择同一网络通道,系统会自动进入pxe安装程序引导系统自动安装。
总结:实际操作时还是需要重点研究kickstart.cgf配置文件要怎么写才能真正做到一次安装到位,永无后患!