无人值守安装-PXE服务器的搭建
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 www.xiaoxiongboke.com
- 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里设置引导方式为网络安装方式。