Bootstrap

PXE远程安装和Kickstart无人值守安装

目录

                  一、PXE概述

                  二、PXE服务的构建过程

                  三、配置PXE

安装并配置tftp服务

准备PXE引导镜像文件pxelinux.0

 配置default菜单文件

安装ftp服务,准备centos7安装

 四、配置kickstart无人值守安装


一、PXE概述

回顾一下Linux系统的启动过程

加电自检----MBR引导----GRUB菜单----加载内核----initi进程初始化

        PXE是由intel公司开发的网络引导技术,工作再C/S模式下,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个系统。

        PEX严格来说并不是一种安装方式,而是一种引导方式。进行PXE安装的必要条件是安装的计算机中包含一个PXE支持的网卡(NIC),即网卡中必须要有PXE Client。 PXE协议使计算机可以通过网络启动。

        协议分为client和server端,PEX client 在网卡的ROM中,当计算机引导,BIOS把PXE client调入内存执行,由PXE client将放置在远端的文件通过网络下载到本地运行。运行PXE协议需要设置DHCP服务器和TFTP服务器。DHCP服务器用来给PXE client分配一个IP,由于是给PXE client分配地址,所以在配置DHCP服务器时需要增加想要的PXE设置。

二、PXE服务的构建过程

        1、PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。

        2、DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目录/var/lib/tftoboot下

        3、PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。

        4、TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。

        5、PXE客户机通过网络来启动到系统安装主界面

        6、PXE客户机向文件共享服务器(ftp、http、nfs)发起获取centos系统或windows系统安装文件的请求。

        7、vsftp文件共享服务响应PXE请求,将共享额系统安装文件传输给PXE客户机。

        8、PXE客户机进入到安装提示向导界面,用户需要手动完成系统安装的操作   

三、配置PXE

1 关闭防火墙和核心防火墙

2 下载安装dhcp服务

3 复制模板  cp -p  /usr/share/doc/dhcp*/dhcpd.conf.example  /etc/dhcp/dhcpd.conf  #-p连带文件属性一起复制

 4 vim /etc/dhcp/dhcpd.conf  #进入配置文件

5 添加一张网卡

 

 6 把ens33网卡复制到本地 并命名为ens37

 7 vim ens37 编辑网卡

 

 

 8 重启网卡 并查看

 9启动dhcp服务 并加入开机自启动

 

安装并配置tftp服务

        配置前先简单说一下什么是tftp,tftp是一个小并且易于实现的文件传输协议,tftp是基于UDP数据报,需要有自己的差错改正措施。tftp只支持文件传输,不支持交互,没有庞大的命令集。安全性低,不支持身份验证

10 先下载需要的服务软件

 

 11 配置tftp

主要改disable这行,开启tftp服务

12 mount /dev/cdrom /mnt  #挂载镜像文件

    进入内核文件 将内核初始化镜像文件复制到 /var/lib/tftpboot

    cd /mnt/images/pxeboot

    cp initrd.img vmlinuz /var/lib/tftpboot  #复制内核初始化文件

 vmlinuz:是可引导的、压缩的内核

initrd.img:系统初始化文件

13 开启服务

 以上就是为了将镜像中的内核文件+系统的初始化文件,丢到tftp的默认共享目录中,以便客户端来下载使用。

 

准备PXE引导镜像文件pxelinux.0

pxelinux.0是个二进制文件,主要作用相当于一个系统安装步骤的指引,引导客户端如何安装系统

14 yum provides /pxelinux.0 

 #查找这个文件是哪个安装包安装的,当不是一个路径和一个软件包时用

 15 yum -y install syslinux

 16  rpm -ql syslinux | grep pxelinux.0  #查找pxe引导程序的位置

17 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot  #拷贝tftp的根目录下,系统引导文件

 

 配置default菜单文件

18 mkdir /var/lib/tftpboot/pxelinux.cfg/ 

touch default

19 vim /var/lib/tftpboot/pxelinux.cfg/default  #配置菜单文件

 

vim /var/lib/tftpboot/pxelinux.cfg/default 
default auto //指定默认入口名称 ,对应下面的label auto
prompt 1 //设置是否等待用户选择,1 表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式

label auto   //默认的图形安装
      kernel vmlinuz 
      append initrd=initrd.img method=ftp://192.168.111.100/centos7    //method必须指定网络路径

label linux text    //文本安装模式,出现boot:时输入linux text
      kernel vmlinuz 
      append text initrd=initrd.img method=ftp://192.168.111.100/centos7 

label linux rescue    //救援模式,出现boot:时输入linux rescue
      kernel vmlinuz 
      append rescue initrd=initrd.img method=ftp://192.168.111.100/centos7

安装ftp服务,准备centos7安装源

yum -y install vsftpd   #安装ftp服务

mount /dev/cdroom  /mnt    #如果前面挂载了可以省略

 

 mkdir /var/ftp/centos7   

cp -rf /mnt/* /var/ftp/centos7   #将镜像复制到其中

 启动

 四、配置kickstart无人值守安装

yum -y install system-config-kickstart       #安装system-config-kickstart工具

 打开无人值守配置程序开始配置

 

 

 

 

 

 

 

 

 

 

 vim anaconda-ks.cfg   

将里面的下图内容,复制到var/ftp/ks.cfg中

 

 vim /var/lib/tftpboot/pxelinux.cfg/default 

#进入菜单文件进行优化,将ks引导参数至引导菜单文件

 

 重启新创建的虚拟机

 

;