CentOS 6下PXE+Kickstart无人值守安装操作系统

PXE的工作过程:
1.PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
2.DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;
3.PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
4.PXE Client 取得pxelinux.0 文件后之执行该文件;
5.根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;
6.进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;

系统环境:

  • 实验环境:VirtualBox5.0
  • 系统平台:CentOS release 6.7 (最小化安装)
  • 网络模式:Host Only
  • DHCP/TFTP/HTTP IP:192.168.55.101
  • SELINUX:disabled
  • 防火墙:关闭

一、服务器预配置

1.1 配置虚拟机联网方式

为了不影响已有网络DHCP的功能,我们使用Host Only的联网方式,在此需要新建一网卡,同时新网卡的DHCP功能需要禁用,宿主机IP使用192.168.55.1即可

服务器在联网方式上同时需要启用Adapter 1: NAT/Bridge(确保可以联外网)和Adapter2: Host only(提供DHCP和HTTP服务)两种方式.

1.2 配置静态IP

登录服务器后,设置eth1为静态IP。编辑/etc/sysconfig/network-scripts/ifcfg-eth1

BOOTPROTO=static
ONBOOT=yes
DEVICE=eth1
IPADDR=192.168.55.101
NETMASK=255.255.255.0
GATEWAY=192.168.55.1

1.3 启用eth1

ifdown eth1
ifup eth1

1.4 关闭Selinux和防火墙

setenforce 0
service iptables stop
chkconfig iptables off

1.5 修改YUM源为阿里云(可选)

yum install -y wget curl
curl https://git.oschina.net/pauldeng/scripts/raw/master/docker/aliyun-centos6-yum.sh | sh 

二、配置HTTP服务

2.1 安装HTTP服务

yum -y install httpd
rpm -qa|grep httpd

2.2 开启服务并设置开机启动

service httpd start
chkconfig httpd on

2.3 挂载ISO源

在虚拟机中选择好CentOS的安装源iso文件后执行以下操作

mkdir /media/CentOS
mount /dev/cdrom /media/CentOS

2.4 复制ISO源到/var/www/html

cp -r /media/CentOS/ /var/www/html/

三、配置DHCP服务

3.1安装DHCP服务

yum -y install dhcp

3.2 修改/etc/dhcp/dhcpd.conf 配置文件,内容如下

ddns-update-style interim; 
ignore client-updates;
filename "pxelinux.0";
next-server 192.168.55.101;
allow booting;
allow bootp;

subnet 192.168.55.0 netmask 255.255.255.0 {

        option routers                       192.168.55.1; 
        option subnet-mask              255.255.255.0;

        range dynamic-bootp 192.168.55.1 192.168.55.100; 
        default-lease-time 21600; 
        max-lease-time 43200;
}

3.3 修改/etc/sysconfig/dhcpd, 绑定DHCP服务到网卡

# Command line options here
DHCPDARGS=eth1

3.4 启动DHCP服务

service dhcpd start
chkconfig dhcpd on

四、配置TFTP

4.1 安装tftp-server

yum -y install tftp-server

4.2 启用tftp 服务

编辑/etc/xinetd.d/tftp

service tftp 
{ 
        socket_type             = dgram 
        protocol                = udp 
        wait                    = yes 
        user                    = root 
        server                  = /usr/sbin/in.tftpd 
        server_args             = -s /var/lib/tftpboot 
        disable                 = no 
        per_source              = 11 
        cps                     = 100 2 
        flags                   = IPv4 
}

将disable 设置为no

4.3 启动tftp服务

因为tftp服务是挂载在超级进程xinetd 下的,所以通过启动xinetd 来启动tftp服务。

service xinetd restart

设置开机启动xinetd

chkconfig xinetd on

五、配置PXE程序

5.1 安装syslinux

yum -y install syslinux

说明:syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。

5.2 复制pxelinux.0 文件至/var/lib/tftpboot/ 文件夹中

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

5.3 复制iso 镜像中的/image/pxeboot/initrd.img 和vmlinux 至/var/lib/tftpboot/

cp /var/www/html/CentOS/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/

5.4 复制iso 镜像中的/isolinux/*.msg 至/var/lib/tftpboot/

cp /var/www/html/CentOS/isolinux/*.msg /var/lib/tftpboot/

5.5 在/var/lib/tftpboot/ 中新建一个pxelinux.cfg目录

mkdir /var/lib/tftpboot/pxelinux.cfg

5.6 将iso 镜像中的/isolinux 目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default

cp /var/www/html/CentOS/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
chmod 755  /var/lib/tftpboot/pxelinux.cfg/default

5.7 编辑 /var/lib/tftpboot/pxelinux.cfg/default,内容为

#default vesamenu.c32
default linux
#prompt 1
timeout 600

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.7!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.55.101/ks.cfg
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -

说明:pxelinux.cfg/default是pxelinux的配置文件。Pxelinux会以IP地址的16进制表示来搜索配置文件,如果没找到去除最低一位继续找。如果所有匹配都失败,就使用default文件。
举例来说:192.168.0.15 16进制表示是 C0A8000F.它会搜索下面的配置文件,最先找到的会被使用。
pxelinux.cfg/C0A8000F
pxelinux.cfg/C0A8000
pxelinux.cfg/C0A800
pxelinux.cfg/C0A80
pxelinux.cfg/C0A8
pxelinux.cfg/C0A
pxelinux.cfg/C0
pxelinux.cfg/C
pxelinux.cfg/default

六、配置kickstart参数文件

可以借助system-config-kickstart这个工具生成kicksart的参数文件ks.cfg。我们这里直接贴上最终结果,保存在/var/www/html下:

#platform=x86, AMD64, or Intel EM64T 
#version=DEVEL 
# Firewall configuration 
firewall --disabled 
# Install OS instead of upgrade 
install 
# Use network installation 
url --url=http://192.168.55.101/CentOS/
#cdrom
# Root password 
rootpw password 
# System authorization information 
auth  --useshadow  --enablemd5 
# Use graphical install 
#graphical 
text
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  --isUtc Asia/Shanghai 
# Network information 
network  --bootproto=dhcp --device=eth0 --onboot=on 
# System bootloader configuration 
key --skip 
bootloader --append="rhgb quiet" --location=mbr --driveorder=sda 
# Clear the Master Boot Record 
zerombr 
# Partition clearing information 
clearpart --all --initlabel 
# Disk partitioning information 
part / --fstype="ext4" --size=4096 
part swap --fstype="swap" --size=1024 
part /home --fstype="ext4" --size=2048

%packages --nobase 
@core

%end

七、测试安装

新建一个新的虚拟机,网络选择之前创建的Host Only新网卡,启动顺序注意要是硬盘第一,网络第二

启动虚拟机,正常情况会自动从DHCP服务器(192.168.56.101)获得IP和预安装系统进行自动安装。自此PXE+Kickstart 无人值守安装操作系统环境搭建完毕。

posted @ 2015-10-04 22:24  PaulDeng  阅读(374)  评论(0编辑  收藏  举报