PXE+Kickstart无人值守安装

PXE

PXE (preboot execute environment,预启动执行环境),工作于Client/Server(C/S)的网络模式,支持工作通过远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol) 或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,并由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。

PXE工作流程:

1.PXE Client 设置PXE以启动项启动,Client向网络中DHCP服务器获取IP

2.DHCP服务器返回分配给Client端IP和PXE文件的位置

3.PXE Client 向网络中TFTP获取pxelinux.0文件

4.PXE Client获取pxelinux.0文件后执行该文件

5.从服务器中加载内核和文件系统

6.进入安装界面

配置PXE服务(以CentOS7为例):

1.安装TFTP服务

(1) 安装所需的软件包

yum -y install syslinux xinetd tftp-server   #syslinux 是一个强大的引导加载程序;xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器;tftp-server TFTP服务器

mkdir /var/lib/tftpboot/pxelinux.cfg #启动引导目录

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot #将syslinux引导文件复制到TFTP服务器目录上

(2)启动TFTP服务器

vi /etc/xinetd.d/tftp

修改disable那一行

disable = no

systemctl start xinetd

systemctl enable xinetd

2.配置DHCP服务器

(1)安装DHCP服务器

yum -y install dhcp

vi /etc/dhcp/dhcpd.conf

subnet 192.168.3.0 netmask 255.255.255.0{#子网网段,掩码

range 192.168.3.2 192.168.3.253; #DHCP地址范围

option subnet-mask 255.255.255.0;#子网掩码

next-server 192.168.3.254;#TFTP服务器IP,也就是本机IP地址

filename "pxelinux.0";#pxelinux.0 syslinux引导文件

default-lease-time 21600;#客户未指定租用时间,用此租用时间

max-lease-time 43200;#最长租用时间

}

systemctl start dhcpd

systemctl enable dhcpd

3.网络镜像安装

mkdir -p /var/pxe/centos7#设置镜像挂载点

mkdir /var/lib/tftpboot/centos7#设置PXE启动引导目录

mount -t iso9660 -o loop /mnt/iso/CentOS7.iso /var/pxe/centos7#挂载镜像至镜像挂载点

cp /var/pxe/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7#从镜像中拷贝内核文件至启动引导目录

cp /var/pxe/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/centos7#从镜像中拷贝initrd.img至启动引导目录

cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/#设置启动安装界面类型

vi /var/lib/tftpboot/pxelinux,cfg/default#设置启动安装界面类型

#create new

timeout 100 #安装界面停留时间

default menu.c32#定义安装界面类型

 

menu title ########## PXE Boot Menu ##########

label 1

  menu label ^ 1) Install CentOS 7#定义执行动作

  kernel centos7/vmlinuz#定义内核文件位置

  append initrd=centos7/initrd.img method=http://192.168.3.254/ks/centos7-ks.cfg devfs=nomount#定义加载initrd.img和所在位置 method表示ks安装脚本的路径

label 2

  menu label ^2) Boot from local drive

  localboot

4.配置HTTP服务

yum -y install httpd#安装httpd服务

rm -rf /etc/httpd/conf.d/welcome.conf#删除欢迎界面配置文件

vi /etc/httpd/conf/httpd.conf#配置httpd服务

修改

ServerName www.laochu.com:80#服务器域名设置

AllowOverride All

DirectoryIndex index.html index.cgi index.php#应用语言设置

以下配置文件中没有最后两行添加

ServerTokens Prod

KeepAlive On

vi /etc/httpd/conf.d/pxeboot.conf#创建HTTP加载别名

Alias /centos7 /var/pxe/centos7#设置HTTP别名

<Directory /var/pxe/centos7>

  Options Indexes FollowSymLinks

  Require ip 127.0.0.1 192.168.3.0/24#设置网段

</Directory>

systemctl start httpd

systemctl enable httpd

5.设置Kickstart脚本

(1)定义root密码

python -c 'import crypt,getpass;\

print(crypt.crypt(getpass.getpass(),\

crypt.mksalt(crypt.METHOD_SHA512)))'

Password:输入密码

XXXXXXXXXXXXXXXXXXXXXXXXX...............

mkdir /var/www/html/ks #设置ks目录

vi /var/www/html/ks/centos-ks.cfg

 

install

autostep

reboot

auth --enableshadow --passalgo=sha512

url --url=http://192.168.3.254/centos7/

ignoredisk --only-use=sda

keyboard us

lang en_US.UTF-8

network  --bootproto=dhcp --ipv6=auto --activate --hostname=localhost

rootpw --iscrypted XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....

timezone Asia/Shanghai --isUtc --nontp

bootloader --location=mbr --boot-drive=sda

zerombr clearpart --all --initlabel

part /boot --fstype="xfs" --ondisk=sda --size=500 part pv.10 --fstype="lvmpv" --ondisk=sda --size=51200 volgroup VolGroup --pesize=4096 pv.10 logvol /  --fstype="xfs" --size=20480 --name=root --vgname=VolGroup logvol swap --fstype="swap" --size=4096 --name=swap --vgname=VolGroup

%packages @core

%end

 

posted @ 2017-09-11 15:40  老褚  阅读(227)  评论(0编辑  收藏  举报