自动化安装Linux
- 一、PXE
- 1.1PXE概念
- 1.2协议分类
- 1.3 优点
- 1.4 批量安装的前置条件
- 1.5 PXE实现的过程详解
- 二、配置PXE远程安装服务器
- 2.1 思路
- 2.2 配置步骤
- 2.3 配置应答文件
- 总结:
引言: 学会自动安装,安逸的很
一、PXE
1.1PXE概念
PXE 是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
PXE 严格来说并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。
1.2协议分类
协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。
运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。
此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
端口:69
1.3 优点
规模化: 同时装配多台服务器;
自动化: 安装系统、配置各种服务;
远程实现: 不需要光盘、U 盘等安装介质。
1.4 批量安装的前置条件
客户机:
客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片)。
主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可。
服务端:
DHCP 服务器 :为客户机自动分配地址、指定引导文件位置。
服务器要开启 TFTP服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载。
服务器中使用FTP服务(或http/nfs)font> :提供yum安装源
安装软件包syslinux :提供PXE引导程序
其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数 PC 都能够提供此支持,只需在 BIOS 设置中允许从 Network 或 LAN 启动即可。
1.5 PXE实现的过程详解
1.网卡需要查找相关的dhcp服务器(获取地址时间)
2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3.网卡使用tftp客户端吧引导程序加载到内存中来
4.bios执行引导程序
5.引导程序会去TFTP去查找配置文件
6.根据配置文件去引导安装系统
二、配置PXE远程安装服务器
2.1 思路
1、安装并启用 DHCP 服务
2、安装并启用 TFTP 服务
3、准备 PXE 引导程序pxelinux.0
4、配置启动菜单文件
5、安装ftp服务,准备 CentOS 7 安装源
2.2 配置步骤
[root@localhost li]# rpm -q dhcp ###查看DHCP服务是否安装
未安装软件包 dhcp
[root@localhost li]# yum install -y dhcp ###安装DHCP服务
已加载插件:fastestmirror, langpacks[root@localhost li]# ls /etc/yum.repos.d/ 查看本地源
local.repo repos.bak
[root@localhost li]#cp -rfp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
复制配置文件
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
[root@localhost li]# vim /etc/dhcp/dhcpd.conf ###编辑DHCP配置文件
[root@localhost li]# cd /etc/sysconfig/network-scripts/ ###转到网卡目录下
[root@localhost network-scripts]# ifconfig ###查看安装好的网卡信息
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36 将33网卡配置复制到36下(省事)
[root@localhost network-scripts]# vim ifcfg-ens36 编辑36网卡
[root@localhost network-scripts]# systemctl restart network 重启网卡
[root@localhost network-scripts]# ifconfig 查看网卡配置
[root@localhost network-scripts]# systemctl start dhcpd ###开启DHCP服务
[root@localhost network-scripts]# vim /etc/xinetd.d/tftp
[root@localhost network-scripts]# mount /dev/sr0 /mnt ### 挂载光盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost network-scripts]# cd /mnt/images/pxeboot/ ####切换到目录下
[root@localhost pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/ ###初始化镜像文件到站点
[root@localhost pxeboot]# systemctl start xinetd.service
[root@localhost pxeboot]# systemctl enable xinetd.service
[root@localhost pxeboot]# systemctl start tftp
[root@localhost pxeboot]# systemctl enable tftpCreated symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
[root@localhost pxeboot]# netstat -antup|grep tftp ###查看端口
[root@localhost pxeboot]# netstat -antup|grep xinet
udp 0 0 0.0.0.0:69 0.0.0.0:* 17804/xinetd
[root@localhost pxeboot]# netstat -antup|grep dhcp
udp 0 0 0.0.0.0:67 0.0.0.0:* 17505/dhcpd
[root@localhost pxeboot]# yum provides */pxelinux.0 ###查找这个文件是由哪个软件包安装的
[root@localhost pxeboot]# yum install syslinux -y ###安装引导文件
[root@localhost pxeboot]# rpm -ql syslinux|grep pxelinux ###查看引导文件的配置文件位置
/usr/share/doc/syslinux-4.05/pxelinux.txt
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/gpxelinuxk.0
/usr/share/syslinux/pxelinux.0
[root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost pxeboot]# ls /var/lib/tftpboot/ ###显示目录下内容
initrd.img pxelinux.0 vmlinuz
[root@localhost pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg ##创建安装方式文件[root@localhost pxeboot]# mkdir /var/ftp/centos7 创建centos7作为安装启动目录
[root@localhost pxeboot]# cp -rf /mnt/* /var/ftp/centos7 将光盘文件复制到centos7文件中
[root@localhost pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default ##编辑安装方式
[root@localhost pxeboot]# systemctl start vsftpd 启动vsftpd服务
[root@localhost pxeboot]# yum install -y system-config-kickstart 安装自动安装文件
[root@localhost pxeboot]# ls /var/ftp 查看ftp下内容
centos7 ks.cfg pub
[root@localhost pxeboot]# vim /var/ftp/ks.cfg 编辑安装内容
2.3 配置应答文件
(1)安装system-config-kickstart工具yum install -y system-config-kickstart
(2)打开"Kickstart配置程序”窗口
通过桌面菜单"应用程序"–>“系统工具”–>"Kickstart”打开或执行"system-config-kickstart”命令打开
(3)配置kickstart选项
基本配置:
默认语言设为"中文(简体)”时区设为"Asia/ shanghai"
设置root密码
高级配置中勾选"安装后重启"。
安装方法:
选FTP
FTP服务器:ftp://192.168.100.100
FTP目录: centos7
引导装载程序选项:安装新引导装载程序
主引导记录:清除主引导记录
分区:删除所有现存分区
磁盘标签:初始化磁盘标签
添加分区:正常分区(需求)
添加网络设备 ens33
网络类型设为 DHCP
验证:无需操作
防火墙:禁用
总结:
在应对批量安装系统时PXE十分有必要,可以为我们减少很多的工作量