Linux-PXE自动装机(CENTOS7)
Linux-PXE自动装机配置
1. PXE装机原理简介
PXE是有Intel公司开发的网络引导技术,工作在Client/Server模式(也简称CS模式),允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整改操作系统。
通过网卡默认支持的自动获取IP(DHCP),与简单文件传输协议(TFTP),使得同一局域网下的机器可以通过网络获取安装系统所需的文件,从而实现自动装机。
PXE自动化装机的优点如下:
- 规模化:同时装配多台服务器,无需每一台单独安装操作系统;
- 自动化:实现服务器的自动安装及自动配置各种服务;
- 远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。
2.PXE装机要求
2.1 客户机要求
客户机的网卡要支持PXE协议(集成BOOTROM芯片)
主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可。
2.2 服务端要求
DHCP 服务器 :为客户机自动分配地址、指定引导文件位置。
服务器要开启 TFTP服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载。
服务器中使用FTP服务(或http/nfs)font> :提供yum安装源
安装软件包syslinux :提供PXE引导程序
3. PXE自动装机过程与服务端配置(以安装Centos7为例)
3.1 自动装机过程简介
1.网卡需要查找相关的dhcp服务器(获取地址时间)
2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3.网卡使用tftp客户端吧引导程序加载到内存中来
4.bios执行引导程序
5.引导程序会去TFTP去查找配置文件
6.根据配置文件去引导安装系统
3.2 服务端配置
服务端需要安装dhcp服务(用于给局域网内主机分配IP)、TFTP服务(提供安装系统的内核文件),FTP服务(提供yum安装源可选)
在安装配置服务前首先关闭防火墙与SELINUX,确保主机间通信正常。
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install dhcp tftp-server vsftpd syslinux -y ###必备软件
3.2.1 配置DHCP服务
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y ###复制DHCP模板配置文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
################新增DHCP配置###########
27 subnet 192.168.186.0 netmask 255.255.255.0 {
28 range 192.168.186.10 192.168.186.50;
29 option routers 192.168.186.1;
30 next-server 192.168.186.5; ###提供TFTP服务的主机
31 filename "pxelinux.0"; ###固定名称,安装系统的文件
32 }
######################################
:wq
3.2.2 配置TFTP服务与软件包syslinux
[root@localhost ~]# vim /etc/xinetd.d/tftp
################修改第14行:yes改为no###############
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 = yes————>no ##yes改为no
################################################
:wq
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7 ###挂载光盘
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ftp]# cd ./centos7/isolinux/
[root@localhost isolinux]# ls
boot.cat boot.msg grub.conf initrd.img isolinux.bin isolinux.cfg memtest splash.png TRANS.TBL vesamenu.c32 vmlinuz
[root@localhost isolinux]# cp initrd.img vmlinuz /var/lib/tftpboot/ ###复制安装系统必备文件
[root@localhost isolinux]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# mkdir 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.186.5/centos7 ks=ftp://192.168.186.5/ks.cfg
label linux text
kernel vmlinuz
append text initrd =initrd.img method=ftp://192.168.186.5/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.186.5/centos7
#######################################################
[root@localhost pxelinux.cfg]# rpm -ql syslinux |grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost pxelinux.cfg]# cp /usr/share/syslinux/pxelinux.0 ../
[root@localhost pxelinux.cfg]# cd ../
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 pxelinux.cfg vmlinuz ###tftp所需要提供的文件
3.2.3 安装配置kickstart,完成系统安装自动化配置
[root@localhost tftpboot]# yum install system-config-kickstart -y
kickstart是图形化配置工具,用以完成系统安装过程中的环境配置。
1.配置时区与root密码
2.配置软件安装方式(这里使用的是ftp方式)
3.boot读取选项
4.分区信息,这里选择新建。必备的swap分区与根分区(/),但一般也要加一个boot分区。
一般swap分区为内存的两倍,boot分区一般500MB就足够了,分区完成后的样子
5.网卡配置信息,新增网卡名,ip使用dhcp分配。
6.认证选项默认即可
7.防火墙配置关闭(disable)
8.图形化界面安装(按需),这里选择不安装图形化界面。
9.安装包配置,默认即可。
10.安装前配置脚本,新加个解释器地址/bin/bash
11.安装后配置脚本,配置解释器地址/bin/bash,可以写个加用户脚本。
12.完成配置后保存配置文件至/var/ftp,文件名要与3.2.2中的default文件配置的一样。
13.kickstart有时会有bug,打开/var/ftp/ks.cfg查看配置文件是否正确。
[root@localhost tftpboot]# cd /var/ftp
[root@localhost ftp]# ls
centos7 ks.cfg pub
[root@localhost ftp]# vim ks.cf
3.2.4 启动服务
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl start vsftpd
3.2.5 验证
新配置一个未安装系统的虚拟机。不要使用CD启动(可以选择去除CD驱动器),确保该主机与服务端在同一局域网。
启动后,到该界面需要回车一下。
由于没有安装图形化界面,只有310个文件需要安装。到这一步需要等待一段时间(可能与配置有关)后重启。
等待重启后,可以正常登录。可以选择root登录,使用的是kickstart中第一步配置的root密码。