PXE+Kickstart 搭建无人值守网络安装服务器 一、搭建DHCP服务器,用来获取IP地址
✔基础知识:
1. DHCP(DynamicHost Configuration Protocol)
动态主机配置协议
端口:UDP 67/68
功能:用来自动给客户机分配TCP/IP信息的网络协议
2. DHCP工作过程
① IP租用请求
当DHCP客户机启动后,向网络内广播一个DHCP请求信息,所有客户机都会收到,但不是DHCP客户机的机器(比如设置了静态IP地址)就会把广播信息忽略
② IP租用提供
DHCP服务器回应客户机,提供一个所在网络内空闲的IP地址
③ IP租用选择
如果客户机所处网络内有多个DHCP服务器,则选择第一个回应的信息,然后向所在网络广播一个消息,表明自己已经接受了一个DHCP服务器分配 的IP地址
④ IP租用确认
DHCP服务器接受到客户的选择信息之后,会返回给客户一个消息包,客户机按服务器的信息配置分配相应的IP地址,然后服务器会记录这次分配行为
⑤ IP租用失败
客户机申请IP地址失败时,会返回一个以“169.254”开头的临时的IP地址:169.254.*.*
✔操作步骤:
操作之前先将NAT模式下的DHCP服务关闭
在创建新的虚拟机的时候,注意将内存的大小安排好,一般为2G
(这里以2G内存的虚拟机进行的创建)
1.在服务器端安装DHCP Server服务
首先,DHCP服务器必须为固定IP地址
这里将DHCP服务器IP设置为:192.168.10.1/24
① 安装必要软件:
yum install dhcp -y
进入DHCP配置文件所在目录
cd /etc/dhcp
复制一份DHCP配置文件模板,覆盖原有的配置文件dhcpd.conf
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
② 编辑配置文件/etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
实现单区域DHCP
注意:显示文件的行数 :set nu
第7行:设置DHCP客户端resolve.conf内解析用的域名,
option domain-name "xf.com";
第8行:设置DHCP客户端的DNS服务器,这里设置为DHCP服务器IP
option domain-name-servers 192.168.10.1;
第10行:默认租约时间
第11行:最长租约时间
第32-35行,声明网络段、IP地址池、和网关
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.210 192.168.10.220;
option routers 192.168.10.254;}
第75-78行,给指定的客户机根据mac地址分配指定的IP地址(按需求配置)
或者 将以下内容覆盖进/etc/dhcp/dhcpd.conf文件
next-server 192.168.10.1;
filename "/pxelinux.0";
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.210 192.168.10.220;
}
③ 重启服务,查看服务状态
systemctl restart dhcpd
systemctl status dhcpd
2.测试:客户端获取IP
重开一台虚拟机作为DHCP的客户端
①在linux client安装客户端软件
yum install dhclient -y
②将网卡设置为自动获取IP地址
将linux client的网卡设置为自动获取
vim /etc/sysconfig/network-scripts/ifcfg-ens33
重启网卡
systemctl restart network
③ 释放历史IP,重新获取IP
dhclient -r //释放历史IP
dhclient -v //重新获取IP
③ 查看DHCP 客户端的IP地址获取情况
ifconfig
注:如果多网卡,可以指定网卡获取IP
dhclient -v 网卡名称
3.创建一台虚拟机,查看是否能够获取DHCP
获取成功
二、搭建tftp服务器,用来提供启动文件
第一步:安装tftp服务
yum install tftp-server xinetd –y
第二步:开启tftp服务
进入vi /etc/xinetd.d/tftp,修改disable = no
注意:server_args 选项指定的是tftp的默认根目录/var/lib/tftpboot,pxelinux.0需要放在这里
第三步:启动tftp服务
systemctl start tftp
systemctl start xinetd
第四步:制作启动菜单文件(pxelinux.cfg/default)
( 1 )、创建文件夹:mkdir /var/lib/tftpboot/pxelinux.cfg
( 2 )、下载syslinux,下载完成之后会自动生成pxelinux.0
yum install syslinux –y
( 3 )、将pxelinux.0文件拷贝到tftp根目录下
先查找pxelinux.0文件在何处:rpm -ql syslinux |grep pxelinux.0
再进行拷贝cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
( 4 )、使用光盘自带的启动文件制作启动菜单:
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
( 5 )、使用光盘自带的相关所需配置文件:
boot.msg:启动菜单显示信息
vmlinuz:系统内核
initrd.img 系统镜像
vesamenu.c32 :系统核心文件
cd /mnt/isolinux
cp /mnt/isolinux/boot.msg vmlinuz initrd.img vesamenu.c32 /var/lib/tftpboot
( 6 )、修改启动菜单:
vi /var/lib/tftpboot/pxelinux.cfg/default
修改等待时间:
timeout 60 (6秒)
修改默认菜单:
menu default 放入相关label下
第五步:关闭防火墙,将安全方式设置为0,重启xinetd服务和tftp服务
第六步:创建一台虚拟机,查看是否能够跳转出现启动界面
三、搭建ftp服务器,用来提供镜像文件
这一步并不是安装镜像文件,只是提供一个镜像文件
第一步:下载vsftpd并开启
yum install vsftpd –y
systemctl start vsftpd
默认匿名用户名ftp,密码随意 ,ftp根目录:/var/ftp/pub
第二步:将光盘镜像挂载在/var/ftp/pub下
mount /dev/cdrom /var/ftp/pub(生产环境不建议)
第三步:修改启动菜单里系统文件安装路径
vi /var/lib/tftpboot/pxelinux.cfg/default
将以下内容修改:
label linux
append initrd=initrd.img inst.stage2=ftp://ftp服务器IP地址/pub quiet
为实验方便,关闭selinux
setenforce 0
或修改/var/ftp/pub的selinux上下文
vim /etc/sysconfig/selinux 将enforcing->disabled(需要重启)
第四步:创建一台虚拟机,查看是否能够跳转出现图形化界面
四、创建应答文件,用来自动化进行选择
第一步:安装kickstart
yum install system-config-kickstart –y
注意:若没有图形化界面的服务器,则需要安装图形化环境,才能使用kickstart
下载图形化环境:yum groupinstall "Server with GUI" –y
设置中文字符:LANG=zh_CN.UTF-8
启动图形:startx
第二步:打开kickstart图形交互界面
system-config-kickstart
注意:若出现软件包界面无显示,需要修改yum源的标签名为“[development]”
- 修改yum.repos.d目录下的local.repo文件:
修改之前:
修改之后:
- 修改完成后,软件包界面出现显示
第三步:按照以下步骤开始配置应答文件
1)基本配置:
注意:要给(root用户)根密码加密,这样显示配置文件的时候,密码是乱码形式,提高安全性;使用文本模式安装,这样安装快(默认是图形化模式安装)
2)安装方法:
执行全新安装-FTP-FTP目录(pub)
找镜像文件
安装是利用镜像安装的,而镜像是在pub里面的(这里是相对路径)
3)引导装载程序选项
安装新引导装载程序-在主引导记录(MBR)中安装引导装载程序
4)分区信息
清除主引导记录-删除所有现存分区-初始化磁盘标签
添加分区:1000MB=1G 10000MB=10G
交换分区是内存的两倍
5)网络配置(跳过)
6)验证(默认)
7)防火墙(开启或关闭,开启时信任SSH服务)
8)显示配置
取消图形环境
9)软件包选择(按需选择)
10)保存
第四步:在/var/ftp下创建ks目录
mkdir /var/ftp/ks
第五步:将新制作好的应答文件ks.cfg存放到ftp的ks目录下:
cp /root/ks.cfg /var/ftp/ks
第六步:在default配置文件里,指定应答文件
vim /var/lib/tftpboot/pxelinux.cfg/default
修改如下:
label
append initrd=initrd.img inst.stage2=ftp://ftp服务器IP地址/pub ks=ftp://ftp服务器IP地址/ks/ks.cfg quiet
修改前:
修改后:



