pxe自动装机与无人值守
服务端和客户端
pxe
pxe是典型的c/s模式,允许客户端通过网络从远程服务器(服务端)下载引导镜像,加载安装文件,实现自动化安装操作系统
pxe优点:
1.规模化,同时装配多态服务器,单个服务器最多安装30台机器,再多就卡了
2.自动化
3.远程实现,不需要光盘,u盘
4.c/s客户端和服务端都可以是多台
pxe的安装条件:
1.硬件,网卡要支持pxe协议,主板要支持网络引导
2.软件,服务端要有dhcp,可以在客户机启动时,自动分配ip地址
TFTP软件 简单文件传输协议,传小文件,后台进程,使用的是upd协议,端口是69,引导镜像文件很小,我们使用tftp,
xinetd 网络进程守护服务程序,用来管理轻量级的网络服务,管理tftp的文件传输
VSFTP软件 文件传输协议,传送大文件,安装文件
无人值守
自动化,安装选项不需要人为干预,可以自动化实现.
实验
自动安装CentOs7
test1 198.168.118.51作为服务器
第一步
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭安全机制
yum -y install tftp-server xinetd #安装tftp服务,安装xinetd
systemctl restart tftp #重启tftp
systemctl enable tftp #自启tftp
systemctl reststart xinetd.service #重启xinetd服务
systemctl enable xinetd.service #自启xinet服务
vim /etc/xinetd.d/tftp #修改xinetd的配置文件
wait =no #并行,一块
disable =no #表示开启后台启动的服务
:wq #保存退出
systemctl restart tftp #重启tftp
systemctl reststart xinetd.service #重启xinetd服务
第二步:
yum -y install dhcp #安装dhcp
cd /usr/share/doc/dhcp-4.2.5/ #进入dhcp配置示例目录,将dhcp示例目录下的(模版)配置文件
cp -a dhcpd.conf.example /etc/dhcp/dhcpd.conf #复制到主要配置目录下,并且改名
vim /etc/dhcp/dhcpd.conf #对配置文件进行编辑
# Use this to enble/disable dynamic dns updates globally.这是个标识,方便快速定位查找
ddns-update-style none; #这行取消注释,意思是DHCP服务器不会处理任何DDNS(动态域名服务)更新请求
next-server 192.168.118.51; #指定tftp的服务器,指向的ip地址是192.168.118.51
filename "pxelinux.0"; #指定PXE客户端在启动时从DHCP服务器下载的文件名
# This is a very basic subnet declaration. #这是个标识,方便快速定位查找
subnet 192.168.118.0 netmask 255.255.255.0 { #配置地址池
range 192.168.118.100 192.168.118.110;
option routers 192.168.118.51;
}
:wq #保存退出
systemctl restart dhcpd #重启dhcpd服务
第三步:
#准备pxe的引导文件,通过光盘镜像把文件复制出来
#vmlinuz linux系统的内核文件
#initrd.img 引导加载的模块文件
#pexlinux.0 引导程序文件
mount /dev/cdrom /mnt/ #将光盘挂载到mnt目录
df -hT #查看挂载
cd /mnt/images/pxeboot/ #进入挂载目录下的images目录下的pxeboot目录(引导目录)
cp -a vmlinuz /var/lib/tftpboot/ #保留权限复制系统的内核文件到存储tftp服务器的目录
cp -a initrd.img /var/lib/tftpboot/ #保留权限复制引导加载的模块文件到存储tftp服务器的目录
cd /var/lib/tftpboot/ && ls #进入tftp目录查看
第四步:
#开安装pxe的引导程序
yum -y install syslinux #安装syslinux(用于引导操作的包)
cd /usr/share/syslinux/ #进入syslinux的模板目录
cp -a pxelinux.0 /var/lib/tftpboot/ #将示例文件保留权限复制到存储tftp服务器的目录下
cd /var/lib/tftpboot/ #进入tftp目录查看
yum -y install vsftpd #安装vsftpd
cd /var/ftp/ #进入ftp的相关目录
mkdir centos7 #在这里创建目录
cp -rf /mnt/* /var/ftp/centos7/ #保留权限将挂载点目录下的所有文件复制到刚刚创建的目录里
cd /var/ftp/centos7/ #进去看看查验一下
systemctl restart vsftpd #重启vsftpd服务
第五步:
#开始配置启动菜单文件
mkdir /var/lib/tftpboot/pxelinux.cfg/ #创建tftp的引导目录
cd /var/lib/tftpboot/pxelinux.cfg/ && ls #进入目录并查看
vim default #编辑新建文件
default auto #指定安装程序的入口,使用这个文件作为安装程序的入口,自动选择
prompt 0 #是否等待用户选择,免交互,自动选择,如果要用户选择,改为1
label auto #图形界面的默认安装入口
kernel vmlinuz #表示加载内核文件,vmlinuz
append initrd=initrd.img method=ftp://192.168.118.51/centos7
#引导加载的模块文件从ftp指向的ip地址下的centos7目录下获取
label linux text #字符界面,最小化安装,同样也要加载内核
kernel vmlinuz #加载内核
append initrd=initrd.img method=ftp://192.168.118.51/centos7
label linux rescue #救援模式的引导入口
kernel vmlinuz ##表示加载内核文件,vmlinuz
append initrd=initrd.img method=ftp://192.168.118.51/centos7
:wq!
第六步:
yum -y install system-config-kickstart #虚拟机里应用程序,系统工具,kickstart
system-config-kickstart
保存到root,
cd ~ && ls #去家目录并且查看
vim ks.cfg #编写脚本文件
%packages
@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@print-client
@x11
binutils
chrony
ftp
gcc
kernel-devel
kexec-tools
make
open-vm-tools
patch
python
%end
第八步:
vim /var/lib/tftpboot/pxelinux.cfg/default #再次编辑引导目录下的文件
append initrd=initrd.img method=ftp://192.168.118.51/centos7 ks=ftp://192.168.118.51/ks.cfg
#追加
:wq
cp ks.cfg /var/ftp/ #复制到ftp目录下
cd /var/ftp && ls #进入查看
新建新的虚拟机,开始检验
vim /var/lib/tftpboot/pxelinux.cfg/default #再次编辑引导目录下的文件
append initrd=initrd.img method=ftp://192.168.118.51/centos7 ks=ftp://192.168.118.51/ks.cfg
#追加
:wq
cp ks.cfg /var/ftp/ #复制到ftp目录下
cd /var/ftp && ls #进入查看
新建新的虚拟机,开始检验