码迷,mamicode.com
首页 > 其他好文 > 详细

搭建Pxe服务器无人听应答全自动安装CentOS6.7系统

时间:2016-02-03 22:43:49      阅读:560      评论:0      收藏:0      [点我收藏+]

标签:pxe 网络安装 系统 centos6.7 全自动 无人应答 无人职守 ks kickstart

概念解说

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

    其实说的简单点,不需要光驱、U盘、软盘,而是直接通过网络来安装操作系统。

    pxe服务器由三种服务组成:DHCP、TFTP、HTTP/FTP/NFS等。

DHCP:负责给将要安装操作系统的客户机分配IP地址,以及指定TFTP服务器;

TFTP:负责传输引导程序、内核、驱动程序等小文件传输给客户机;

HTTP/FTP/NFS:负责将安装操作系统所需要软件包等大文件传输给客户机。

    这三种服务可以同时搭建在同一台服务器上,也可以分别搭建在不同的服务器上;还可以分别部署在不同的平台上,如DHCP服务由Windows系统提供,TFTP搭建在Linux平台,HTTP由Unix系统提供服务;甚至分别可以由不同的设备提供,如路由器提供DHCP服务,手机提供TFTP服务,服务器提供HTTP服务。

部署环境

pxe服务器:CentOS6.7 x86_64系统,三个服务同时搭建在这台主机上,IP地址 192.168.150.20;

待安装的客户机:CentOS6.7 x86_64系统。

部署过程

首先在国内阿里云开源镜像网站下载CentOS6.7 x86_64的ISO镜像,手工安装一台服务器作为pxe的服务器平台。

下载地址:http://mirrors.aliyun.com/centos/6.7/isos/x86_64/CentOS-6.7-x86_64-bin-DVD1.iso

如果链接失效,请移步 http://vault.centos.org 寻找镜像。

系统手工安装过程,此处不再讲述。系统安装完成后,为服务器配置静态IP地址(注意,这里一定要配置为静态IP地址,不能使用通过的dhcp获取的动态IP地址。)与DNS服务器后,测试网络连通后使用SecureCRT远程登录,配置系统yum源。删除/etc/yum.repos.d/目录下所有文件 rm -f /etc/yum.repos.d/* ,添加/etc/yum.repos.d/CentOS6.7-x86_64.repo文件,内容如下:

[base]

name=CentOS-6.7-x86_64

baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

技术分享

这里baseurl参数,yum的地址最重要,任然使用阿里云开源镜像提供的yum地址。如果http://mirrors.aliyun.com/centos/链接失效,请移步http://vault.centos.org 。

执行yum clean all后,安装以下四个软件包。

yum install dhcp tftp-server httpd syslinux -y


安装完成后,开始pxe服务器的配置。

DHCP服务的配置:

向配置文件/etc/dhcp/dhcpd.conf添加以下内容:

option space PXE;

option PXE.mtftp-ip    code 1 = ip-address;

option PXE.mtftp-cport code 2 = unsigned integer 16;

option PXE.mtftp-sport code 3 = unsigned integer 16;

option PXE.mtftp-tmout code 4 = unsigned integer 8;

option PXE.mtftp-delay code 5 = unsigned integer 8;

option arch code 93 = unsigned integer 16; # RFC4578


subnet 192.168.150.0 netmask 255.255.255.0 {

        range 192.168.150.180 192.168.150.240;

        option routers 192.168.150.1;

        option domain-name-servers 202.96.134.33,202.96.128.86;

        default-lease-time 600;

        max-lease-time 1800;


        class "pxeclients" {

                match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";

                next-server 192.168.150.20;


                if option arch = 00:06 {

                        filename "bootia32.efi";

                } else if option arch = 00:07 {

                        filename "bootx64.efi";

                } else {

                        filename "pxelinux.0";

                }

        }


         host bonn {

                filename "yaboot";

                next-server 192.168.150.20;

                hardware ethernet 00:0e:91:51:6a:26;

                fixed-address 192.168.150.241;

        }

}


技术分享


这里网段必须是该服务器配置的IP地址同一个网段或子网,掩码要一致。(绿色框内是重要的配置)

range为可分配的IP地址范围,option domain-name-servers 为dns服务器地址,option routers为网关地址,option broadcast-address为广播地址,default-lease-time 600为IP地址租期最短10分钟,max-lease-time 1800为IP地址租期最长30分钟,next-server指定dhcp服务器地址,这里是本机。filename为引导程序文件。

更多有关pxe详细配置参数,见Red Hat官方安装文档 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config.html#s1-netboot-pxe-config-bios

配置TFTP服务:

编辑配置文件/etc/xinetd.d/tftp,修改disable参数处的yes为no,即启用tftp服务。/var/lib/tftpboot为tftp默认的主目录。

技术分享

添加引导文件、安装软件包:

从开源镜像下载CentOS6.7系统镜像ISO文件到该服务器,下载地址参考前面提到的。

curl -O http://mirrors.aliyun.com/centos/6.7/isos/x86_64/CentOS-6.7-x86_64-bin-DVD1.iso

技术分享

下载完成后,创建/var/www/html/os/centos6.7-x86_64目录,挂载ISO镜像到/media目录,将目录下所有文件拷贝到centos6.7-x86_64目录。

mkdir -p /var/www/html/os/centos6.7-x86_64

mount -o loop CentOS-6.7-x86_64-bin-DVD1.iso /media/

cp -r /media/* /var/www/html/os/centos6.7-x86_64/

技术分享

技术分享

创建/var/lib/tftpboot/pxelinux目录,并拷贝引导程序文件。

cp /media/EFI/BOOT/BOOTX64.efi /var/lib/tftpboot/bootx64.efi

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

mkdir -p /var/lib/tftpboot/kernel

mkdir -p /var/lib/tftpboot/image

cp /media/isolinux/vmlinuz /var/lib/tftpboot/kernel/vmlinuz.centos6.7-x86_64

cp /media/isolinux/initrd.img /var/lib/tftpboot/image/initrd.centos6.7-x86_64.img

技术分享

从本章下载附件msg文件包,将msgs文件夹解压到/var/lib/tftpboot/目录下。

unzip msgs.zip -d /var/lib/tftpboot/

技术分享

编辑boot.msg文件,增加用于安装CentOS6.7系统的菜单1

技术分享

新建/var/lib/tftpboot/pxelinux.cfg目录和/var/lib/tftpboot/pxelinux.cfg/default文件,内容如下:

default 0

prompt 1

timeout 600

display msgs/boot.msg

####### Boot from local driver #################

label 0

  localboot 0xffff

###### Install CentOS6.7 x86_64 #######

label 1

  kernel kernel/vmlinuz.centos6.7-x86_64

  ipappend 2

  append initrd=image/initrd.centos6.7-x86_64.img ks=http://192.168.150.20/os/centos6.7-x86_64/ks.cfg ip=dhcp ksdevice=bootif

技术分享

获取kickstart文件:

以下有三种方式可以获取到kickstart文件。

通过system-config-kickstart工具标准配置得到

如果该服务器没有安装图形环境,使用yum安装yum groupinstall "Desktop" -y,然后安装system-config-kick软件包。

yum install system-config-kickstart -y

技术分享

在控制台(本地)登录命令行直接键入startx立即进入桌面环境;如果要远程登录访问桌面环境,需要借助vnc或xmanager等工具,配置请参考网络搜索。

进入桌面环境后,点击左上角应用程序-系统工具-终端,来打开虚拟终端命令行工具。

技术分享

在命令行键入 system-config-kickstart 来打开kickstart图形话配置工具

技术分享

在基本配置里配置默认语言、键盘类型、时区(是否使用UTC时钟)、root用户的密码以及安装完系统后自动重启选项。

技术分享安装介质里配置全新安装、http方式的安装源,http服务器地址,以及http目录。

技术分享

分区信息里配置

清楚主引导记录,移除所有分区,初始化所有磁盘标签,最后点击手动添加分区。

技术分享

挂在点根分区,文件系统类型默认ext4,可指定磁盘创建分区,容量大小24GB,这里默认单位MB,换算24GB*1024=24576MB,选项强制为主分区,格式化分区。

技术分享

确认后再次添加交换分区,文件系统类型swap,建立在默认第一块磁盘sda,大小8GB,即8192MB。

技术分享

最后分区概览如下

技术分享

网络配置,添加右侧添加网络设备。

技术分享

默认第一块网卡命名eth0

技术分享

防火墙配置,用于开发和测试环境可禁用selinux与防火墙服务。

技术分享

软件包选择,可勾选基本-基本、兼容库、debugging工具等。

技术分享

语言,建议勾选中文支持。

技术分享

系统管理勾选,这里并不限制,也可以安装完系统配置yum源后,再次安装需要的软件包。

技术分享

安装后脚本,这里可添加在完成系统安装后,运行一些脚本。interpreger为运行环境,默认为bash环境,下面键入脚本内容。

技术分享最后点击软件左上角文件-保存。

技术分享

保存位置可选为/root目录,文件名为ks.cfg。

技术分享

最后ctrl+q退出system-config-kickstart软件。查看ks.cfg文件内容,主要分三个部分:安装时的系统配置、安装后执行的脚本、选择安装的软件包。

技术分享

也可以直接对ks.cfg文件根据需求进行修改。

利用anaconda-ks.cfg文件生成kickstart文件:

一个无论采用何种方式安装出的CentOS系统,在/root目录下会有anaconda-ks.cfg文件,其实跟我们需要的ks.cfg文件内容一样,这个文件是这个系统根据安装时的配置参数生成的文件,作适当的修改保存为ks.cfg文件。

技术分享直接下载本章末尾附件里ks.cfg文件根据需求修改而得。

将ks.cfg文件拷贝到/var/www/html/os/centos6.7-x86_64/目录下

cp /root/ks.cfg /var/www/html/os/centos6.7-x86_64/

技术分享

最后启动dhdp、tftp、http服务,关闭防火墙、selinux。

/etc/init.d/dhcpd start

/etc/init.d/xinetd restart

/etc/init.d/httpd start

/etc/init.d/iptables stop

setenforce 0

技术分享

将所有待安装系统的客户机的网络与pxe服务器接入同一交换机,交换机端口必须为access模式;在复杂的网络环境,交换机端口可能配置为trunk模式,则需要在网关上配置dhcp终极代理,指向dhcp服务,否则将无法获取到ip地址。

客户机开机从网卡启动,一般默认按F12键,建议参阅服务器使用手册。当检测到接线网卡,并正常获取到ip地址后,则出现安装菜单。

技术分享

这里直接键入数字1后回车,客户机载入引导程序开始自动安装系统。

技术分享

几分钟后即可看到自动安装过程,安装完成后系统自动重启,无需人工操作。

技术分享

本文出自 “服务器系统交流” 博客,请务必保留此出处http://1130739.blog.51cto.com/1120739/1740925

搭建Pxe服务器无人听应答全自动安装CentOS6.7系统

标签:pxe 网络安装 系统 centos6.7 全自动 无人应答 无人职守 ks kickstart

原文地址:http://1130739.blog.51cto.com/1120739/1740925

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!