Linux网络服务之PXE自动装机
目录
1. PXE高效批量网络装机
1.1 PXE概述
-
pxe(preboot execute environment):可以批量安装系统
-
pe:小型的操作系统,在有操作系统的情况下才能再装
pxe是通过网卡引导启动,网卡自带IP地址和tftp
1.2 实现的硬件条件
- BIOS支持
- 网卡支持PXE
- 需要在bios中开启开关,服务器一般没打开(bmc界面里打开)
- 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置,网卡自带DHCP功能,dhcp指明分配的IP地址
- 服务器通过tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载
1.3 PXE批量部署的优点
- 规模化:同时装配多台服务器
- 自动化:安装系统、配置各种服务
- 远程实现:不需要光盘、U盘等安装介质
1.4 启动操作系统三种方式
- 硬盘
- 光驱(u盘)
- 网络启动 (pxe)
四大文件
-
pxelinux.cfg
-
isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
-
vmlinuz:是内核映像
-
initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等)
1.5 实现PXE启动过程
- 网卡需要查找相关的dhcp服务器(获取地址时间)
- 找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
- 网卡使用tftp客户端吧引导程序加载到内存中来
- bios执行引导程序
- 引导程序会去TFTP去查找配置文件
- 根据配置文件去引导安装系统
- 系统安装过程
1.6 搭建过程中服务详解
- TFTP服务
TFTP(简单文件传输协议):内核和引导文件
基于UDP实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合,使用UDP69端口
- vsftp服务
可以使用http、ftp等方式共享文件安装
- syslinux
syslinux是一个功能强大的引导加载程序,兼容各种介质
- DHCP
2. kickstart 无人值守安装
- kickstart无人值守技术
- 创建应答文件,预先定义好
kickstart文件主要包括三个部分:
- 命令段:指明各种安装前配置,如键盘类型等
- 程序包段:指明要安装的程序包组或程序包,不安装的程序包等
- 脚本段:
- %pre: 安装前脚本
- %post: 安装后脚本
[root@localhost pxelinux.cfg]#yum install system-config-kickstart -y
#安装图形化工具
3. 实际操作
3.1 实现PXE
[root@localhost ~]#yum install dhcp -y
#下载dhcp安装包
[root@localhost ~]#systemctl stop firewalld.service #关闭防火墙
[root@localhost ~]#setenforce 0 #关闭selinux
[root@localhost ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #复制主配置文件模板
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y #选择yes
[root@localhost ~]#cd /etc/dhcp/ #切换dhcp目录
[root@localhost dhcp]#ls #查看文件
[root@localhost dhcp]#vim dhcpd.conf #进入配置文件
[root@localhost dhcp]#systemctl start dhcpd #重启
[root@localhost dhcp]#yum install tftp-server.x86_64 -y #下载tftp安装包
[root@localhost dhcp]#rpm -ql tftp-server #查询软件包文件列表
[root@localhost dhcp]#vim /etc/xinetd.d/tftp #进入tftp配置文件
[root@localhost dhcp]#systemctl start tftp #启动tftp
[root@localhost dhcp]#cd /var/lib/tftpboot #切换tftp根目录
[root@localhost tftpboot]#ls #查看文件
[root@localhost tftpboot]#pwd #查看路径
[root@localhost tftpboot]#mount /dev/sr0 /mnt #将光驱挂载到mnt目录
[root@localhost tftpboot]#ls /mnt #查看mnt目录
[root@localhost tftpboot]#cd /mnt #切换到mnt目录
[root@localhost mnt]#cd isolinux/ #切换到isolinux目录
[root@localhost isolinux]#ls #查看文件
[root@localhost isolinux]#cd /var/lib/tftpboot #切换tftp根目录
[root@localhost tftpboot]#cp /mnt/isolinux/vmlinuz /var/lib/tftpboot
#复制vmlinuz到tftpboot
[root@localhost tftpboot]#cp /mnt/isolinux/initrd.img /var/lib/tftpboot
#复制initrd.img到tftpboot
[root@localhost tftpboot]#ls #查看
[root@localhost tftpboot]#yum install syslinux -y #下载syslinux安装包
[root@localhost tftpboot]#rpm -ql syslinux | grep pxelinux
#查询软件包文件列表过滤pxelinux
[root@localhost tftpboot]#cp /usr/share/syslinux/pxelinux.0 .
#将pxelinux.0复制到当前文件夹
[root@localhost tftpboot]#ls #查看文件
[root@localhost tftpboot]#yum install vsftpd -y #下载vsftpd安装包
[root@localhost tftpboot]#cd /var/ftp #切换ftp目录
[root@localhost ftp]#ls #查看
[root@localhost ftp]#mkdir centos7 #新建centos7文件
[root@localhost ftp]#ls #查看
[root@localhost ftp]#mount /dev/sr0 centos7/ #将光驱挂载到centos7文件
[root@localhost ftp]#ls #查看
[root@localhost ftp]#ls centos7/ #查看centos7里的文件
[root@localhost ftp]#cd - #切换到上一级目录
[root@localhost tftpboot]#mkdir pxelinux.cfg #新建文件
[root@localhost tftpboot]#ls #查看
[root@localhost tftpboot]#cd pxelinux.cfg #切换目录
[root@localhost pxelinux.cfg]#ls #查看文件
[root@localhost pxelinux.cfg]#vim default #新建default文件
[root@localhost pxelinux.cfg]#systemctl start vsftpd #重新启动vsftpd服务
3.2 自动化装机(pxe+kickstart)
[root@localhost pxelinux.cfg]#yum install system-config-kickstart -y
#下载kickstart图形化界面的包
基本配置
安装方法
引导文件
分区
防火墙配置
取消图形化安装
配置网卡
最小化安装成功
用户名:root
密码:123123
[root@localhost ~]#id lj
#显示用户