基于PXE实现全自动安装Linux

1、pxe准备工做
html

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


2、pxe安装Linuxweb

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

wKioL1McZMazM0XMAAJcMfj2-mc706.jpg


一、配置dhcp、tftp服务器centos

1.一、安装dhcp、tftp服器bash

yum -y install dhcp xinetd tftp-server tftp
#dhcp : dhcp服务器软件
#xinetd: 用于管理 tftp服务器
#tftp-server: tftp服务器端软件
#tftp: tftp客户端,用于测试tftp服务器


1.二、架设DHCP服务器,主机IP必需要设为静态的,配置一下IP地址。服务器

wKiom1McalyBfVYVAACedn3vieI295.jpg


1.三、配置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服务器内。
app


1.四、启动dhcp服务

wKiom1McayfR_LWQAABAWMkNz2E398.jpg


1.五、配置tftp服务器

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

chkconfig tftp on

开启服务时直接开启xinetd

service xinetd start

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

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

ss -unl | grep ":69"

wKiom1McbU2z9LPFAABAPcN2nyw605.jpg


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

2.一、开启apache做为咱们的web服务器,安装步骤不在此讨论。

wKiom1Mcbs_wfUkAAABLagtvBj0141.jpg


2.二、挂载光盘

wKioL1McbwnSb1TbAAFGAfXEQlE189.jpg


2.三、挂载光盘目录至web目录

mkdir /var/www/html/centos6
mount --bind /media/cdrom /var/www/html/centos6


三、给tftpboot目录准备文件

3.一、先准备pxelinux.0文件,pxelinux.0为syslinux自动生成,安装软件系统里就有该文件,pxelinux.0文件用于引导系统。

yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/


3.二、准备pxe专用的内核文件和initrd文件。

cp /media/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/


3.三、准备isolinux引导文件

cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg} /var/lib/tftpboot/


3.四、准备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


四、准备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.一、启动system-config-kickstart软件,并选择文件菜单导入/root/anaconda-ks.cfg配置文件。

wKioL1Mcdw-wrMznAALu30T6SW4645.jpg


4.二、选择http服务器地址

wKiom1Mcd3XA8HCgAAH94I5t2WM036.jpg


4.三、文件生成后保存到/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

五、修改文件/var/lib/tftpboot/pxelinux.cfg/default,在第一个标签项后面加上kickstart配置文件路径。

wKiom1McnK6RcCcWAACvCA5EOLs517.jpg


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

wKioL1McnZXRWFGSAAM4gyq_TQI951.jpg


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

相关文章
相关标签/搜索