基於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配置文件要怎麼寫才能真正作到一次安裝到位,永無後患!

相關文章
相關標籤/搜索