pxe+kickstart多系统安装

XE技术与RPL技术不同之处为RPL是静态路由,PXE是动态路由。RPL是根据网卡上的ID号加上其他记录组成的一个Frame(帧)向服务器发出请求。而服务器中已有这个ID数据,匹配成功则进行远程启动。PXE则是根据服务器端收到的工件站MAC地址,使用DHCP服务为这个MAC地址指定个IP地址。每次启动可能同一台工作站有与上次启动有不同的IP,即动态分配地址。下以客户端引导过程说明PXE的原理。

(1)客户端开机后,PXE BootROM(自启动芯片)获得控制权之前执行自我测试,然后以广播形式发出一个请求FIND帧。

(2)如果服务器收到客户端所送出的要求,就会送回DHCP回应,包括用户端的IP地址、预设通信通道,以及开机映像文件;否则服务器会忽略这个要求。

(3)客户端收到服务器发回的响应后则会回应一个帧,以请求传送启动所需文件,并把自己的MAC地址写到服务器端的Netnames.db文件中。

(4)将有更多的消息在客户端与服务器之间应答,用于决定启动参数。BootROM由TFTP通信协议从服务器下载开机映像文档。客户端使用TFTP协议接收启动文件后,将控制权转交启动块以引导操作系统,完成远程启动。


KickStart概念介绍:

KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。


KickStart流程:


大体流程:DHCP(获取IP,寻找TFTP)>TFTP(交换获取开机启动文件 /tftpboot即此文件夹)>HTTP(加载安装文件)>本地安装

TFTP介绍:

Default:用在于tftp建立传输入协议后会去tftpboot里找文件,啥都找不着之后就会找default。

tftp-server :这个是用来传送引导文件的,

Initrd.img/vmlinux: 看用来安装前的一些工作。但tftp是用来传输这些文件的协议。


服务相关作用:

Dhcpd: 分发IP地址。

Tftpd: 分发启动文件安装。

Httpd:分发系统文件安装。


【单系统安装】

【安装过程】

1、关闭了selinux iptables

vim /etc/sysconfig/selinux

更改成 SELINUX=disabled

service iptables stop

chkconfig iptables off


二、配置yum源以及用yum安装

yum install -y httpd* tftp-server-* xinetd-* system-config-kickstart-* syslinux dhcp*

挂载Linxu iso镜像

mount /dev/cdrom   /mnt

cp -rf   /mnt/*   /var/www/html/


三、配置tftp加载文件


开机启动:

vi /etc/xinetd.d/tftp

disable                 = no

#disable的直由yes变为no


加载FTP文件:

cd /tftpboot/ && cp /usr/share/syslinux/pxelinux.0 /tftpboot

复制pxelinux.0文件至/tftpboot目录下,该文件由syslinux软件包提供,用来pxe启动linux使用


cp /var/www/html/images/pxeboot/initrd.img   /tftpboot

cp /var/www/html/images/pxeboot/vmlinuz   /tftpboot

mkdir pxelinux.cfg

cp /var/www/html/isolinux/isolinux.cfg   /tftpboot/default


四、配置dhcp文件

vim /etc/dhcpd.conf

ddns-update-style interim;

ignore client-updates;

subnet 192.168.1.0 netmask 255.255.255.0 {

option routers 192.168.1.1;

option subnet-mask 255.255.255.0;

range dynamic-bootp 192.168.1.100 192.168.1.250;

next-server 192.168.1.18;  

filename "pxelinux.0";

allow booting;

allow bootp;

}


【五】

vim /tftpboot/pxelinux.cfg/default

default linux

prompt 0

timeout 10

display boot.msg

F1 boot.msg

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

label linux

 kernel vmlinuz

 append initrd=initrd.img ks=http://192.168.1.19/ks.cfg

label text

 kernel vmlinuz

 append initrd=initrd.img text

label ks

 kernel vmlinuz

 append ks initrd=initrd.img

label local

 localboot 1

label memtest86

 kernel memtest

 append -


####

default linux   --默认从label linux标注的启动

prompt 0    --不可以对多个标签进行选择

timeout 10  10s

display boot.msg

【vim /var/www/html/ks.cfg】

install

url --url http://192.168.1.19/

lang zh_CN.UTF-8

langsupport --default=zh_CN.UTF-8 zh_HK.UTF-8 zh_CN.UTF-8 zh_SG.UTF-8 zh_TW.UTF-8 en_US.UTF-8

keyboard us

skipx

#network --onboot yes --bootproto dhcp

network --device eth0 --onboot yes --bootproto dhcp

#rootpw --iscrypted $1$5fLE/BN7$e6y2u.SLxxuwvil8FzbsC/

rootpw 123456

firewall --enabled --port=161:udp --ssh --http

firstboot --disable

authconfig --enableshadow --enablemd5

selinux --enforcing

services --disabled avahi-daemon,firstboot,gpm,mcstransd,mdmonitor,messagebus,readahead_early,readahead_later,restorecond,smartd,xfs,bluetooth,autofs,cups,haldaemon,hidd,kudzu,n

etfs,nfslock,pcscd,portmap,rawdevices,rpcgssd,rpcidmapd,sendmail,yum-updatesd,pand,netplugd --enabled ntpd

timezone Asia/Shanghai

bootloader --location=mbr --driveorder=sda --append="rhgb quiet" --md5pass=$1$tS85h66O$IQqRnrLCh8kd93FqpUybf0

reboot

zerombr


clearpart --all

part /boot --fstype ext3 --size=100 --ondisk=sda

part pv.4 --size=0 --grow --ondisk=sda

volgroup VolGroup00 --pesize=32768 pv.4

logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow

logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=4024


%packages

@editors

@text-internet

@chinese-support

@core

@base

vnc-server

twm

screen

sysstat

keyutils

trousers

fipscheck

device-mapper-multipath

ntp

-rwho

-rusers

yum-fastestmirror

【客户端】启动项改为从网卡启动


【多系统安装】

前面几步不变,关键是这几步需要修改下

把每个光盘中的vmlinuz和initrd.img复制到tffpboot下的每个目录下

[root@rhel5 ~]# ls /tftpboot/rhel5.4_64/  

initrd.img  vmlinuz  

[root@rhel5 ~]# ls /tftpboot/rhel6_64/  

initrd.img  vmlinuz  

[root@rhel5 ~]# ls /tftpboot/centos4.8_64/  

initrd.img  vmlinuz


[root@localhost tftpboot]# ls

boot.msg  centos5.4  centos6.3  initrd.img  pxelinux.0  pxelinux.cfg

[root@localhost tftpboot]# cat pxelinux.cfg/default

default linux6

prompt 0

timeout 10

display boot.msg

F1 boot.msg

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

label linux5

 kernel centos5.4/vmlinuz

 append initrd=centos5.4/initrd.img ks=http://192.168.1.18/ks5_4.cfg noipv6


label linux6

 kernel centos6.3/vmlinuz

 append initrd=centos6.3/initrd.img ks=http://192.168.1.18/ks6_3.cfg noipv6

label text

 kernel vmlinuz

 append initrd=initrd.img text

label ks

 kernel vmlinuz

 append ks initrd=initrd.img

label local

 localboot 1

label memtest86

 kernel memtest

 append -


[root@localhost tftpboot]# cat boot.msg

linux5 --> 5.3

linux6 --> 6.4


然后对每个系统的ks进行修改,只要修改iso镜像的路径就行了

[root@localhost html]# ll

total 20

drwxr-xr-x 4 root root 4096 May  8 18:47 centos

-rw-r--r-- 1 root root 1481 May  8 21:00 ks5_4.cfg

-rw-r--r-- 1 root root 1607 May  8 21:35 ks6_3.cfg

drwxr-xr-x 8 root root 4096 May 23 17:18 rhel

-rw-r--r-- 1 root root 1468 May 23 19:48 rhel.cfg

[root@localhost html]# ll centos/

total 8

drwxr-xr-x 7 root root 4096 May  8 17:52 centos5.4

drwxr-xr-x 7 root root 4096 May  8 18:25 centos6.3


[root@localhost html]# cat ks5_4.cfg

install

url --url http://192.168.1.18/centos/centos5.4


[root@localhost html]# cat ks6_3.cfg

install

url --url http://192.168.1.18/centos/centos6.3

.....


你可能感兴趣的:(kickstart)