利用pxe dhcp tfcp http kickstart实现批量部署linux系统
利用一台已经做好配置的主机去批量安装其他主机系统
2.了解什么是Pxe
1.预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统 。
2.由Intel和Systemsoft公司于1999年9月20日公布的技术
3.C/S的工作模式
4.PXE客户端会调用网际协议(IP)、用户数据协议(UDP)、动态主机分配协议(DHCP)、小型文件传输协议(TFTP)、HTTP等网络协议。
PXE 协议大致上结合了DHCP和TFTP,虽然都有在两者上面有改进。DHCP用于查找合适的启动伺服器,TFTP用于下载初始引导程序和附加文件。
3.pxe工作原理
插图
4.前期准备(与上一章很多类似)
1.配置http模块
2.共享ks配置资源 1.system-config-kickstart 打开图形化界面 2.剩下如上章 3.选择源是Http 4.在系统安装后自动配置好yum 源
cat >/etc/yum.repos.d/westos.repo <<EOF [rhel7.0] name=rhel7.0 baseurl=http://172.25.254.110/rhel7.0 gpgcheck=0 EOF
3.保存/var/www/html/ks.cfg文件并进行编辑 在末尾加上
%end %packages X11 @base dhcp %end
4.ksvalidator /var/www/html/ks/westos.cfg 对文件进行语法检测
5.程序准备
1.进行dhcp配置
2.进入挂在镜像的目录 进入 isolinux/目录下的isolinux.cfg文件(里面含有等待时间,标题,参数等信息)
利用pxe原理主机1在响应主机2的dhcp请求时,让它给2的file文件的内容是让主机2去读取isolinux目录里的内容,即可实现安装。而isolinux目录的内容,是由PXE环境去引导读取的。
3.pxe模块
- yum search pxelinux yum install syslinux.x86_64 -y
此程序包括了pxe环境执行时的一套组件包 - 查看syslinux的配置信息 rpm -ql syslinux
- less /usr/share/doc/syslinux-4.05/pxelinux.txt 分页浏览(讲述了pxe的使用)
- tftp模块
1.yum search tftp 由上述文件pxe使用得用tftp
2.yum install tftp-server.x86_64 -y
3.sytemctl start tftp sytemctl enable tftp
注:pxelinux就是之前一直所说的dhcp分配ip时,所带的那个"file"。
pxelinux.0的类型是数据,作用是读取tftp目录里的默认pxelinux.cfg/default文件。
但是安装系统时,需要读取isolinux下的isolinux.cfg文件,因此只需把此文件复制到pxelinux目录里,并且重命名为default。
isolinux.cfg就会被pxelinux.0自动读取
- tftp模块
6.程序实现
1.rpm -ql tftp-server 查看tftp的配置文件
2.cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
3.cp /var/www/html/rhel7.0/isolinux/所有 /var/lib/tftpboot
4.mkdir /var/lib/tftpboot/pxelinux.cfg 创建此目录,因为pxelinux.0默认其为配置目录,创建pxelinux.cfg目录,固定目录名称
5.cp /var/lib/tftpboot/isolinux.cfg pxelinux.cfg/default 文件名称必须为default,这是pxe程序默认读取的文件,内容是isolinux.cfg文件的
6.cp /var/lib/tftpboot/isolinux.cfg pxelinux.cfg/default 文件名称必须为default,这是pxe程序默认读取的文件,内容是isolinux.cfg文件的
7.vim /etc/dhcp/dhcpd.conf 在net-server 下面一行加上 filename "pxelinux.0"
8.systemctl restart dhcpd
9.vim /var/lib/tftpboot/pxelinux.cfg/default #编辑default文件的内容。
10.
第65行:代替了用kickstart安装时,手动按键tab,只读ks.cfg和iso镜像资源的过程。自动完成安装。
注:在安装过程中提示kickstart文件配置有误时,可直接使用system-config-kickstart name.cfg 进入图形化界面更爱设备