PXE无人值守安装系统

项目环境:

一台linux server ip192.168.1.254   一台linux client   

项目需求:

1:搭建PXE Server服务器IP192.168.1.254,给客户机无人值守安装centos6.5

2:安装所需要的软件包存放在/data/iso/centos6.5

3:要求分别给每台客户端分配192.168.1.(范围1-100)和分配主机名格式如下station(x).tarena.com

实现步骤:

1:配置yum

[root@server yum.repos.d]# pwd    //确认目录位置

/etc/yum.repos.d

[root@server yum.repos.d]# cp rhel-debuginfo.repo rhel.repo  //从模板文件拷贝

[root@server yum.repos.d]# vim rhel.repo

 

 1 [rhel-yum]     //服务器yum库名,用于安装环境包
  2 name=Red Hat Enterpr  //描述
  3 baseurl=file:///misc/cd/Server    //包路径在自动触发的光盘路径
  4 enabled=1     //启用
  5 gpgcheck=1    //检查密钥
  6gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release    //密钥文件位置


[root@server yum.repos.d]# vim centos.repo

 

  1 [centos-yum]      //PXE安装源名
  2 name=centos6.5
  3 baseurl=file:///data/iso/centos6.5   //安装源路径(已把安装光盘下所有复制到该目录下)
  4 enabled=1
  5 gpgcheck=1
  6 gpgkey=file:///data/iso/centos6.5/packages/RPM-GPG-KEY-CentOS-6


[root@server ~]#rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm   //安装生成包关系工具

[root@server ~]# createrepo /data/iso/centos6.5/packages      //由于系统版本不同,需要手动生成包关系文件

2:安装dhcpdnsNFS程序

[root@server Server]# yum install dhcp-3.0.5-31.el5_8.1.x86_64.rpm   //安装dhcp

[root@server Server]# yum install bind-9.3.6-20.P1.el5_8.5.x86_64.rpm    //安装dns

[root@server Server]# yum install caching-nameserver-9.3.6-20.P1.el5_8.5.x86_64.rpm   //安装dns模板

[root@server Server]# yum install bind-chroot-9.3.6-20.P1.el5_8.5.x86_64.rpm   //安装映射文件加强安全

3:启动服务

[root@server ~]# service dhcpd start

[root@server ~]# service named start

[root@server ~]# service portmap start

[root@server ~]# service nfs start

[root@server ~]# vim /etc/xinetd.d/tftp

...
 13         server_args             = -s /tftpboot    //记住tftp存放文件的工作目录,后面会用到
 14         disable                 = no              //设置tftp被超级守护进程调用为启用
...


[root@server ~]# service xinetd restart

4:设置为开机启动

[root@server ~]# chkconfig dhcpd on

[root@server ~]# chkconfig named on

[root@server ~]# chkconfig portmap on

[root@server ~]# chkconfig nfs on

[root@server ~]# chkconfig xinetd on

5:配置主配置文件 (配置前最好通过cp命令做好备份)

 1配置dhcp服务

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

 

 1 ddns-update-style interim;
  2 next-server 192.168.1.254;         //添加tftp服务器地址
  3 filename "pxelinux.0";             //添加引导文件名
  4 default-lease-time 21600;
  5 max-lease-time 43200;
  6 subnet 192.168.1.0 netmask 255.255.255.0 {                     //声明作用域网段
  7         option routers                  192.168.1.254;         //定义分配网关
  8         option domain-name              "sw.com";              //定义域名
  9         option domain-name-servers      192.168.1.254;         //定义分配DNS地址
 10         range dynamic-bootp 192.168.1.1 192.168.1.100;         //定义地址池
 11         }


 2)配置DNS服务 (非必要步骤)

 [root@server ~]# cd /var/named/chroot/etc/                         //切换到DNS目录

 [root@server etc]# cp named.caching-nameserver.conf named.conf     //从模板创建配置文件

 [root@server etc]# vim named.conf                                  //编辑主配置文件

 

...
15         listen-on port 53 { 192.168.1.254; };                    //设置监听ip地址
...
27         allow-query     { any; };                                //允许所有机器查询
28         allow-query-cache { any; };                              //允许所有机器查询缓存
...
37         match-clients      { any; };                             //允许匹配所有客户端
38         match-destinations { any; };                             //允许匹配所有连接
...
 [root@server etc]# vim named.rfc1912.zones                         //编辑添加正向解析和反向解析
 ...
 51 zone "sw.com" IN {                                              //正向解析域名
 52         type master;
 53         file "sw.com.zone";                                    //正向解析文件名
 54 };      
 55 
 56 zone "1.168.192.in-addr.arpa" IN {                             //反向解析
 57         type master;
 58         file "192.168.1.arpa";                                //反向解析文件名
 59 };


 [root@server named]# cd  /var/named/chroot/var/named            //切换工作目录

 [root@server named]# vim sw.com.zone

 

 ...
  2 @       IN      SOA     localhost. root.localhost.  (
  3                                       2014061801 ; Serial         //自定义DNS版本
  ...  
  8         IN      NS      server.sw.com.                            //定义域名服务器
  9 server    IN      A       192.168.1.254                            //解析
 10 $GENERATE 1-100 station$ IN A 192.168.1.$                        //利用变量定义有规律的解析


  [root@server named]# vim 192.168.1.arpa                            //编辑反向解析文件,基本同正向

 

 ...
  3                                       2014061801 ; Serial
  4                                       28800      ; Refresh
  5                                       14400      ; Retry
  6                                       3600000    ; Expire
  7                                       86400 )    ; Minimum
  8         IN      NS      server.sw.com.
  9 254     IN      PTR     server.sw.com.
 10 $GENERATE 1-100 $ IN PTR station$.sw.com.


 3配置NFS共享目录  挂载iso镜像

 [root@server named]# vim /etc/exports 

 

/data/iso/centos6.5    *(ro)

6:重启DHCPDNSNFSxinetd服务

7:复制PXE引导文件到TFTP工作目录

[root@server ~]# cp /misc/cd/isolinux/vmlinuz /tftpboot/            //复制centos内核文件

[root@server ~]# cp /misc/cd/isolinux/initrd.img /tftpboot/        //复制centos引导文件

[root@server ~]# mkdir /tftpboot/pxelinux.cfg

[root@server ~]# cp /misc/cd/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default    //复制centos菜单文件

[root@server ~]# yum install syslinux

[root@server ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/        //复制centos PXE开机引导文件

8:安装kickstart图形工具包

[root@server Server]# yum install system-config-kickstart-2.6.19.9-2.el5.noarch.rpm 

9:利用kickstart图形工具包来生成自动应答文件(利用远程连接软件XHELL+XMING可以在字符界面调用图形)

[root@server ~]# system-config-kickstart

  PXE无人值守安装系统_pxe

  

[root@server ~]# cp ks.cfg /data/iso/centos6.5/                      //复制自动应答文件到安装源目录

[root@server ~]# vim /data/iso/centos6.5/ks.cfg         //在该应答文件中添加key --skip跳过序列号安装源

  4  key --skip
  6  url --url ftp://192.168.1.55


10编辑default文件调用装机菜单和开机应答脚本

[root@server ~]# vim /tftpboot/pxelinux.cfg/default

1  default vmlinuz   
12 append initrd=initrd.img ks=nfs:192.168.1.254:/data/iso/centos6.5/ks.cfg


11:用无系统客户机测试,实现全自动pxe安装

PXE无人值守安装系统_pxe_02 

总结:本项目综合运用了linuxDHCPNFSTFTP服务实现了大批量自动化的PXE装机。提高了批量部署系统环境的效率。