PXE装机及Kickstart无人值守安装

PXE介绍

允许客户机通过网络从远程服务器下载引导镜像、内核文件,并且加载系统的安装文件,安装整个linux操作系统

PXE的核心:批量装机

无人值守:自动化操作

优点

1、规模化:同时安装多个linux

2、自动化:无需人工接入,自动完成系统安装

3、远程实现:既不需要光盘,也不需要U盘,所有的一切都来自服务端提供,必须要依赖网络

所需程序

tftp:文件传输(小文件传输),传输内核文件、引导镜像等,使用的是udp协议,端口号:69

xinetd:网络守护进程服务程序,管理轻量级的网络服务

dhcp:动态地给客户机分配ip地址

vsftpd:大文件传输,传输系统的安装文件

syslinux:PXE的引导程序,引导客户机的安装步骤

kickstart:无人值守程序,自动化配置安装需要的软件以及磁盘分区等

三个核心文件

initrd.img:引导镜像文件(初始化镜像文件)

vmlinuz:内核文件

以上这两个依赖光盘镜像

pxelinux.0:PXE引导文件

由syslinux程序提供

实验

实现pxe半自动化装机

1、关闭主机虚拟机,内存调至4G

2、安装并启用tftp服务

[root@pup1 ~]# yum -y install tftp-server xinetd
[root@pup1 ~]# cd /etc/xinetd.d/
[root@pup1 xinetd.d]# vim tftp 
[root@pup1 xinetd.d]# systemctl restart tftp.socket 
[root@pup1 xinetd.d]# systemctl enable tftp.socket
[root@pup1 xinetd.d]# systemctl restart xinetd.service 
[root@pup1 xinetd.d]# systemctl enable xinetd.service 

3、安装dhcp服务

[root@pup1 ~]# yum -y install dhcp
[root@pup1 ~]# cd /usr/share/doc/dhcp-4.2.5/
[root@pup1 dhcp-4.2.5]# ls
dhcpd6.conf.example  dhcpd.conf.example  ldap
[root@pup1 dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? yes
[root@pup1 dhcp-4.2.5]# cd /etc/dhcp
[root@pup1 dhcp]# ls
dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts
[root@pup1 dhcp]# cp dhcpd.conf dhcpd.conf.bak.20230914
[root@pup1 dhcp]# ls
dhclient.d             dhcpd6.conf  dhcpd.conf.bak.20230914
dhclient-exit-hooks.d  dhcpd.conf   scripts
[root@pup1 dhcp]# vim dhcpd.conf

ddns-update-style none;       //关闭DNS的动态更新
next-server 192.168.146.50;   //指定TFTP的服务器地址
filename "pxelinux.0";        //指定要下载的PXE引导文件名
 
subnet 20.0.0.0 netmask 255.255.255.0 {
  range 20.0.0.100 20.0.0.110;
  option routers 20.0.0.10;   //默认网关地址指向TFTP服务器的IP地址
}

 
[root@localhost dhcp]# systemctl restart dhcpd
[root@localhost dhcp]# systemctl enable dhcpd
[root@pup1 dhcp]# systemctl restart dhcpd
[root@pup1 dhcp]# systemctl enable dhcpd

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

[root@pup1 dhcp]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@pup1 dhcp]# cd /mnt/images/pxeboot/
[root@pup1 pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
[root@pup1 pxeboot]# cp initrd.img /var/lib/tftpboot/
[root@pup1 pxeboot]# cp vmlinuz /var/lib/tftpboot/

5、安装syslinux、准备pxe引导程序

[root@pup1 pxeboot]# yum -y install syslinux
[root@pup1 syslinux]# cd /usr/share/syslinux/
[root@pup1 syslinux]# cp pxelinux.0 /var/lib/tftpboot/
[root@pup1 tftpboot]# ls  //检查三个文件
initrd.img  pxelinux.0  vmlinuz

6、安装ftp服务,准备centos7安装源

[root@pup1 tftpboot]# yum -y install vsftpd
[root@pup1 tftpboot]# cd /var/ftp
[root@pup1 ftp]# ls
pub
[root@pup1 ftp]# mkdir centos7
[root@pup1 ftp]# cp -rf /mnt/* /var/ftp/centos7/  //将镜像文件强制复制道centos7目录中
[root@pup1 ftp]# systemctl restart vsftpd
[root@pup1 ftp]# systemctl enable vsftpd

7、配置启动菜单

[root@pup1 ftp]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@pup1 ftp]# cd /var/lib/tftpboot/
[root@pup1 tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@pup1 tftpboot]# cd pxelinux.cfg/
[root@pup1 pxelinux.cfg]# ls
[root@pup1 pxelinux.cfg]# vim default

default auto  //指定菜单入口文件
prompt 0  //是否等待用户选择,0表示不需要用户进行控制

label auto  
kernel vmlinuz
append initrd=initrd.img method=ftp://20.0.0.10/centos7
//图形化界面的引导参数

label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://20.0.0.10/centos7
//字符界面安装的引导参数

label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://20.0.0.10/centos7
//引导救援模式

8、关闭防火墙、安全机制并重启相关服务

[root@pup1 pxelinux.cfg]# systemctl stop firewalld
[root@pup1 pxelinux.cfg]# setenforce 0
[root@pup1 pxelinux.cfg]# systemctl enable dhcpd
[root@pup1 pxelinux.cfg]# systemctl enable tftp
[root@pup1 pxelinux.cfg]# systemctl enable vsftpd

9、创建新的虚拟机

开启界面:

实现Kickstart无人值守安装

[root@pup1 pxelinux.cfg]# yum -y install system-config-kickstart

在虚拟机内

将家目录下的anaconda-ks.cfg的配置文件中复制一段进ks.cfg

[root@pup1 ~]# cd /root
[root@pup1 ~]# ls
abcc1  abcc4            Documents  initial-setup-ks.cfg  Pictures   Videos
abcc2  anaconda-ks.cfg  Downloads  ks.cfg                Public
abcc3  Desktop          help       Music                 Templates
[root@pup1 ~]# 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
[root@pup1 ~]# clear
[root@pup1 ~]# cp ks.cfg /var/ftp
[root@pup1 ~]# cd /var/ftp
[root@pup1 ftp]# ls
centos7  ks.cfg  pub
[root@pup1 ftp]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@pup1 pxelinux.cfg]# ls
default
[root@pup1 pxelinux.cfg]# vim default 

重新启动:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值