PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/win7/win8,linux等。
1. 系统环境介绍虚拟机软件:VirtualBox
虚拟机网络连接方式:仅主机(Host-Only)网络
服务端操作系统:CentOS 7
配置服务:DHCP+TFTP+FTP(也可以使用HTTP、NFS等)
完成目标:搭建pxe环境,结合kickstart响应文件,完成CentOS 7系统的自动化安装。
1.1 服务器及引导文件介绍
主要文件
系统安装时,由引导文件加载内核文件后才可以看到系统安装界面。
pxelinux.0 - 系统引导文件
vmlinuz、initrd.img - 内核文件
DHCP 服务器
为客户端提供必要的网络信息,如IP、netmask、gateway、dns等,并向客户端提供引导文件(pxelinux.0)的位置及TFTP服务器地址等。
TFTP 服务器
主要为客户端提供内核文件和引导文件。
FTP 服务器
为客户端提供kickstart响应文件和系统镜像文件。
pxe系统安装时,首先由dhcp服务器向客户端提供IP、引导文件位置、tftp地址等信息,客户端获取相关信息后,通过TFTP下载引导文件和内核文件,引导系统启动,并通过ftp服务器下载系统安装过程中所需的各项软件包和kickstart响应文件。
kickstart响应文件主要用来自动设置时区、密码、系统分区、软件包选择等信息。
1.2 服务端详细环境详细系统环境为:
[root@pxe1 ~]# uname -a Linux pxe1 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [root@pxe1 ~]# [root@pxe1 ~]# hostnamectl Static hostname: pxe1 Icon name: computer-vm Chassis: vm Machine ID: 18ef8dea83044565b82bf6bed368cdab Boot ID: 9beedf23c4e14016a0a458ddcd9c487b Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-514.el7.x86_64 Architecture: x86-64 [root@pxe1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.14 pxe1 [root@pxe1 yum.repos.d]# ifconfig enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.56.14 netmask 255.255.255.0 broadcast 192.168.56.255 inet6 fe80::a00:27ff:fe43:c11d prefixlen 64 scopeid 0x20<link> ether 08:00:27:43:c1:1d txqueuelen 1000 (Ethernet) RX packets 1441 bytes 121057 (118.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 928 bytes 98905 (96.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ... 1.3 服务端初始环境准备关闭SELinux和防火墙:
# 为了后续配置方便,首先关闭系统SELinux和防火墙 # 关闭SELinux,修改文件使SELINUX=disabled [root@pxe1 ~]# vim /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted #重启系统后配置生效,查看SELinux的状态。 [root@pxe1 ~]# sestatus SELinux status: disabled #关闭防火墙 [root@pxe1 ~]# systemctl stop firewalld [root@pxe1 ~]# systemctl disable firewalld [root@pxe1 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) 1.4 客户端环境准备在VirtualBox中新建linux虚拟机:
名称:随便填写
2. 配置yum源这里主要介绍使用系统光盘配置本地yum源的方法。
首先挂载系统光盘:
在虚拟机右下角单击光盘图标,选择需要挂载的系统镜像文件。