LinuxPEX批量网络装机

一、PXE 批量部署

1. 概述

PXE:

预启动执行环境,在操作系统之前运行

服务端:

运行DHCP服务,用来分配地址、定位引导程序

运行TFTP服务,提供引导程序下载(tftp:小文本传输协议,提供配置文件下载)

客户端:

网卡支持PXE协议

主板支持网络引导

2. 优点

规模化:同时装配多台服务器

自动化:安装系统、配置各种服务

远程实现:不需要光盘、U盘等安装介质

3. 装机流程

(1)客户机的网卡查找dhcp服务,获取ip地址和时间

(2)dhcp服务给客户机分配ip地址和引导程序的地址,通过offer报文把tftp服务器的地址发给客户机

(3)tftp服务器把引导文件(pxelinux)传给客户机

(4)客户机把引导程序加载到内存中

(5)引导程序在tftp服务器中查找配置文件,服务器把配置文件传给客户机(配置文件用ftp获取)

(6)服务器通过vsftp服务和客户端互传文件,客户端获得系统的镜像文件

4. pxe装机需要四大文件

(1)首先需要几个服务:

dhcp:给客户机分配ip地址

xinetd:网络守护进程服务程序,又叫超级服务器,管理轻量级的网络服务,配合tftp

tftp:基于udp协议,简单文件传输,传一些小文件,端口 69

vsftp:用于传输大文件,例如镜像文件

syslinux: 引导加载程序,用来简化首次安装linux的时间,建立维护其他特殊或其他特殊用户的启动盘

(2)四大文件

在 /var/lib/tftpboot/ 目录下

vmlinuz

内核文件(从光盘来的,ioslinux目录下)

initrd.img

系统启动镜像镜像文件(光盘,isolinux)

pxelinux.0

引导文件(syslinux)

default

引导程序的配置文件(需要手写,在光盘ioslinux目录下的isolinux.cfg目录下)

二、部署PXE远程安装服务

此台服务器网卡配置:

ip:192.168.10.101

netmask:255.255.255.0

gateway:192.168.23.2

1. 关闭防火墙

# 关闭防火墙和selinux安全机制
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

2. 安装配置 tftp xinetd服务

解释

# 本地yum源安装

[root@localhost ~]# yum -y install tftp-server xinetd

# 配置tftp服务配置文件

[root@localhost ~]# vim /etc/xinetd.d/tftp

service tftp

{

socket_type = dgram

protocol = udp w

ait = no

user = root

server = /usr/sbin/in.tftpd

server_args = -s /var/lib/tftpboot

disable = no

per_source = 11

cps = 100 2

flags = IPv4 }

# 重启并设置tftp、xinetd服务开机自启

[root@localhost ~]# systemctl restart tftp

[root@localhost ~]# systemctl enable tftp

[root@localhost ~]# systemctl restart xinetd

[root@localhost ~]# systemctl enable xinetd

3. 安装配置 dhcp服务

解释

# 本地yum源安装dhcp服务

[root@localhost ~]# yum -y install dhcp

# 配置dhcpd服务配置文件

[root@localhost ~]# cp -af /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

ddns-update-style none;

next-server 192.168.23.5;

filename "pxelinux.0"

subnet 192.168.23.0 netmask 255.255.255.0

{ range 192.168.23.100 192.168.23.200;

option routers 192.168.23.5; }

# 重启并设置dhcpd服务开机自启

[root@localhost ~]# systemctl restart dhcpd

[root@localhost ~]# systemctl enable dhcpd

4. 安装配置 vsftpd服务

解释

# 本地yum源安装vsftpd服务

[root@localhost ~]# yum -y install vsftpd

# 配置vsftpd服务

# 创建需要传给客户机的镜像文件

[root@localhost ~]# mkdir /var/ftp/centos7

[root@localhost ~]# df -h

# 镜像文件挂载位置

/dev/sr0 4.3G 4.3G 0 100% /mnt/cdrom

[root@localhost ~]# cp -rf /mnt/cdrom/* /var/ftp/centos7/

# 重启和设置开机自启vsftpd服务

[root@localhost ~]# systemctl restart vsftpd

[root@localhost ~]# systemctl enable vsftpd

5. 配置四大文件

四大文件:

vmlinuz initrd.img pxelinux.0 default

(1)配置 vmlinuz 和 initrd.img 文件

解释

# 将已挂载的镜像文件中的vmlinuz和initerd.img文件复制进tftp的根目录

[root@localhost ~]# cd /mnt/cdrom/images/pxeboot/

[root@localhost pxeboot]# cp vmlinuz /var/lib/tftpboot/

[root@localhost pxeboot]# cp initrd.img /var/lib/tftpboot/

(2)配置pxelinux.0 引导程序文件

解释

# 本地yum源安装syslinux软件包

[root@localhost ~]# yum -y install syslinux

# 将pxe引导文件复制进tftp的根目录

[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

(3)配置default 启动菜单文件

解释

# 创建并配置default文件(默认的启动菜单文件在tftp根目录下的pxelinux.cfg子目录下) [root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

default auto

prompt 0

label auto

kernel vmlinuz append initrd=initrd.img method=ftp://192.168.23.5/centos7

label linux text

kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.23.5/centos7

label linux rescue kernel

vmlinuz append rescue initrd=initrd.img method=ftp://192.168.23.5/centos7

(4)查看四大文件
[root@localhost ~]# ls /var/lib/tftpboot/

6. 检验PXE是否部署成功

(1)创建裸机
(2)开启主机检验

三、实现Kickstart无人值守安装

通过PXE部署可以自动安装系统,但是到配置操作系统时却需要手动配置,为使完全真正的实现自动安装操作系统,可以使用Kickstart无人值守工具进行安装。

服务器配置:

网卡:

ip:192.168.23.5

netmask:255.255.255.0

gateway:192.168.23.2

以配置PXE部署

1. 安装Kickstart工具

# 本地yum源安装kickstart工具
[root@localhost ~]# yum -y install system-config-kickstart

2. 配置Kickstart工具

(1)先进入服务器的图形化界面进行配置

(2)进入命令界面配置

解释

[root@localhost ~]# ls

anaconda-ks.cfg ks.cfg initial-setup-ks.cfg

# 将ks.cfg文件复制到 /var/ftp/目录下

[root@localhost ~]# cp /root/ks.cfg /var/ftp/ks.cfg

# 将模板文件中从 %packages到 %end的内容复制到 /var/ftp/ks.cfg

[root@localhost ~]# cat /root/anaconda-ks.cfg

%packages

@^gnome-desktop-environment

@base

@core

@desktop-debugging

@development

@dial-up

@directory-client

@fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony %end # 粘贴 [root@localhost ~]# vim /var/ftp/ks.cfg %packages @^gnome-desktop-environment @base @core @desktop-debugging @development @dial-up @directory-client @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony %end

解释

# 进入引导程序配置文件/var/lib/tftpboot/pxelinux.cfg/default 添加ks引导参数 [root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

label auto

kernel vmlinuz append initrd=initrd.img method=ftp://192.168.23.5/centos7 ks=ftp://192.168.23.5/ks.cfg

(3)检验Kickstart无人值守是否安装成功

重启客户机test1

相关推荐
m0_7482409117 分钟前
Linux系统下安装配置 Nginx 超详细图文教程
linux·运维·nginx
小鸡食米41 分钟前
华为,新华三,思科网络设备指令
网络
网络安全(king)2 小时前
信息安全管理:网络设计安全评估checklist
网络·安全·web安全
安晴晚风2 小时前
从0开始在linux服务器上部署SpringBoot和Vue
linux·运维·前端·数据库·后端·运维开发
Ljw...3 小时前
IP协议(网络)
网络·网络协议·tcp/ip·ip协议
Oneforlove_twoforjob3 小时前
【Linux】Centos7下载npm
linux·运维·npm
catmes7 小时前
Git开发常用命令总结
git
007php0079 小时前
linux服务器上CentOS的yum和Ubuntu包管理工具apt区别与使用实战
linux·运维·服务器·ubuntu·centos·php·ai编程
人类群星闪耀时9 小时前
深度学习在灾难恢复中的作用:智能运维的新时代
运维·人工智能·深度学习
djykkkkkk9 小时前
ubuntu编译遇到的问题
linux·运维·ubuntu