目录
将VMware的虚拟网卡的DHCP功能关掉
注意:本案例需要带有桌面环境的服务器
1、搭建PXE远程安装服务器(linux01上)
(1)构建vsftpd服务,并部署centos7安装源。
[root@localhost ~]# rm -rf /etc/yum.repos.d/*.repo
[root@localhost ~]# vi /etc/yum.repos.d/centos7.repo
[development]
name=Red Hat Enterprise Linux
baseurl=file:///media/cdrom/
enabled=1
gpgcheck=0
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# yum -y install ftp vsftpd
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# cp -rf /media/cdrom/* /var/ftp/centos7/
[root@localhost ~]# systemctl start vsftpd
注意:
Yum配置文件的id部分必须设置为[development],否则在kickstart中找不到软件包信息
(2)构建TFTP服务,并准备好引导程序、引导菜单、Linux内核、初始化镜像。
[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# vi /etc/xinetd.d/tftp
service tftp
{
…… //省略部分信息
disable = no
…… //省略部分信息
}
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# cd /media/cdrom/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/ \\拷贝内核和镜像
备注1:
TRANS.TBL:文件名转换表文件,在制作ISO映像文件时在每个目录中生成的文件,记录每个目录中所包含的文件名。
备注2:
initrd.img的作用
initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。initrd-2.4.7-10.img主要是用于加载文件系统及scsi设备的驱动。
比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱动,那么在装入scsi模块之前,内核不能加载根文档系统,但scsi模块存储在根文档系统的/lib/modules下。为了解决这个问题,能够引导一个能够读实际内核的initrd内核并用initrd修正scsi引导问题。initrd-2.4.7-10.img是用gzip压缩的文档,initrd实现加载一些模块和安装文档系统等功能。
initrd映象文档是使用mkinitrd创建的。mkinitrd实用程式能够创建initrd映象文档。这个命令是RedHat专有的。其他Linux发行版或许有相应的命令。这是个很方便的实用程式。具体情况请看帮助:man mkinitrd下面的命令创建initrd映象文档。
如果不小心把/boot下的initrd文件删除了,用如下命令可以重建:
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
[root@localhost ~]# yum -y install syslinux \\安装pxe程序
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ \\拷贝引导程序pxelinux.0
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default \\创建
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.10.101/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.10.101/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.10.101/centos7
(3)构建DHCP服务,以便为192.168.10.0/24网段分配地址,并设置TFTP参数。
[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
subnet 192.168.10.0 netmask 255.255.255.0 {
option domain-name-servers ns1.internal.example.org;
option domain-name "internal.example.org";
option routers 192.168.4.1;
option broadcast-address 192.168.4.255;
default-lease-time 600;
range 192.168.10.100 192.168.10.200;
max-lease-time 7200;
next-server 192.168.10.101;
filename "pxelinux.0";
}
[root@localhost ~]# systemctl start dhcpd
(4):创建虚拟机PXE网络安装系统
创建虚拟机时内存大一点(2G以上),否则会提示空间不足
2、 实现无人值守安装系统,创建安装应答文件
(1)安装system-config-kickstart软件包。
[root@localhost ~]# yum -y install system-config-kickstart
(2)运行kickstart配置程序,按实验要求创建ks.cfg应答文件。
在图形桌面环境中,按Alt+F2组合键后输入system-config-kickstart并点运行,或者打开桌面菜单“应用程序”→“系统工具”→“kickstart”。
注意:
如果此处看不到软件包列表,需要将yum源配置文件中括号中的内容改为development
图形化界面配置后保存,文件名用默认的ks.cfg
[root@localhost ~]# grep -v ^# /root/ks.cfg
…… //省略部分信息
%post --interpreter=/bin/bash
rm -f /etc/yum.repos.d/*
echo '[base]
name=Red Hat Enterprise Linux
baseurl=ftp://192.168.4.254/centos7
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release' > /etc/yum.repos.d/centos7.repo
%end
%packages
@^minimal
%end
(3)将应答文件复制到centos7安装源所在的FTP目录下。
[root@localhost ~]# cp /root/ks.cfg /var/ftp/
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
##添加红色部分,其余的删掉
default auto
prompt 0
label auto
kernel vmlinuz
append ks=ftp://192.168.10.101/ks.cfg initrd=initrd.img method=ftp://192.168.10.101/centos7
3、验证PXE网络装机
(1)将1台裸机连接到PXE服务器所在网络,并确认能够通过网络引导。
(2)打开裸机的电源,确认引导成功并自动安装好centos7系统。
新建虚拟机是内存大于2G,磁盘调的大一点,给个60G以上,