基于pxe技术实现linux自动安装原理,基于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

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

0818b9ca8b590ca3270a3433284dd417.png

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

0818b9ca8b590ca3270a3433284dd417.png

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

0818b9ca8b590ca3270a3433284dd417.png

1.5、配置tftp服务器

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

chkconfig tftp on

开启服务时直接开启xinetd

service xinetd start

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

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

ss -unl | grep ":69"

0818b9ca8b590ca3270a3433284dd417.png

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

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

0818b9ca8b590ca3270a3433284dd417.png

2.2、挂载光盘

0818b9ca8b590ca3270a3433284dd417.png

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

0818b9ca8b590ca3270a3433284dd417.png

4.2、选择http服务器地址

0818b9ca8b590ca3270a3433284dd417.png

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

0818b9ca8b590ca3270a3433284dd417.png

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

0818b9ca8b590ca3270a3433284dd417.png

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值