博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用PXE+dhcp+tftp+http全自动化安装centos6
阅读量:6102 次
发布时间:2019-06-20

本文共 3182 字,大约阅读时间需要 10 分钟。

hot3.png

一 实验环境要求

1. 一台提供dhcp服务的虚拟机A,一台等待安装系统的虚拟机B,它们在同一自定义虚拟网段内(如VMnet3)。
2. B的网卡支持网络引导,A上同时还提供了tftp(提供安装引导程序所需文件)和http(提供kickstart配置文件和安装树)服务

二 原理

B依赖A的dhcp服务提供ip/netmask,顺便获取tftp服务所在主机ip和pxelinux.0文件在tftp服务上的位置,这个位置同样也是获取启动系统安装引导界面所需文件的位置。在isolinux的配置文件中指定kickstart配置文件位置(可以通过http服务提供),这个位置同时也是安装树所在目录。

三 所需的主要文件说明

1.需要放到tftp服务的工作目录下的文件:

pxelinux.0: 由syslinux程序提供,功能相当于bootloader,它取代了文件isolinux.bin,用于启动安装引导界面。文件位于/usr/share/syslinux/目录下vmlinuz,initrd.img: 安装引导系统isolinux自己运行时所需内核和initrd文件。文件位于安装光盘下的images/pxeboot/目录下boot.msg, vesamenu.c32, splash.jpg: 展示安装引导菜单所需文件。文件位于安装光盘下的isolinux/目录下isolinux.cgf: isolinux的配置文件,需要修改其中内容,指定ks文件所在位置。文件位于安装光盘下的isolinux/目录下	/var/lib/tftpboot/	├── boot.msg	├── initrd.img	├── pxelinux.0	├── pxelinux.cfg	│   └── default	├── splash.jpg	├── vesamenu.c32	└── vmlinuz

2.需要放到http网站目录下的文件:

ks.cfg:    kickstart配置文件,需要自己编写安装树:    也就是安装系统选定的安装光盘中的rpm包	/var/www/html	├── centos(把光盘绑定到这个目录,以提供安装树)	└── ks.cfg

四 配置过程

1.安装tftp服务端包:tftp-server。
它受xinetd服务控制,监听端口为udp:69。安装好后会自动创建目录/var/lib/tftpdboot。
启动服务:

chkconfig tftp on	service xinetd restart

2.配置dhcp服务

主要在subnet中加入两行:

next-server 192.168.1.10;	#提供tftp服务的主机,这里就在虚拟机A上	filename "pxelinux.0";		#tftp服务上的,用于安装时提供bootloader功能的文件名

3.往/var/lib/tftpboot目录中复制所需文件

光盘中的文件isolinux.cgf需要放到目录/var/lib/tftpboot/pxelinux.cfg/下,并重命名为default,然后修改其中的配置内容:

append initrd=initrd.img ks=http://192.168.1.10/ks.cfg #指明kickstart配置文件所在位置

其它文件直接复制就行。

4.安装httpd服务

安装好httpd后,在网站根目录下创建文件夹centos,然后把光盘绑定到这个文件夹:

mkdir /var/www/html/centos	mount --bind /media/cdrom /var/www/html/centos

5.编写kickstart配置文件,并放到http网站根目录/var/www/html/下。

这里是centos6的kickstart配置文件格式,与centos5不兼容:

# Kickstart file automatically generated by anaconda.#version=DEVELinstallcdromlang en_US.UTF-8keyboard us# Kickstart file automatically generated by anaconda.#version=DEVELinstall#cdromurl --url=http://192.168.1.10/centoslang en_US.UTF-8keyboard usnetwork --onboot yes --device eth0 --bootproto dhcp --noipv6rootpw  --iscrypted $6$TYALPiNmQ0Bjyii3$XHu9ghpQiu0AxnfWBgp8/DykuCNhG00TfNaTeaHgI17JozWOszBbLyF9xFp8w07lZ4QrkK6oAlvICuk.tIeHc.rebootfirewall --disabledauthconfig --enableshadow --passalgo=sha512selinux --disabledtimezone --utc Asia/Shanghaibootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"# The following is the partition information you requested# Note that any partitions you deleted are not expressed# here so unless you clear all partitions first, this is# not guaranteed to workclearpart --allzerombrtextpart /boot --fstype=ext4 --size=200part pv.008002 --size=20480volgroup vg0 --pesize=8192 pv.008002logvol / --fstype=ext4 --name=root --vgname=vg0 --size=10240logvol swap --name=swap --vgname=vg0 --size=2048logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=6000logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=2048#repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100%packages@core@server-policy@workstation-policy%end%postecho -e 'Learning Service\nhttp://www.abc.com\n' >> /etc/issuesed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab%end

6.关闭iptables,selinux服务,重启dhcpd,httpd服务,启动虚拟机B后就可以看到安装菜单,默认等待60秒后就会自动进入安装过程,直到安装完成,并自动重启展示登录界面。

 

转载于:https://my.oschina.net/codespring/blog/735384

你可能感兴趣的文章
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
高利率时代的结局,任重道远,前途叵测
查看>>
Debian 6.05安装后乱码
查看>>
欢迎大家观看本人录制的51CTO精彩视频课程!
查看>>
IntelliJ IDEA中设置忽略@param注释中的参数与方法中的参数列表不一致的检查
查看>>
关于软件开发的一些感悟
查看>>
uva 10806
查看>>
纯CSS3绘制的黑色图标按钮组合
查看>>
Linux中环境变量文件及配置
查看>>
从0开始学Flutter
查看>>
mysql操作入门基础之对数据库和表的增删改查
查看>>
IIS负载均衡
查看>>
分布式事务,EventBus 解决方案:CAP【中文文档】
查看>>
Linux下的CPU性能瓶颈分析案例
查看>>
spring mvc入门
查看>>
2012在数据库技术会议上的讲话PPT打包
查看>>
【Android】 TextView设置个别字体样式
查看>>
python svn
查看>>