拓展开机过程
服务器的引导方式(boot)
按下电源
自检(post)
读取bios中引导设备(光驱、硬盘、优盘、网卡)
加载引导程序
加载初始化镜像
加载内核
systemd(init):守护进程,systemctl start
进程树
PXE(Preboot eXecution Environment,预启动执行环境)并结合 Kickstart 配置实现无人值守自动安装
- 规模化:同时装配多台服务器
- 自动化:安装系统、配置各种服务
- 远程实现:不需要光盘、U盘等安装介质
条件
- 客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导,rarp(反向地址解析)
- 网络中有一台 PXE 服务器(dhcp服务器)以便为客户机自动分配地址、指定引导文件位置
- 服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载
一、搭建PXE远程安装服务器
将VMware的虚拟网卡的DHCP功能关掉
注意:本案例需要带有桌面环境的服务器
1:搭建PXE远程安装服务器(linux01上)
CentOS7的网络安装源一般通过 HTTP、FTP 协议发布,另外也支持 NFS(NetworkFile System,网络文件系统)协议;若使用FTP协议发布安装源可以在服务器上部署一个YUM软件仓库
(1)构建vsftpd服务,并部署centos7安装源
[root@localhost ~]# rm -rf /etc/yum.repos.d/*.repo
[root@localhost ~]# vim /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 ~]# vim /etc/xinetd.d/tftp
service tftp
{
……
protocol = udp //TFTP 采用 UDP 传输协议
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot //指定 TFTP 根目录
disable = no //是否禁用改为no
……
}
[root@localhost ~]# systemctl start tftp
##安装Linux内核、初始化镜像文件
[root@localhost ~]# cd /media/cdrom/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/ //拷贝内核和镜像
##准备PXE引导程序
[root@localhost ~]# yum -y install syslinux \\安装pxe程序
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ \\拷贝引导程序pxelinux.0
备注:TRANS.TBL:文件名转换表文件,在制作ISO映像文件时在每个目录中生成的文件,记录每个目录中所包含的文件名
(3)构建DHCP服务
[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vim /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; ##图形桌面的IP地址
filename "pxelinux.0"; ##指定引导范围
}
[root@localhost ~]# systemctl start dhcpd
(4)配置启动菜单文件
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default \\创建
default auto //指定默认入口名称
prompt 1 //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 ##救援模式,地址为服务器地址
2:实现Kickstart无人值守安装
(1)安装system-config-kickstart软件包
[root@localhost ~]# yum -y install system-config-kickstart
(2)运行kickstart配置程序,按实验要求创建ks.cfg应答文件
-
-
- 在图形桌面环境中,按Alt+F2组合键后输入system-config-kickstart并点运行,或者打开桌面菜单“应用程序”→“系统工具”→“kickstart”
-
1.基本配置及安装方法
2.分区信息
3.网络配置及防火墙配置
在“网络配置”界面中,添加一个网络设备“ens33”,将网络类型设为“DHCP”在“防火墙配置”界面中,可以选择禁用 SELinux、禁用防火墙
4.软件包选择
如果看不到软件包选择,需要将yum源配置文件中括号中的内容改为development
5.安装脚本
在“预安装脚本"界面、“安装后脚本"界面中,可以分别添加在安装前、安装后自动运行的可执行语句。此项设置使服务器的自动化配置变得更加容易
6.设置应答文件
将应答文件复制到centos7安装源所在的FTP目录下
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto //指定默认入口名称
prompt 0 //1 表示等待用户控制,这次改成0默认
label auto
kernel vmlinuz
append ks=ftp://192.168.10.101/ks.cfg initrd=initrd.img method=ftp://192.168.10.101/centos7 ##图形安装(默认),添加服务器地址的FTP下ks.cfg地址
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 ##救援模式