PXE批量装机详细教程
作者:互联网
目录
6.创建一个虚拟机,不安装系统,充当客户机(设为仅主机模式)
一、PXE定义及条件
定义:PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。
pxe是通过网卡引导启动
1.1实现的硬件条件
1.BIOS支持
2.网卡支持(现在基本都已支持)
3.需要在bios中开启开关,服务器一般没打开(bmc界面里打开)
4.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置
5.服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载
二、实验过程详解
1.网卡需要查找相关的dhcp服务器(获取地址时间)
2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3.网卡使用tftp客户端吧引导程序加载到内存中来
4.bios执行引导程序
5.引导程序会去TFTP去查找配置文件
6.根据配置文件去引导安装系统
7.系统安装过程
三、搭建PXE远程安装服务器
1.添加双网卡,把第二网卡设为仅主机模式
2.虚拟机中设置第二网卡配置
[root@localhost pxelinux.cfg]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@localhost network-scripts]# vim ifcfg-ens37
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.85.100
NETMASK=255.255.255.0
GATEWAY=192.168.85.1
DNS1=114.114.114.114
3.安装dhcp并修改配置文件
[root@localhost ~]# yum install dhcp -y //安装dhcp
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 12:dhcp-4.2.5-58.el7.centos.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y //复制到/etc/dhcp/dhcpd.conf
[root@localhost ~]# cd /etc/dhcp
[root@localhost dhcp]# vim dhcpd.conf //修改配置文件
27 subnet 192.168.85.0 netmask 255.255.255.0 { //修改为第二网卡的网段
28 range 192.168.85.10 192.168.85.120; //分配ip的范围
29 option routers 192.168.85.1; //本网段的网关
30 next-server 192.168.85.100; //本台服务器的ip
31 filename "pxelinux.0"; //指定文件夹名字
32 }
4.安装并修改tftp服务
[root@localhost dhcp]# yum install tftp-server -y //安装tftp服务
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 tftp-server-5.2-13.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost dhcp]# rpm -ql tftp-server //查询tftp配置文件位置
/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot
[root@localhost dhcp]# vim /etc/xinetd.d/tftp //修改tftp文件配置
6 service tftp
7 {
8 socket_type = dgram
9 protocol = udp
10 wait = yes
11 user = root
12 server = /usr/sbin/in.tftpd
13 server_args = -s /var/lib/tftpboot
14 disable = no //把yes改为no
15 per_source = 11
16 cps = 100 2
17 flags = IPv4
18 }
5.安装syslinux及ftp服务
[root@localhost dhcp]# yum install syslinux -y //安装syslinux
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 syslinux-4.05-13.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost dhcp]# yum install vsftpd -y //安装ftp服务
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 vsftpd-3.0.2-22.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost dhcp]# cd /var/ftp //进入文件夹/var/ftp下
[root@localhost ftp]# mkdir centos7 //添加挂载点
[root@localhost ftp]# mount /dev/sr0 centos7/ //挂载sr0
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]# ls //查看文件夹下所有文件
centos7 pub
[root@localhost ftp]# cd centos7/ //进入挂载点
[root@localhost centos7]# ls
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@localhost centos7]# cd images/
[root@localhost images]# cd pxeboot/ //进入文件夹pxeboot下
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
cp:是否覆盖"/var/lib/tftpboot/initrd.img"? y //复制文件到/var/lib/tftpboot/
cp:是否覆盖"/var/lib/tftpboot/vmlinuz"? y
[root@localhost pxeboot]# cd /var/lib/tftpboot/ //进入文件夹/var/lib/tftpboot/
[root@localhost tftpboot]# mkdir pxelinux.cfg/ //创建文件pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default //创建一个配置文件
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.85.100/centos7 //ip指向服务器的ip地址
[root@localhost pxelinux.cfg]# systemctl stop firewalld.service //关闭防火墙
[root@localhost pxelinux.cfg]# systemctl start dhcpd //启动dhcp
[root@localhost pxelinux.cfg]# systemctl start tftp //启动tftp
[root@localhost pxelinux.cfg]# systemctl start vsftpd //启动ftp
[root@localhost pxelinux.cfg]# setenforce 0
6.创建一个虚拟机,不安装系统,充当客户机(设为仅主机模式)
出现如图回车即可
四、实现Kickstart无人值守安装
1.安装图形化界面
[root@localhost pxelinux.cfg]# yum install system-config-kickstart -y //安装图形化界面
2.设置kickstart
3.添加软件包
[root@localhost pxelinux.cfg]# cd /var/ftp //进入文件夹/var/ftp
[root@localhost ftp]# ls
centos7 ks.cfg pub
[root@localhost ftp]# vim ks.cfg //修改配置文件
添加制式格式 复制软件包
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
kexec-tools
%end
4.指明服务器位置
[root@localhost ftp]# cd /var/lib/tftpboot/ //进入文件夹/var/lib/tftpboot/
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default //修改配置文件
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.85.100/centos7 ks=ftp://192.168.85.100/ks.cfg //指明服务器位置
5.重新启动虚拟机
标签:ftp,教程,cfg,PXE,装机,dhcp,tftp,root,localhost 来源: https://blog.csdn.net/wulei_123456789/article/details/120851407