PXE高效批量网络装机
前言
在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量。
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络而不是从本地硬盘、光驱等设备启动。现代的网卡,一般都内嵌支持PXE的ROM芯片。当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
搭建PXE远程安装服务器
PXE 批量部署的优点:
1、规模化:同时装配多台服务器
2、自动化:安装系统、配置各种服务
3 、远程实现 :不需要光盘、U盘等安装介质
PXE (Preboot eXcution Environment)
预启动执行环境,在操作系统之前运行
服务端
运行DHCP服务,用来分配地址、定位引导程序
运行TFTP服务,提供引导程序下载
客户端
网卡支持PXE协议
主板支持网络引导
基本配属过程
1.准备CentoS7安装源(YUM仓库)
2.安装并启用TFTP服务
3.提供Linux内核、PXE引导程序等
4.安装并启用DHCP服务
5.配置启动菜单
PXE安装项目
需求:
一台服务器 地址192.168.100.10/24
一台客户机(没系统的)
客户机网卡支持PXE协议,且主板支持网络引导
1、安装 tftp-server.x86_64 0:5.2-13.el7
进入 /etc/xinetd.d/tftp 修改disable 把yes改成no 意思是开启tftp
[root@server1 ~]# yum -y install tftp-server
[root@server1 ~]# vi /etc/xinetd.d/tftp
server_args = -s /var/lib/tftpboot
disable = no
2、 安装dhcp 进入/etc/dhcp/dhcpd.conf 里面添加配置
[root@server1 ~]# yum -y install dhcp
[root@server1 ~]# vi /etc/dhcp/dhcpd.conf
ddns-update-style none; --支持dns动态更新,一般选择关闭
next-server 192.168.100.10; ----指定tftp服务器地址
filename "/pxelinux.0"; ---引导文件 tftp上的位置
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.120 192.168.100.200; ----------安装客户机地址的范围
option routers 192.168.100.10; ----客户机的网关
option domain-name-servers 8.8.8.8, 4.4.4.4; ---dns
}
3、安装vsftp 并把/dev/cdrom 挂载到/var/ftp/pub下面
进入 /etc/vsftpd/vsftpd.conf 设置配置
[root@server1 ~]# yum -y install vsftpd
[root@server1 ~]# mount /dev/cdrom /var/ftp/pub
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server1 ~]# vi /etc/vsftpd/vsftpd.conf
[root@server1 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf | grep -v "^$"
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@server1 ~]#
4、复制网络启动所需要的文件到tftp服务器的根目录下
[root@pxe ~]# yum -y install syslinux-----安装引导加载程序
[root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@pxe ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/--------linux引导加载模块
[root@pxe ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/----------压缩内核
[root@pxe ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@pxe ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg//default------启动菜单
[root@pxe ~]# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/-------图形化启动菜单
root@server1 ~]# cd /var/lib/tftpboot/
[root@server1 tftpboot]# ls -lh
总用量 52M
-rw-r--r-- 1 root root 47M 10月 31 16:19 initrd.img
-rw-r--r-- 1 root root 27K 10月 31 16:19 pxelinux.0
drwxr-xr-x 2 root root 21 10月 31 16:20 pxelinux.cfg
-rw-r--r-- 1 root root 150K 10月 31 16:20 vesamenu.c32
-rwxr-xr-x 1 root root 5.7M 10月 31 16:19 vmlinuz
[root@server1 tftpboot]#
5、修改安装的配置文件
[root@pxe ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto----------默认图形化安装
prompt 1--------------需要用户的选择
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.10/pub
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.10/pub
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.10/pub
6、 启动所有服务
[root@pxe ~]# systemctl start dhcpd
[root@pxe ~]# systemctl start vsftpd
[root@pxe ~]# yum -y install xinetd
[root@pxe ~]# systemctl start xinetd
[root@pxe ~]# chkconfig --level 35 xinetd on
[root@pxe ~]# chkconfig --level 35 tftp on
7、把客户机BIOS设置从Network或LAN启动
kickstart无人值守技术
kickstar概述
使用kickstart,系统管理员在安装虚拟机时就可以自动回答安装常见的问题,使redhat 的linux虚拟机可以更方便地自动安装,即无人一键安装
1、在手动pex基础上安装system-config-kickstart 软件 在系统工具里生成一个kickstart软件
[root@pxe ~]# yum -y install system-config-kickstart
/bin/bash
cd /etc/yum.repos.d
rm -f *
echo -e "[base]" >> aa.repo
echo -e "name=yum" >> aa.repo
echo -e "baseurl=ftp://192.168.100.10" >> aa.repo
echo -e "gpgcheck=0" >> aa.repo
echo -e "enable=1" >> aa.repo
2、进入 /var/lib/tftpboot/pxelinux.cfg/default 修改prompt 改成0 (自动化)添加 ks=ftp://192.168.100.10/ks.cfg
[root@pxe ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.10/pub ks=ftp://192.168.100.10/ks.cfg
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.10/pub
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.10/pu
3、把anaconda-ks.cfg 里面的模板复制到 vi /var/ftp/ks.cfg 末尾
[root@pxe ~]# vi anaconda-ks.cfg
%packages
@^gnome-desktop-environment
@backup-client
@base
@compat-libraries
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-apps
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-applications
@internet-browser
@java-platform
@legacy-x
@multimedia
@network-file-system-client
@networkmanager-submodules
@office-suite
@print-client
@security-tools
@smart-card
@x11
kexec-tools
%end
4、配置完成 把客户机BIOS设置Network或者LAN 安装完成再设回硬盘启动