PXE---无人值守安装

作用:批量安装操作系统

PXE服务器的搭建

条件:

客户端主机上的网卡必须支持网络引导;(目前网卡基本都支持网络引导)

配置DHCP服务

配置NFS服务

配置YUM

配置TFTP

配置DNS服务


实例

用ip地址192.168.1.1/24的主机做PXE服务器,能够给192.168.1.0/24网段内的所有主机提供自动安装操作系统的功能

1,能够给客户端自动安装rhel5操作系统

2,给客户端分配tarena.com域的主机名

3,给客户端分配网关和DNS


每个服务的功能

DHCP服务:分配IP地址必须

DNS服务:分配主机名不必须

tftp服务:共享引导文件必须

NFS服务:共享RPM软件包必须

YUM服务:生成kickstart文件必须


第一步:搭建DNS服务器,使其能够给客户机分配主机名

配置yum源

yum repolist      //查看一下yum源

yum install bindbind-chroot   //安装DNS服务器所需要的软件包

[root@server1 ~]#vim /var/named/chroot/etc/named.conf

[root@server1 ~]#vim /var/named/chroot/var/named/tarena.com

[root@server1 ~]#vim /var/named/chroot/var/named/192.zone

[root@server1 ~]#service named start

[root@server1 ~]#chkconfig named on


具体文件内容如下:

[root@server1  ~]# cat /var/named/chroot/etc/named.conf

options {

       directory "/var/named/";

       #/var/named/chroot/var/named/

};

zone  "tarena.com" {

       type master;

       file "tarena.com";

};

zone  "1.168.192.in-addr.arpa" {

       type master;

       file "192.zone";

};

[root@server1  ~]# cat /var/named/chroot/var/named/tarena.com

$TTL    86400

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

                                        2014031001      ; serial (d.  adams)

                                        3H              ; refresh

                                        15M             ; retry

                                        1W              ; expiry

                                       1D  )            ; minimum

       IN      NS       server1.tarena.com.

$GENERATE  2-254   pc$.tarena.com.  IN  A  192.168.1.$

[root@server1  ~]# cat /var/named/chroot/var/named/192.zone

$TTL    86400

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

                                        2014031001      ; serial (d.  adams)

                                        3H              ; refresh

                                        15M             ; retry

                                        1W              ; expiry

                                       1D  )            ; minimum

       IN      NS       server1.tarena.com.

$GENERATE  2-254    $   IN       PTR     pc$.tarena.com.

[root@server1  ~]# cat /etc/resolv.conf

search  tarena.com

nameserver  192.168.1.1

[root@server1  ~]# service named start

启动 named:                                               [确定]

[root@server1  ~]# chkconfig named on

[root@server1  ~]# host pc10.tarena.com

pc10.tarena.com  has address 192.168.1.10

[root@server1  ~]# host pc100

pc100.tarena.com  has address 192.168.1.100

[root@server1  ~]# host 192.168.1.200

200.1.168.192.in-addr.arpa  domain name pointer pc200.tarena.com.

[root@server1  ~]#


第二步:配置DHCP服务器

yum install dhcp

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

[root@server1  ~]# cat /etc/dhcpd.conf

ddns-update-style  interim;

ignore  client-updates;

subnet  192.168.1.0 netmask 255.255.255.0 {

       option routers                  192.168.1.254;

       option subnet-mask              255.255.255.0;

       option domain-name              "tarena.com";

       option domain-name-servers      192.168.1.1;

       option time-offset              -18000; # Eastern Standard Time

range  192.168.1.2 192.168.1.253;

       default-lease-time 21600;

       max-lease-time 43200;

next-server 192.168.1.1;   //提供系统引导文件的服务器的ip地址,即tftp服务器的ip地址

filename  "pxelinux.0";    //指定共享网卡引导名,必须为pxelinux.0

}

[root@server1  ~]#


注:如果dhcpd服务起不来,基本都是由于配置文件错误,可以使用dhcpd命令进行检测


第三步:配置TFTP服务

共享引导文件:引导系统的引导文件、网卡引导文件、default文件

tftp就是专门共享小文件的,而且是匿名的

注:若已安装过tftp-server软件,则会在根路径下有tftpboot目录

基于xinetd管理

默认监听的是69端口

网卡引导文件是由syslinux软件提供的


1,安装启动tftp服务器

[root@server1 ~]#yum install tftp-server

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

       disable                 = no    //修改为no,默认是yes

[root@server1 ~]# servicexinetd restart

[root@server1 ~]#netstat -tunlp | grep :69

2,共享文件

挂在光盘

[root@server1 ~]# cd/misc/cd/isolinux/

共享内核文件:

[root@server1isolinux]# cp vmlinuz initrd.img /tftpboot/

[root@server1isolinux]# cd

[root@server1 ~]#rpm -ql syslinux | grep 'pxelinux.0'

/usr/share/syslinux/gpxelinux.0

/usr/share/syslinux/pxelinux.0

共享网卡引导文件:

[root@server1 ~]# cp/usr/share/syslinux/pxelinux.0 /tftpboot/

[root@server1 ~]# ll/tftpboot/     //其他用户必须有r权限才能保证匿名成功下载

总计 14436

-r--r--r-- 1 rootroot 12602297 04-02 16:15 initrd.img

-rw-r--r-- 1 rootroot    26828 04-02 16:17 pxelinux.0

-r--r--r-- 1 rootroot  2127468 04-02 16:15 vmlinuz

[root@server1 ~]#


共享default文件(指定客户端默认安装的操作系统)

default文件需手动下载;

必须放到/tftpboot/pxelinux.cfg/目录下,客户端下载的时候才能正确找到;

default文件的模板为安装关盘isolinux目录下的isolinux.cfg

[root@server1 ~]# cp /misc/cd/isolinux/isolinux.cfg/tftpboot/pxelinux.cfg/default

[root@server1 ~]#cat /tftpboot/pxelinux.cfg/default

[root@server1 ~]#chmod +w /tftpboot/pxelinux.cfg/default

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

[root@server1  ~]# cat /tftpboot/pxelinux.cfg/default

default  rhel5         //指定要安装的默认操作系统,与下面的label对应

prompt 1                //交互式安装

timeout 600             //引导默认操作系统的等待时间,可以修改,默认为10分钟

display  boot.msg        //安装系统时的背景图片

F1 boot.msg

F2  options.msg

F3  general.msg

F4 param.msg

F5  rescue.msg

label  rhel5

 kernel vmlinuz

 append initrd=initrd.img ks=nfs:192.168.1.1:/ks/ks.cfg     //指定ks文件的位置,通过nfs共享

label rhel6         //操作系统的标签,就是一个名字的表示

 kernel vmlinuz

 append initrd=initrd.img text

[root@server1  ~]#


第四步:配置NFS服务

共享ks文件和系统安装所需要的RPM软件包

需要安装nfs共享的软件包:

该服务依赖于portmap服务


[root@server1 ~]#rpm -qa | grep nfs

nfs-utils-lib-1.0.8-7.9.el5

nfs-utils-1.0.9-70.el5

[root@server1 ~]#vim /etc/exports

[root@server1 ~]#cat /etc/exports

/ks             *(ro)

/misc/cd        *(ro)

[root@server1 ~]#mkdir /ks

[root@server1 ~]#service nfs restart

[root@server1 ~]#service portmap status

[root@server1 ~]#chkconfig nfs on

[root@server1 ~]#chkconfig portmap on

[root@server1 ~]#showmount -e 192.168.1.1

Export list for192.168.1.1:

/ks      *

/misc/cd *

[root@server1 ~]#


第五步:生成ks文件

两种方式:用工具生成和用模板文件生成

1,用工具生成(需要做yum源)

yum源的名字必须以rhel开头

这个实在CentOS5.10中

[root@server1  ~]# cat /etc/yum.repos.d/server.repo    //yum源文件内容

[rhel-server]        //yum源名字必须是以rhel开头

name=server

baseurl=file:///misc/cd

enabled=1

gpgcheck=1

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

[root@server1  ~]#


[root@server1 ~]#yum install system-config-kickstart    //必须在5运行级别操作

可以使用system-config-kickstart打开kickstart管理界面

设置密码、

安装方式:执行新安装、NFS、NFS服务器:192.168.1.1、NFS目录:/misc/cd

引导装载程序选项:安装新引导装载程序、是否使用GRUB口令(可选)、默认

分区信息:清除主引导记录、删除所有现存分区

...

为客户端制作启动时的一些选项,然后点击文件→保存→保存到/ks目录即可,文件名为ks.cfg

注:该文件对其他用户必须有r权限,否则无法下载;

若没有跳过注册码的选项,则需要手动添加:key --skip



2,通过模板生成该文件

在root用户的家目录下,有个名字为:anaconda-ks.cfg的文件

需要修改的内容为:

去掉分区设置前的#号

添加指定NFS服务器的行

[root@server1  ~]# cat /ks/ks.cfg

auth  --useshadow   --enablemd5

bootloader  --location=mbr

zerombr

clearpart  --all --initlabel

graphical

firewall  --disabled

firstboot  --disable

keyboard us

lang en_US

key --skip

logging  --level=info

nfs  --server=192.168.1.1 --dir=/misc/cd

network  --bootproto=dhcp --device=eth0 --onboot=on

reboot

rootpw  --iscrypted $1$TOx7sR5P$vK9aWTdG91IxbBGvgKkUT.

selinux  --disabled

timezone  America/New_York

install

xconfig  --defaultdesktop=GNOME --depth=8  --resolution=640x480

part /boot  --bytes-per-inode=4096 --fstype="ext3" --size=100

part swap  --bytes-per-inode=4096 --fstype="swap" --size=2048

part /  --bytes-per-inode=4096 --fstype="ext3" --grow --size=1


%packages

@system-tools

@gnome-desktop

@development-libs

@admin-tools

@base

@development-tools

@base-x

@graphics

@graphical-internet

@legacy-software-support

@legacy-software-development

@text-internet

@editors

[root@server1  ~]#



客户端设置

在BIOS里设置引导方式为网络安装方式