一、原理
这是基于C/S架构的方式,Client嵌入到网卡的ROM芯片中,Server需要单独配置,包括DHCP和TFTP。开机后选择PXE,client发起广播连接请求,DCHP-Server响应分配IP和系统启动镜像位置,client拿到地址,然后单播请求Server系统启动镜像pxelinux.0,获得后,引导启动安装过程,请求内核和根文件系统,然后进入正式安装过程。安装过程同时结合Linux kickstart安装,包含http配置等
本实例目的
实现自动安装rhel5.3_32 rhel5.5_64 rhel6.2_64
按数字1 引导 rhel5.3_32 ;按数字2引导rhel5.5_64 ;按数字3引导rhel6.2_64
需要安装的工具
1.syslinux 2.kickstart
需要安装的服务
1.dhcp 2.http 3.tftp-server
准备工作:
1、服务器IP192.168.8.64 系统版本rhel6.4_64
2、用xshell远程连接192.168.8.64
3、 上传rhel6.4_64.iso 、 rhel5.3_32.iso、rhel6.5_64.iso 、rhel6.2_64.iso 镜像到/data1
4、配置本地yum源
[root@localhost ~]# mount -o loop /data1/rhel-server-6.4-x86_64-dvd.iso /mnt/
[root@localhost ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
5、关闭防火墙
[root@localhost ~]# service iptables stop
[root@localhost ~]# setenforce 0
开始部署安装:
1.安装syslinux和kickstart
[root@localhost ~]# yum install syslinux -y
[root@localhost ~]# yum install system-config-kickstart -y
2.安装dhcp服务
[root@localhost ~]# yum -y install dhcp
配置dhcpd.conf
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf #红色区域为重点代码
启动dhcpd服务
[root@localhost ~]# service dhcpd start
3.安装httpd
[root@localhost ~]# yum -y install httpd
启动httpd
[root@localhost ~]# service httpd start
在/var/ww/html新建3个目录:rhel5u3_32 rhel5u5_64 rhel6u2_64
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mkdir rhel5u3_32
[root@localhost html]# mkdir rhel5u5_64
[root@localhost html]# mkdir rhel6u2_64
分别挂载镜像到各自目录
[root@localhost html]# mount -o loop /data1/rhel5.3_32.iso /var/www/html/rhel5u3_32
[root@localhost html]# mount -o loop /data1/rhel5.5_64.iso /var/www/html/rhel5u5_64
[root@localhost html]# mount -o loop /data1/rhel6.2_64.iso /var/www/html/rhel6u2_64
4.安装tftp-server
[root@localhost ~]# yum -y install tftp-server
tftp-server是以xinetd方式管理,更改配置文件
server_args是tftp的目录,本次定义在 /tftpboot ,将disable改为no,否则无法启动。
[root@localhost ~]# vim /etc/xinetd.d/tftp #红色区域为重点代码
启动xinetd服务
[root@localhost ~]# service xinetd start
配置PXE启动文件
[root@localhost ~]# mkdir /tftpboot
[root@localhost ~]# mkdir /tftpboot/pxelinux.cfg
[root@localhost ~]# mkdir /tftpboot/rhel5u3_32
[root@localhost ~]# mkdir /tftpboot/rhel5u5_64
[root@localhost ~]# mkdir /tftpboot/rhel6u2_64
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
[root@localhost ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@localhost ~]# cp /var/www/html/rhel5u3_32/isolinux/initrd.img /tftpboot/rhel5u3_32
[root@localhost ~]# cp /var/www/html/rhel5u3_32/isolinux/vmlinuz /tftpboot/rhel5u3_32
[root@localhost ~]# cp /var/www/html/rhel5u5_64/isolinux/initrd.img /tftpboot/rhel5u5_64
[root@localhost ~]# cp /var/www/html/rhel5u5_64/isolinux/vmlinuz /tftpboot/rhel5u5_64
[root@localhost ~]# cp /var/www/html/rhel6u2_64/isolinux/initrd.img /tftpboot/rhel6u2_64
[root@localhost ~]# cp /var/www/html/rhel6u2_64/isolinux/vmlinuz /tftpboot/rhel6u2_64
root@localhost ~]# chmod 644 /tftpboot/pxelinux.cfg/default
[root@localhost ~]# vim /tftpboot/pxelinux.cfg/default #红色区域为重点代码
[root@localhost ~]#vim /tftpboot/boot.msg #红色区域为重点代码
5.获取3个系统版本的ks文件
在http根目录下新建ks目录
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mkdir ks
获取ks文件(格式 为.cfg),以rhel6u2_64系统为例
在正在运行的rhel6u2_64系统上用 yum 安装 system-config-kickstart
[root@localhost ~]# yum install system-config-kickstart -y
[root@localhost ~]# system-config-kickstart
加添配置时钟,root密码
安装模式 选择HTTP ,填写地址192.168.8.64 和 HTTP目录
默认
划分磁盘
添加安装脚本(没有不添加)
保存,名字为 rhel6u2_64.cfg ,并把这个文件放到192.168.8.64的/var/www/html/ks 下
注:rhel5u3_32也是在正在运行的rhel5.3_32系统运行system-config-kickstart,经过图形界面配置等,保存
为rhel5u3_32.cfg ,传到/var/www/html/rhel5u3_32
rhel5u5_64也是在正在运行的rhel5.5_64系统运行system-config-kickstart,经过图形界面配置等,保存
为rhel5u5_64.cfg ,传到/var/www/html/rhel5u5_64
6.客户机测试使用网络安装
1.第一种方法
使用测试电脑(192.168.8.0网段与192.168.8.64相通),开机使用网络启动
2.第二种方法
使用测试电脑(192.168.8.0网段与192.168.8.64相通)在测试电脑上安装vmware,vmware网卡桥接
开启虚拟机, F2 进入BIOS设置为使用网络启动
自动获取IP和列表, 如:要安装rhel5u5_64,输入数字2 回车
总结:1.1)如果自动获取IP超时,查看服务端dhcpd是否开启服务
2)可能IP已被占用,增加range的ip范围
2. 1)如果TFTP超时,查看服务器xinetd是否开启服务
2)可能防火墙没有关闭,service iptables stop ; setenforce 0