CentOS的无人值守安装[PXE]
实验环境:一台ftp服务器,并提供ks.cfg文件
一台或若干台客户机
VMware workstation 10
PXE简介:预启动执行环境)工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP或MTFTP协议下载一个启动软件包到本是机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
我们知道在linux系统的安装过程,我们看到的交互式安装界面是anaconda安装程序提供的,而这款程序的
关键作用是产生ks.cfg文件,那么我们就将试着将PXE与ftp服务器接合器起来实现自动化安装,所以我们的第一步就是先在本地建成vsftpd服务器,
如图,安装vsftpd服务器,第一步挂载光盘并修改本地yum库的配置文件,将enable=1,意为启用本地yum源
再将暂时不用的网络yum配置文件先把他挪到一边去,比如新建一个old目录并把它挪进去
注意此时我们服务器的相关安全功能要把他关掉,比如,selinux功能,防火墙功能:
用setenforce把他设为0,然后用iptables -L 查看防火墙列表,如图
发现防火墙功能没有打开,那就可以先不用去设置他,接着安装:
然后接着我们要做的就是用kickstart工具来产生ks.cfg文件,然后才能用于anoncond的安装使用,我们先搜索一下关于kickstart工具的安装信息,如图
发现有两个,而我们需要的就是关于系统配置的那个,然后把他安装,如图(noarch是一种那最为常见的二进制软件包文件后缀,可安装在任意平台)
相关提示,输入y
然后我们切换到ftp服务器所在的目录中去,发现有一个pub的目录,说明我们要把要用到的文件拷贝到他的同一级目录中去,即/var/ftp,如图
接着我们就要用到上面安装的kickstart了,(注意,因为kickstart需要图形界面的支持,所以使用xshell的同学应该先确认一下自己的xshell有没有该功能,建议使用Xmanager 4)
耐心等待一会后,复制完成后我们就可以接着执行kickstart指令了,如图
然后我们进行有关的选择,比如语言和键盘类型,然后时去改为asia/shanghai,然后在给出一个你自己的根口令,然后给口令加密那项也要选上,接着目标平台不用改,因为绝大多数pc都是这两种,然后再选择安装后重启,并选择下一项静默安装,注意,千万不能选交互安装,那样安装的步骤会很多,如图
接着第二步,安装方法,选择执行新安装,然后选ftp服务器,之后输入你建立的服务器的ip地址和相关文件的存放目录,如图(我们的文件拷贝在根目录下),此时不必指定用户名和口令
然后接着第三项,我们选新安装一个启动加载项,然后给grub加上或不加口令,然后选在MBR上安装引导加载程序,再往下的内核参数中,我们选择静默模式,然后创建新分区,我们可以简单创建一下,如图创建一个/分区,给他20G,然后再建一个/boot引导分区,最后再建一个/wap交换分区
(注意,交换分区不需挂载点,我们要直接在文件类型中选择交换,然后指定大小,如图
然后可以看到所有的具体分区信息;
然后再网络设备中,我们要给系统加一块网卡,比如图中的命名为eth0,为了方便地址管理,类型选择为dhcp
接下来验证,下面那一行我们还用不到,所以只需选择加密方式为屏蔽口令和本地MD5类型即可,如图:
接下来安全,我们为了后续的方便把本地的防火墙禁用掉,把selinux也关闭,如图
然后是显示的有关选项,这个可以看自己的喜好而定,但首次启用时的代理服务要禁用掉,并且要选择有桌面系统,gnome 或kde,如图:
再然后是软件包的选择,我们可以在列表中选择自己想要安装的软件包
接着我们要进行预安装脚本的安装和安装后的脚本,我们暂时还不需要,接下来进行文件的生成:
然后我们进入相关的路径,可以看到我们的生成的文件,如图;
用vim打开后会开到他的配置文件内容,上半部分是安装选项,后半部分是数据包选择,以%package开头以%end结尾,如图
然后用yum安装vsftpd,
接着把ftp服务器打开,用service vsftpd restart,如图
因为pxe环境用的是tftp所以我们还要安装tftp-server软件包和安装并配置dhcp服务器
并且看一下他的文件信息,如图
然后编辑/etc/xinetd.d/tftp这个文件,从这个文件可以看出他是一个后台运行常驻内存的超级守护进程
将第十四行的disable选项改为no,启动这个超级守护进程
然后重新启动这个超级守护进程
接着再把ks.cfg文件拷贝到ftp所在的目录下,并且可以看到文件类型和大小,如图
配置ftp服务器,将ftp中放入启动所需要的各种文件,拷贝光盘镜像,内核文件,初始化内存文件到/var/lib/tftpboot目录下,内容如下
然后安装syslinux命令
进入他的/usr/share/syslinux文件中,可以看到在目录下有一个pxelinux.0的驱动文件(注意是0(零)不是o),需要把他拷贝进/var/lib/tftpboot这样一个目录中,
如图,我们可以看到三条内容(前面拷过两个)
在次/var/lib/tftpboot/目录下新建一个pxelinux.cfg的目录,并进入光盘的镜像文件中,将isolinux中的isolinux.cfg文件拷贝到/var/lib/tftpboot/pxelinux.cfg目录中,并命名为default
然后对这个文件进行修改,不过小编在这步编写的时候一直写不了,(因为权限,因为从光盘复制过来的原因。。。。)所以我们要用chmod 改一下他的权限,
然后改如下内容
并在第一个label项下的append追加项的后面加入ks.cfg=ftp://192.168.1.187/ks.cfg
进入dhcp的配置文件中,此时他是没有内容的,我们需要重新编写,可以读取他的样板文件,进行修改,进入/etc/dhcp/dhcpd.conf后在底行模式用r /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample读取样板文件
将dhcp配置文件的编辑,将原有的样板文件中的地址池的例子删除,然后重新定义,既从34行以后的都删除,从33行开始改为以下内容,如图
并将第8.9行多余的内容删除
在启用dhcp前一定要将虚拟机的dhcp关掉(如果有的话),否则,容易地址冲突
重启dhcp服务器
为了保证我们的dhcp服务的正常工作,我们可以查看一下系统的message日志,看dhcp是否工作证常,如图
可以看到dhcp各项服务正常
(也可以将vsftpd也重新启动一下)
接着重新开启一个新的虚拟机,如图,选centos,并开机
可以看到屏幕显示的从哪个服务器上获得的开机文件及地址信息,
看到安装正常进行,达到预期效果