博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搭建PXE网络实现远程装机服务
阅读量:7251 次
发布时间:2019-06-29

本文共 3774 字,大约阅读时间需要 12 分钟。

    PXE(Pre-boot Execution Environment,预启动执行环境)是由Inter公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统

PXE远程装机的好处:

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

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

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

杨书凡16.png

搭建PXE网络环境的前提条件

    既然是通过网络传输,那么计算机在启动时,它的IP地址有谁来分配;又是怎样下载到Linux内核和给文件系统的呢?

网卡:客户机的网卡支持PXE协议,且主板主持网络引导,并设置BIOS中允许从Network或LAN启动

DHCP:网络中有一台DHCP服务器为客户机分配地址、指定引导文件,并添加相应的PXE特有配置

TFTP:通过TFTP服务器提供引导镜像文件的下载

搭建PXE远程装机服务器

    本案例PXE远程装机服务器集成了RHEL安装源、TFTP、DHCP服务

案例:随着公司业务不断发展,服务器数量也迅速增长,需要重新安装RHEL6操作系统。为了提高服务器装机效率,要求基于PXE网络实现全自动无人值守批量安装

需求描述:

1. 服务器的IP地址为192.168.1.10,所在网段为192.168.1.0/24

2. 搭建PXE网络装机服务器,为新采购的10台服务器裸机安装RHEL操作系统

3. 新装的系统必须包括基本组件、开发工具、LAMP平台,默认语言为中文

4. 为新装的系统自动配置好YUM仓库,root设置密码为password

实验步骤:

1. 准备RHEL6安装源

    RHEL安装源一般通过HTTP、FTP协议发布,也支持NFS协议。本例采用FTP发布安装源,并配置YUM软件仓库,YUM软件仓库的配置方法请参阅我的上一篇博客,这里不在赘述

1
2
3
4
5
[root@localhost ~]
# yum -y install vsftpd           //安装vsftpd服务
[root@localhost ~]
# mount /dev/cdrom /media/        //挂载系统光盘
mount
: block device 
/dev/sr0 
is write-protected, mounting 
read
-only
[root@localhost ~]
# cp -rf /media/* /var/ftp/rhel   //准备安装源
[root@localhost ~]
# service vsftpd restart          //开启vsftpd服务

 

2. 安装并启用TFTP服务

    TFTP服务默认由超级服务xinetd超级服务器进行管理

1
2
3
4
5
[root@localhost ~]
# yum -y install tftp-server     //安装tftp服务
[root@localhost ~]
# vim /etc/xinetd.d/tftp         //修改以下配置项,将yes改为no
        
disable                 = no
         
[root@localhost ~]
# service xinetd start           //开启xinetd服务

3. 准备Linux内核、初始化镜像文件

1
2
[root@localhost media]
# cd /media/images/pxeboot/      //将这两个文件复制到tftp服务的根目录下
[root@localhost pxeboot]
# cp vmlinuz initrd.img /var/lib/tftpboot/

4. 准备PXE引导程序、启动菜单文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost ~]
# yum -y install syslinux   //安装PXE引导程序,并复制到tftp根目录下
[root@localhost ~]
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost ~]
# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]
# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto           
//
指定默认入口名称
prompt 1               
//1
表示等待用户控制,0表示不等待用户控制
label auto             
//
图形安装
      
kernel vmlinuz 
      
append initrd=initrd.img devfs=nomount ramdisk_size=8192
label linux text       
//
文本安装
      
kernel vmlinuz
      
append text initrd=initrd.img devfs=nomount ramdisk_size=8192
label linux rescue     
//
救援模式
      
kernel vmlinuz
      
append rescue initrd=initrd.img devfs=nomount ramdisk_size=8192

5. 安装并启用DHCP服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost ~]
# yum -y install dhcp          //安装dhcp服务
[root@localhost ~]
# vim /etc/dhcp/dhcpd.conf     //修改配置文件分配地址,并指定引导文件位置
# A slightly different configuration for an internal subnet.
subnet 192.168.1.0 netmask 255.255.255.0 {       
//
定义网段
  
range 192.160.1.100 192.168.1.200;             
//
分配地址池
  
option domain-name-servers 192.168.1.10;       
//DNS
服务器地址
  
option domain-name 
"yangshufan.com"
;           
//
域名
  
option routers 192.168.1.10;                   
//
路由地址
  
option broadcast-address 192.168.1.255;        
//
广播地址
  
default-lease-
time 
600;                        
//
默认租约时间
  
max-lease-
time 
7200;                           
//
最大租约时间
  
next-server 192.168.1.10;                      
//PXE
服务器IP地址
  
filename 
"pxelinux.0"
;                         
//PXE
引导程序的文件名
}
[root@localhost ~]
# service dhcpd start          //开启dhcpd服务,需要配置静态IP地址

    现在就可以在客户机上进行安装测试了,然而安装期间仍需手动选择语言、键盘类型、指定安装源等一系列交互操作,十分不方便,通过Kickstart工具配置安装应答文件,自动完成安装中的各种设置,从而无需手动干预,提高网络装机效率

杨书凡17.png

杨书凡18.png

6. 实现Kickstart无人值守安装

(1)安装system-config-kickstart工具

[root@localhost ~]# yum -y install system-config-kickstart

(2)准备安装应答文件

    通过桌面菜单“应用程序”\“系统工具”\“Kickstart”即可打开“Kickstart配置窗口”,对各种安装设置进行指定

1)基本配置

杨书凡19.png

2)安装方法

杨书凡26.png

3)分区信息

杨书凡21.png

4)网络配置

杨书凡22.png

5)防火墙设置

杨书凡23.png

6)软件包选择

    根据需要选择需要安装的软件包分组,本例选择“基本”、“万维网服务”、“X窗口系统”、“字体”、“桌面”、“开发工具”、“中文支持”等

杨书凡24.png

7)安装脚本

杨书凡28.png

(3)保存自动应答文件

杨书凡27.png

(4)启动自动应答文件

1
2
3
4
5
6
7
8
[root@localhost ~]
# vim ks.cfg 
[root@localhost ~]
# cp ks.cfg /var/ftp/rhel/ks.cfg
[root@localhost ~]
# vim /var/lib/tftpboot/pxelinux.cfg/default 
default auto
prompt 0               
//
修改为0,表示不等待用户控制
label auto
      
kernel vmlinuz      
//
添加引导参数,指定ks.cfg文件的URL路径
      
append ks=
ftp
:
//192
.168.1.10
/rhel/ks
.cfg initrd=initrd.img devfs=nomount ramdisk_size=8192

7. 验证无人值守安装

杨书凡29.png

本文转自 杨书凡 51CTO博客,原文链接:http://blog.51cto.com/yangshufan/2058885,如需转载请自行联系原作者
你可能感兴趣的文章
超2亿中国用户简历曝光!MongoDB又一重大安全事故
查看>>
网易云信周梁伟专访:亿级架构IM平台的技术难点解析
查看>>
独家揭秘腾讯千亿级参数分布式机器学习系统无量
查看>>
Dubbo Mesh在闲鱼生产环境的落地实践
查看>>
微软Build 2017第二天:跨平台跨硬件开发体验
查看>>
精益项目管理的可行性分析
查看>>
Bitbucket Pipelines在Atlassian的Bitbucket云上提供持续交付功能
查看>>
举重若轻的人人车移动端数据平台
查看>>
建立自组织敏捷团队
查看>>
PayPal API风格指南和设计模式
查看>>
02-Docker新手入门网络篇
查看>>
大神 Linus Torvalds 语录
查看>>
[LintCode/LeetCode] Find Median From / Data Stream Median
查看>>
Android开发套路收集整理与讨论
查看>>
代码规范的重要性,我已经放弃治疗
查看>>
笨办法学C 练习30:自动化测试
查看>>
mui初级入门教程(五)— 聊聊即时通讯(IM),基于环信 web im SDK
查看>>
[vs2008]Visual Studio 2008 SP1添加或删除功能提示查找SQLSysClrTypes.msi文件
查看>>
JS 设计模式二(封装)
查看>>
JavaScript “跑马灯”抽奖活动代码解析与优化(一)
查看>>