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里设置引导方式为网络安装方式