无人值守安装--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