Linux学习之PXE装机服务

PXE 服务器环境

    操作系统RHEL 6.5

    网卡连接eth0  VMnet1

    主机名pxesvr.tarena.com

    IP地址192.168.4.5/24

    ――  关闭 iptables 防火墙、SELinux防护机制


[root@pxesvr ~]# service  iptables  stop

[root@pxesvr ~]# chkconfig  iptables  off


[root@pxesvr ~]# setenforce  0

[root@pxesvr ~]# vim  /etc/selinux/config 

SELINUX=permissive



2. PXE 客户机

    新建一台RHEL6虚拟机裸机

    内存1GB

    硬盘20GB

    光盘无

    网卡连接eth0 VMnet1


    !!!! 注意客户机与服务器应在同一物理网段并排除其他DHCP服务器的干扰


    


二搭建PXE装机服务器


1. 准备RHEL 6.5安装源以YUM源的方式提供


[root@pxesvr ~]# yum  -y  install  vsftpd //。。。安装FTP服务器

[root@pxesvr ~]# service  vsftpd  restart //启动 vsftpd 服务

[root@pxesvr ~]# chkconfig  vsftpd  on   //设置 vsftpd 服务开机自运行


[root@pxesvr ~]# cp  -rf  /misc/cd/*  /var/ftp/rhel6/   //拷贝RHEL6.4光盘中的所有文档

[root@pxesvr ~]# ls /var/ftp/rhel6/  //确认拷贝结果


[root@pxesvr ~]# vim  /etc/yum.repos.d/dvd.repo  //调整本机的YUM仓库设置以便测试

[rhel-packages]

name=RHEL 6.5 Packages

baseurl=ftp://192.168.4.5/rhel6

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release


[root@pxesvr ~]# yum repolist   //确保此YUM源可用


2. 启用DNS服务


[root@pxesvr ~]# yum  -y  install bind bind-chroot

[root@pxesvr ~]# mv  /etc/named.conf  /etc/named.conf.old   //避免默认配置干扰


[root@pxesvr ~]# vim  /var/named/chroot/etc/named.conf   //DNS服务的主配置文件

options {

        directory "/var/named";

};

zone "tarena.com" IN {   //定义正向区域

        type master;

        file "tarena.com.zone";

};

zone "4.168.192.in-addr.arpa" IN {   //定义反向区域

        type master;

        file "192.168.4.arpa";

};


[root@pxesvr ~]# vim  /var/named/chroot/var/named/tarena.com.zone   //正向区域数据文件

$TTL 1D

@ SOA tarena.com.  root.tarena.com.  (

2014072101

8H

2H

4H

1D

)

@ IN NS ns.tarena.com.

ns IN A 192.168.4.5

pxesvr IN A 192.168.4.5

ftp IN CNAME pxesvr

$GENERATE  100-200 pc$ IN A 192.168.4.$


[root@pxesvr ~]# vim  /var/named/chroot/var/named/192.168.4.arpa   //反向区域数据文件

$TTL 1D

@ SOA tarena.com.  root.tarena.com.  (

2014072101

8H

2H

4H

1D

)

@ IN NS ns.tarena.com.

5 IN PTR pxesvr.tarena.com.

$GENERATE  100-200 $ IN PTR pc$.tarena.com.


[root@pxesvr ~]# service  named  restart   //启动 named 服务

。。。

[root@pxesvr ~]# chkconfig  named  on   //设置 named 服务开机自运行


[root@pxesvr ~]# vim  /etc/resolv.conf   //设置 DNS 客户端文件

search tarena.com

nameserver 192.168.4.5


[root@pxesvr ~]# host  pxesvr.tarena.com   //测试确保 DNS 解析可用

pxesvr.tarena.com has address 192.168.4.5

[root@pxesvr ~]# host  pc123.tarena.com

pc123.tarena.com has address 192.168.4.123

[root@pxesvr ~]# host  192.168.4.123

123.4.168.192.in-addr.arpa domain name pointer pc123.tarena.com.



3. 启用DHCP服务


[root@pxesvr ~]# yum  -y  install  dhcp   //安装 dhcp 服务程序


[root@pxesvr ~]# vim /etc/dhcp/dhcpd.conf

option domain-name "tarena.com";

option domain-name-servers 192.168.4.5;

default-lease-time 7200;

max-lease-time 14400;

subnet  192.168.4.0  netmask  255.255.255.0  {

    range  192.168.4.100  192.168.4.200;

    option routers 192.168.4.254;

    next-server  192.168.4.5;   #//TFTP引导服务器的地址

    filename  "pxelinux.0";   #//网卡引导文件名

}


[root@pxesvr ~]# service  dhcpd   restart   //启动 dhcpd 服务

[root@pxesvr ~]# netstat  -anptu  |  grep  dhcpd   //查看监听状态

udp        0      0 0.0.0.0:67                  0.0.0.0:*                               4095/dhcpd


[root@pxesvr ~]# chkconfig  dhcpd  on   //设置 dhcpd 服务开机自运行



4. 启用TFTP服务并提供内核、引导程序

[root@pxesvr ~]# yum  -y  install  tftp-server   //安装 TFTP 服务器程序

[root@pxesvr ~]# chkconfig  tftp  on   //将临时服务 tftp 设为启用 

[root@pxesvr ~]# service  xinetd  restart   //启用 xinetd  超级服务

[root@pxesvr ~]# netstat  -anptu  |  grep  xinetd //查看监听状态

udp        0      0 0.0.0.0:69                  0.0.0.0:*                               30426/xinetd

[root@pxesvr ~]# chkconfig  xinetd  on   //设置 dhcpd 服务开机自运行


[root@pxesvr ~]# yum  -y  install  syslinux

[root@pxesvr ~]# cp  /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

    //拷贝引导Linux客户机的网卡启动文件


[root@pxesvr ~]# cd  /var/ftp/rhel6/images/pxeboot/   //拷贝引导RHEL6客户机的内核和初始化镜像

[root@pxesvr pxeboot]# cp  vmlinuz  initrd.img  /var/lib/tftpboot/


[root@pxesvr pxeboot]# ls  /var/lib/tftpboot/   //确认 TFTP 根目录下部署的文档

initrd.img   pxelinux.0  vmlinuz


## 测试 TFTP 服务

[root@pxesvr pxeboot]# cd ~

[root@pxesvr ~]# yum  -y  install  tftp   //安装 TFTP 客户端命令

[root@pxesvr ~]# tftp  192.168.4.5  -c  get  pxelinux.0   //连接服务端测试下载文件

[root@pxesvr ~]# ls  -lh  pxelinux.0   //确认下载结果

-rw-r--r--. 1 root root 27K 7月  19 21:55 pxelinux.0



5. 为PXE安装配置启动菜单


[root@pxesvr ~]# mkdir /var/lib/tftpboot/pxelinux.cfg   //创建启动配置目录

[root@pxesvr ~]# cp  /var/ftp/rhel6/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

    //拷贝模板配置

[root@pxesvr ~]# chmod  755  /var/lib/tftpboot/pxelinux.cfg/default


[root@pxesvr ~]# vim  /var/lib/tftpboot/pxelinux.cfg/default   //修改默认启动设置

default   linux     #//默认从哪个标签引导系统

prompt 1     #//是否交互式安装

timeout 600     #//进入默认系统的等待超时单位1/10秒

label linux   #//定义名为linux的标签

        kernel  vmlinuz   #//选择此标签时需要加载的内核文件

        append  initrd=initrd.img   #//加载内核文件时附加的参数



三测试 PXE 网络装机


1. 启动一台裸客户机新建虚拟机默认会从网卡启动

    !!!! 如果是已有系统的客户机则需要调整BIOS设置将网络引导作为第一启动设备


2. 客户机启动后的基本过程

    1自动获取IP地址

    2下载 pxelinux.0 引导文件

    3读取 pxelinux.cfg/default 配置文件

    4在 boot: 后输入要安装的系统标签比如 linux进行选择直接回车或超时过均选择默认

    5根据选择结果执行相应的引导文件vmlinuz、initrd

    6加载安装向导程序进入交互式安装过程。。。

    !!!! 指定采用URL源自动获取IP地址

    !!!! 将安装源设置为  ftp://192.168.4.5/rhel6 

    !!!! 此后的安装设置、分区、软件包定制等过程与光盘安装相同

    ―― 至此说明 PXE 引导及配置已成功可中止后续手动安装的验证过程

    ―― 等待后续的 kickstart 无人值守安装测试




四配置 kickstart 无人值守安装


1. 准备应答文件

    找一台已装好的RHEL 6.5 模板客户机本例中可选 PXE 服务器本机

    通过 system-config-kickstart 工具创建 ks-el6.cfg 应答文件


[root@pxesvr ~]# yum  -y  install  system-config-kickstart

[root@pxesvr ~]# system-config-kickstart   //在图形桌面下运行

    !!!! 打开 /root/anaconda-ks.cfg 文件作为应答文件模板

    !!!! 基本配置指定默认语言、时区、根口令123456

    !!!! 安装方式新安装、FTP安装192.168.4.5、/rhel6

    !!!! 分区信息清除主引导记录、删除所有现存分区、初始化磁盘标签、/boot 200MB、SWAP 2GB、/  剩余空间

    !!!! 网络配置第一块网卡DHCP自动获取

    !!!! 防火墙配置禁用SELinux、禁用防火墙

    !!!! 软件包选择不安装图形桌面

    !!!! 安装后脚本从 pxesvr 自动下载并部署 YUM 客户端配置、安装并启动 httpd 网站服务

    rm  -rf  /etc/yum.repos.d/*

    wget  ftp://192.168.4.5/rhel6.repo  -O  /etc/yum.repos.d/rhel6.repo

    yum  clean  all

    yum  -y  install  httpd

    echo  "I  Love  Studying"  > /var/www/html/index.html

    /etc/init.d/httpd  start

   chkconfig  httpd  on

    !!!! 经上述调整后另存为应答文件 /opt/ks-el6.cfg


2. 在 PXE 服务器上部署应答文件、为客户机准备的YUM配置文件


[root@pxesvr ~]# cp  /opt/ks-el6.cfg  /var/ftp/   //。。。从模板客户机提交此文件


[root@pxesvr ~]# vim  /var/lib/tftpboot/pxelinux.cfg/default   //修改引导配置文件

default   linux     #//默认从哪个标签引导系统

prompt 1     #//是否交互式安装

timeout 600     #//进入默认系统的等待超时单位1/10秒

label linux   #//定义名为linux的标签

        kernel  vmlinuz   #//选择此标签时需要加载的内核文件

        append  ks=ftp://192.168.4.5/ks-el6.cfg  initrd=initrd.img       #//下载并启用自动应答文件


[root@pxesvr ~]# vim  /var/ftp/rhel6.repo 

[rhel-packages]

name=RHEL 6.5 Packages

baseurl=ftp://192.168.4.5/rhel6

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release


[root@pxesvr ~]# ls /var/ftp/   //确认部署结果

ks-el6.cfg  pub  rhel6  rhel6.repo


[root@pxesvr ~]# wget  ftp://192.168.4.5/rhel6.repo   //测试下载上述两文件

[root@pxesvr ~]# wget  ftp://192.168.4.5/ks-el6.cfg


[root@pxesvr ~]# ls  -lh  rhel6.repo  ks-el6.cfg   //确认下载结果

-rw-r--r--. 1 root root 1.7K 7月  19 23:04 ks-el6.cfg

-rw-r--r--. 1 root root  145 7月  19 23:07 rhel6.repo



3. 启动一台裸客户机新建虚拟机测试无人值守安装

    !!!! 安装设置过程会自动应答免手工交互

    !!!! 等待客户机系统安装完成


4. 检查装好的客户机确认 POST 脚本设置结果


[root@pc100 ~]# ifconfig  eth0  |  grep  "inet addr"   //查看自动配置的IP地址

          inet addr:192.168.4.100  Bcast:192.168.4.255  Mask:255.255.255.0


[root@pc100 ~]# chkconfig  --list  httpd   //查看Web服务的自启动状态

httpd           0:off 1:off 2:on 3:on 4:on 5:on 6:关闭

    

[root@pc100 ~]# yum  -y  install  elinks   //确保可yum安装软件包

[root@pc100 ~]# elinks  --dump  http://127.0.0.1   //访问测试网页

I  Love  Studying


你可能感兴趣的:(pxe)