基于网络的无人值守安装操作系统
简介:
1、pxe
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户?)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。
2、kickstart
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。适用于安装多台机器时,不用人工交互,从而省去管理者的时间。
拓扑图:
实验环境:
VMware Workstation10、
Centos 6.5(最小安装)、网络模式 仅主机模式,开启dhcp、关闭防火墙、
远程连接工具:Xmanager Enterprise 4
主机地址:192.168.3.100
dhcp地址池:192.168.3.101--192.168.3.200
tftp、vsftp的安装树和引导程序都在本机上
原理:
首先安装dhcp、tftp-server、vsftp,然后配置相应的服务器、dhcp服务器里要配置,【预安装的IP地址池,和tftp服务器的位置】,tftp-server主要配置【网络引导的驱动程序、驱动镜像、内核、引导程序的配置文件】在用system-config-kicksart 工具生成ks.cfg文件,然后提供给引导程序anaconda ,因为system-config-kicksart要依赖于桌面,所以如果在物理机上操作的话还需安装X Windows 和Desktop 桌面包组,因为我用的是Xmanager Enterprise 4 ,里面自带有桌面系统,所以省去了桌面的安装,vsftp主要放置【放置有ks.cfg文件、安装树】
搭建FTP server ,将生成的ks.cfg 放置在FTP的根目录下,放置将要安装的系统的安装树,(就是光盘跟目录下的文件。
ks.cfg文件的作用:是自定义了要安装的机器的交互信息,[语言键盘网络防火墙 selinux 分区]可以放在光盘、u盘、server/目录。
步骤一:
首先安装dhcp、tftp-server、vsftpd
[root@new~]#yum--disablerepo=\*--enablerepo=c6-meidainstalldhcptftp-servervsftpd-y
二、 配置dhcp服务器
[root@new~]#vim/etc/dhcp/dhcpd.conf
这是dhcp的配置文件,可以将样例配置文件
删除掉不需要的,这里我将37行下的删除
保存退出
三、配置tftp-server
拷贝光盘上的内核和驱动镜像,到tftp站点的主目录
[root@newtftpboot]#cp/media/cdrom/isolinux/vmlinuz./[root@newtftpboot]#cp/media/cdrom/isolinux/initrd.img./
安装网络引导程序,拷贝到当前目录
[root@newtftpboot]#yum--disablerepo=\*--enablerepo=c6-mediainstallsyslinux-ycp/usr/share/syslinux/pxelinux.0/var/lib/tftpboot/
新建一个引导程序的配置文件的文件夹
[root@newtftpboot]#mkdirpxelinux.cfg***名字要写成这个规定的名字
为网络引导程序拷贝一个配置文件到刚才新建的那个目录(我就还用光盘上的配置文件了)
[root@newtftpboot]#cp/media/cdrom/isolinux/isolinux.cfgpxelinux.cfg/default***
名字要写成default
修改配置文件default,作用是给网络引导指明ks.cfg和安装树的位置
四、FTP服务器的配置
vsftp主要放置【放置有ks.cfg文件、安装树】
1、产生ks.cfg文件,先安装包system-config-kickstart
在执行kickstart命令之前先设置一下yum源
[root@newyum.repos.d]#mkdirlinshi[root@new~]#cd/etc/yum.repos.d/[root@newyum.repos.d]#mvCentOS-Base.repoCentOS-Debuginfo.repoCentOS-Vault.repo./linshi[root@newyum.repos.d]#vimCentOS-Media.repo
[root@new~]#system-config-kickstart
配置完成后保存
进入root目录,查看或者修改ks.cfg文件
[root@new~]#vimks.cfg
ks.cfg为预安装系统指明安装树的位置
将ks.cfg拷贝到FTP主站点目录
[root@new~]#cpks.cfg/var/ftp/
2、产生安装树(安装系统的各种应用)
为了简单一点我用系统光盘上的安装树,将光盘挂载到FTP/pub目录
[root@new~]#mount/dev/cdrom/var/ftp/pub/
这样就产生了安装树
服务器端基本配置完成,下面可以新建一个虚拟机,进行安装测试
因为已经配置有dhcp的服务器,所以虚拟机的就可以关掉了
设置启动方式
选择网络进行引导
可以看到,系统正在安装,实验是成功的
还有小问题:
安装后的主机名是都一样的,为了能够使每一台主机都能有属于自己的主机名,这是可以在ks.cfg文件里加入shell脚本,来控制每一台机器名字的唯一,也可以在创建ks.cfg文件是,加入进去。
脚本内容:
其他案例可参考/mchina/p/centos-pxe-kickstart-auto-install-os.html