基于PXE实现全自动安装Linux

一、pxe准备工作

   简要描述一下pxe,它是一种C/S架构的网络模式,主要借助于DHCP和TFTP服务器工作。客户机通过DHCP服务器获取IP地址后,继而转入预先设定的TFTP服务器,读取指定引导文件,而后进入操作系统开始工作。早期是运用于网络模式下无盘的工作站,现阶段pxe主要用来网络环境下安装操作系统。所以在使用pxe的方式安装操作系统前,必须要有一台主机作为DHCP服务器和TFTP服务器,并且客户机的网卡要支持网络启动。我们知道,通过光盘安装操作系统主要是使用了anaconda程序作为引导程序,主要的程序文件是光盘里的isolinux/文件夹,我们在安装系统时所作的互动选择,全部会生成anacondar的一个配置文件kickstart。于是我们手动生成一个kickstart文件就可以让系统全自动安装系统了。kickstart和pxe相结合,于是我们就可以在网络环境下,实现一个系统的全自动安装了。pxe安装系统的技术主要应用于大匹量安装相同操作系统的工作。知道了这些我们就可以开始实验了!


二、pxe安装Linux

前言,为了方便实验,我们须把虚拟机的网络通道改成一个小众通道。

wKioL1McZMazM0XMAAJcMfj2-mc706.jpg


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地址。

wKiom1McalyBfVYVAACedn3vieI295.jpg


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服务

wKiom1McayfR_LWQAABAWMkNz2E398.jpg


1.5、配置tftp服务器

安装完成后直接开启服务就行了

chkconfig tftp on

开启服务时直接开启xinetd

service xinetd start

tftp服务器的目录为/var/lib/tftpboot,端口号为69

使用ss命令测试服务状态:

ss -unl | grep ":69"

wKiom1McbU2z9LPFAABAPcN2nyw605.jpg


2、配置web服务器作为yum源,用于安装软件

2.1、开启apache作为我们的web服务器,安装步骤不在此讨论。

wKiom1Mcbs_wfUkAAABLagtvBj0141.jpg


2.2、挂载光盘

wKioL1McbwnSb1TbAAFGAfXEQlE189.jpg


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配置文件。

wKioL1Mcdw-wrMznAALu30T6SW4645.jpg


4.2、选择http服务器地址

wKiom1Mcd3XA8HCgAAH94I5t2WM036.jpg


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配置文件路径。

wKiom1McnK6RcCcWAACvCA5EOLs517.jpg


6、接下来新建一个拟虚拟机,选择同一网络通道,系统会自动进入pxe安装程序引导系统自动安装。

wKioL1McnZXRWFGSAAM4gyq_TQI951.jpg


总结:实际操作时还是需要重点研究kickstart.cgf配置文件要怎么写才能真正做到一次安装到位,永无后患!




你可能感兴趣的:(linux,pxe,kickstart)