无人值守安装

  1. 云栖社区>
  2. 博客>
  3. 正文

无人值守安装

技术小胖子 2017-11-15 16:38:00 浏览804
展开阅读全文

                          无人值守安装--PXE网络装机


简介:

   PXE:(无人值守安装?) Pre-boot eXcution Environment

批量安装操作系统:

PXE服务器     客户端(网卡要支持网络引导)

需要部署的服务:DHCP NFS YUM TFTP(提供引导程序下载


)   DNS


任务:


 用ip192.168.1.1/24主机做pxe服务器,能够给192.168.1.0/24网段内的


所有主机提供

自动安装操作系统的功能,具体功能如下:


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


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


3、给客户端分配网关、DNS


实现自动获取IP网络安装linux是这样的:客启端PXE网卡启动-->通过Bootp协议广播dhcp请求-->DHCP服务器-->获取IP,TFTP服务器地址-->从TFTP上下载 pxelinux.0以及系统内核文件vmlinuz、initrd.img-->启动系统-->(到指定url去下载ks.cfg文件-->根据ks.cfg文件去NFS/HTTP/FTP服务器自动下载软件包)安装系统-->完成安装。


配置步骤:

1、搭建dns服务器给pxe客户端分配tarena.com域的主机名

******注意这里的正向解析和反向解析都要做,客户端分配不到主机


名和ip地址*********************************************

1)yum -y install  bind  bind-chroot (caching-nameserver)//安装软件包

# cat /var/named/chroot/etc/named.conf

options {

  directory "/var/named/";

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

};

zone "tarena.com" {


//写正向区域文件

    type master;

    file "tarena.zone";

};


zone "1.168.192.in-addr.arpa" {//写反向区域文件,注意这里的反写

    type master;

    file "192.zone";  

};

2)分别做正反向解析

# cat  /var/named/chroot/var/named/tarena.zone

$TTL 3600

@       IN  SOA  www.tarena.com.   root (

               2014040200

               28800

               14400

               17400

               86400

)

 IN      NS      www.tarena.com.

$GENERATE 2-253  student$.tarena.com. IN        A   192.168.1.$

//主机名和ip地


址做正向解析

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

$TTL 3600

@       IN  SOA  www.tarena.com.   root (

               2014040200

               28800

               14400

               17400

               86400

)

       IN      NS      www.tarena.com.

$GENERATE   2-253   $       IN      PTR  student$.tarena.com.

//反


向解析

配置完成。测试dns的解析功能

#host   student20.tarena.com

#host   192.168.1.20

3)  #service  named  start

#chkconfig named on//不


要忘记开机自启动

2、配置dhcp服务(给客户端分配ip地址)

DHCP需要指定next-server(TFTP的服务器)和filename (网卡引导文


件名)

1)#yum -y install dhcp


//安装软件包

2)编辑配置文件

可以参考/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample

[root@localhost ~]# 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;

       range 192.168.1.2 192.168.1.253;        default-


lease-time 21600;

       max-lease-time 43200;

       next-server 192.168.1.1;//TFTP服务器的ip地址

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

}

3)dhcpd 检查dhcp配置文件的错误

#service dhcpd restart

#chkconfig  --level  35  dhcpd  on       //开机自启动


3、配置tftp服务:(tftp:小文件匿名共享)

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

tftpboot/ tftp的根目录

1)安装tftp软件:

默认是安装的# rpm -q tftp-server

ftp-server-0.49-2

2)编辑tftp的配置文件

tftp服务由xinetd服务(临时服务)管理,监听udp的69端口

#vim /etc/xinetd.d/tftp

service tftp

{

       … …

       server                  = /usr/sbin/in.tftpd

       server_args             = -s /tftpboot//服务根目录,


不需要修改

       disable                 = no//把yes改为no,


启动服务

      …  …

}

# service xinetd  restart//重启xinetd服务,启动tftp


服务

#netstat –anptu |grep   69//查看启动状态

2)共享系统引导文件(系统引导文件和网卡引导文件)

 系统引导文件在系统光盘内,需要先挂载光盘,然后执行拷贝


initrd.img  vmlinuz  共享网卡的引导文件


#mount /dev/cdrom  /mnt

#cd  /mnt/isolinux  //引


导文件的存放目


录isolinux


#cp vmlinuz  initrd.img  /tftpboot/

***********************************************************

vmlinuz  initrd.img 分别对应系统启动的内核文件和镜像文件,把他

们拷贝到tftp服务器的根目录下,并查看其权限

***********************************************************


3)共享网卡引导文件pxelinux.0


网卡引导文件由syslinux软件包提供

#yum  -y install syslinux

# rpm -q syslinux

syslinux-4.02-7.2.el5

#rpm -ql syslinux | grep 'pxelinux.0'//检索一下网卡引导文件所


在路径

/usr/share/syslinux/gpxelinux.0

/usr/share/syslinux/pxelinux.0

[root@localhost isolinux]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/

//把检索出来的结果拷贝到tftp服务器根目录里


4)共享default文件:

pxe服务器可以指定客户端安装哪一个操作系统,default文件用来设置


客户端默认安装的操作系统类型

default文件需要手动编辑,可以参考光盘里的模板文件isolinux.cfg

#mkdir /tftpboot/pxelinux.cfg//先创建


pxelinux.cfg文件夹

# cp /mnt/isolinux/isolinux.cfg  /tftpboot/pxelinux.cfg/default


//拷贝并改名为default

***********************************************************

拷贝过来之后查看一下文件权限,增加w权限,修改文件

**********************************************************

#vim /tftpboot/pxelinux.cfg/default  //编辑默认启动标签

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

prompt 1//是否交互式安装

timeout 100//进默认系统的等待时间

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


//手动添加


kickstart服务

4、 配置nfs服务 :


 共享ks文件(自应答):客户端安装操作系统时的安装配置文件和客


户端安装操作系统需要的rpm软件包


首先确保安装了nfs软件包


# rpm -qa | grep nfs

#yum –y install nfs

#yum –y install portmap


#mkdir /ks//创建的文件名必须要根


default标签里的同名

#vim /etc/exports

/ks*(ro)//挂载nfs共享

/mnt*(ro)


#service nfs restart

#service portmap start//不要忘记开启portmap服务

#chkconfig nfs on

#chkconfig portmap on

#showmount –e localhost//查看nfs共享是


否成功

Export list for localhost:

/ks  *

/mnt *


5、生成ks文件(2种方式)


模板生成:cp /root/ anaconda-ks.cfg  ks.cfg  修改里面的设置

工具生成:先配置yum源(yum源的名字必须以rhel开头)


#mount /dev/cdrom /mnt

[root@localhost ~]# cat /etc/yum.repos.d/iso.repo

[rhel-debuginfo]//注


意这里必须用rhel开头

name=Red Hat Enterprise Linux $releasever - $basearch - Debug

baseurl=file:///mnt/Server

enabled=1

gpgcheck=0

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

yum源的名字必须以rhel开头,要不然获取不到软件包

安装提供生成ks文件命令的软件包

#yum -y install system-config-kickstart

# system-config-kickstart//服务的启动就


是用软件包的名字


(需要图形的 所以系统必须运行在level5级别)


 这时候会进入图形化的kickstart


其中选择安装方法nfs(这里就是rpm包的所在目录)


通过图形,选择系统启动过程参数,包括语言,键盘,root的命名,


grub口令,分区情况,添加网络配置,防火墙,定制软件包等


配置完成之后点击文件----保存文件,选择要保存到的路径/ks和名称


ks.cfg


目录存放的地方必须要与配置文件中写的一致


保存后会生成ks.cfg文件,里面放置的就是配置文件,不要忘记添加


一条key –-skip


#service nfs restart


至此pxe服务器配置完成


如果要用模板文件来配置,cp /root/anaconda-ks.cfg     ks.cfg


二 配置客户端


在BIOS设置引导方式为网络引导

如果是在vmware上做实验,要把vmware的本地dhcp服务关闭


无需进入交互式界面就可以进行无人值守安装了。




实验总结:

1、首先配置dns服务,其次

dhcp服务:

next-server 192.168.1.1;//TFTP服务器的ip地址

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

注释:The  next-server  statement is used to specify the host address of

         the server from which the initial  boot  file  (specified  in  the

         filename  statement)  is  to  be loaded.   Server-name should be a

         numeric IP address or a domain name.



2、 tftp服务,共享引导文件:系统引导和 网卡引导文件  default文件

因为tftp是小文件匿名共享的,所以里面放的都是比较小的文件,大


文件比如rpm包用nfs共享



vmlinuz  initrd.img 分别对应系统启动的内核文件和镜像文件


3配置过程中不要忘记查看tftp下的文件权限,如果权限不够是不能被


独到的,文件读取不到是安装不了系统的

光盘里的isolinux.cfg是/tftpboot/pxelinux.cfg/ default的模板,通过default


进行默认启动标签


4、配置nfs的时候不要忘记portmap服务


5、生成ks.cfg 文件可以用keckstart工具也可以用模板生成;

生成ks.cfg文件,用工具的时候,yum源的名字必须要以rhel开头


6、 安装过程中出现的几个文件:

pxelinux.0 网卡引导文件,由syslinux软件包提供

vmlinuz 系统启动的内核文件,在系统光盘内

      initrd.img 系统内核镜像文件,在系统光盘内

isolinux.cfg  光盘中的default引导文件的模板,在


系统光盘内

default    默认启动标签,从光盘中isolinux.cfg拷


贝过来改名后得到

但是要创建


pxelinux.cfg目录来存放default文件

附上linux引导过程:

开机加电自检→MBR引导→GRUB菜单→内核(kernel)


→init进程→配置/etc/inittab

/etc/inittab的配置包括2部分

→ 一个是执行脚本/etc/rc.d/rc.sysinit

→  另一个是脚本/etc/rc.d/rc





      本文转自Jx战壕  51CTO博客,原文链接:http://blog.51cto.com/xujpxm/1389336,如需转载请自行联系原作者





网友评论

登录后评论
0/500
评论
技术小胖子
+ 关注