【自动化】PXE+Kickstart无人值守安装操作系统

 


 

一、PXE 与 Kickstart

  PXE(Preboot eXecution Environmen)预启动执行环境,也被称为预执行环境,是一种通过网络接启动计算机的机制。这种启动机制不依赖本地存储设备(如硬盘)或本地已安装的操作系统。
  PXE采用Client/Server的工作模式,PXE 客户机(client)这个术语是指机器在PXE启动过程中的角色。一个PXE 客户机(client)可以是一台服务器、桌面级电脑、笔记本电脑或者其他装有PXE启动代码的机器。现在电脑的网卡几乎都支持PXE启动。
  要注意的是PXE不是一种安装方式,而是一种引导的方式。 pxe方式要求安装的计算机中必须包含一个支持PXE 的网卡,且主板支持网络引导,PXE(Pre-boot Execution Environment)协议使计算机可以通过网络启动。

  Kickstart是一种无人值守安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数;比如:我们安装系统的时候需要分区、设置时区、设置root密码、安装后执行的脚本等等,这些操作都记录下来并生成一个名为ks.cfg的文件。

  *PXE+Kickstart 全自动安装操作系。
  *Pykickstart,kickstart软件,用来在操作系统安装过程的配置文件ks.cfg。
  *initrd,init ramdisk,初始化磁盘影像文件,是一个启动时存在于内存的文件系统。用于加载驱动模块和挂载根文件系统。initrd.img是一个小的基础镜像, 放的是和启动相关的驱动模块。通常的步骤是先启动内核,然后内核挂载initrd.img,并执行里面的脚本来进一步挂载各种各样的模块。其中最重要的就是根文件系统驱动模块,有了它才能挂载根文件系统,继而运行用户空间的第一个应用程序init或者systemd,完成系统后续的启动
  *vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”,vmlinuz是可执行的Linux内核,vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。

 

二、PXE原理图及说明

拓扑图
工作原理说明:
  1、客户机(client)加电启动,访问PXE Server上的DHCP服务器,请求IP地址,DHCP返回IP地址和PXE文件的位置;
  2、client获得IP后就可以与同网段的TFTP服务器进行通信,访问TFTP请求获取pxelinux.0文件,TFTP发送pxelinux.0给client,client执行pxelinux.0文件;
  3、client向TFTP请求配置文件(pxelinux.cfg),发送回配置文件进行读取获得启动时所需要的参数,然后继续运行下一步;
  4、请求vmlinuxz,initrd.img,得到了内核文件和启动的基础镜像后client就可以进行启动了;
  5、client启动内核,进入内核界面,通过vsftpd服务器获得系统安装镜像,然后进行自动化安装系统直到完成。
  *对于client请求的文件TFTP都有一个响应请求并发送的过程,client接收到文件后进行执行(读取),并得到下一步执行信息。
 

三、操作环境

  操作软件:VMware虚拟机
  操作系统:CentOS7.9
  网络连接:桥接模式
  服务端IP:192.168.0.101

 

四、安装环境

# 关闭防火墙、selinux
[root@localhost ~]# systemctl stop firewalld		#关闭防火墙
[root@localhost ~]# systemctl disable firewalld		#永久关闭防火墙
[root@localhost ~]# setenforce 0					#关闭selinux
[root@localhost ~]# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config   #开机关闭selinux

# 配置yum源并按章软件包
[root@localhost ~]# rm -rf /etc/yum.repos.d/*		#删除原有yum源
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# yum clean all					#清除缓存
[root@localhost ~]# yum makecache fast				#重新制作缓存
[root@localhost ~]# yum install -y dhcp tftp tftp-server syslinux wget vsftpd pykickstart  #安装相关服务工具

# 配置静态ip地址
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPADDR=192.168.0.101     #设置为当前服务器ip
PREFIX=24
GATEWAY=192.168.0.2
DNS1=114.114.114.114
DNS2=8.8.8.8
DEVICE="ens33"
ONBOOT="yes"

#配置完后重启网络
[root@localhost ~]# systemctl restart network


 

五、DHCP服务器配置

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
#确保配置文件内容如下
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;
 
# A slightly different configuration for an internal subnet.
 subnet 192.168.0.0 netmask 255.255.255.0 		#服务所在网段
{
   range 192.168.0.101 192.168.0.200;     		#client支持ip范围(允许哪些ip)
   option domain-name-servers 192.168.0.2;
   option domain-name "server1.example.com";
   option routers 192.168.0.2;
   option broadcast-address 192.168.0.255;
   default-lease-time 600;                      #默认的ip租赁时间
   max-lease-time 7200;							#最大的IP租赁时间
 
   # PXE SERVER IP
   next-server 192.168.0.101;     				#tftp服务端IP地址
   filename "pxelinux.0";						#网络引导程序
 }
 

 

六、TFTP服务器配置

[root@localhost ~]# vim /etc/xinetd.d/tftp
#修改内容如下
service tftp
{
     socket_type          = dgram
     protocol                = udp
     wait                      = yes
     user                    = root
     server                  = /usr/sbin/in.tftpd
     server_args             = -s /tftpboot
     disable                 = no        		#更改为no
     per_source              = 11
     cps                     = 100 2
     flags                   = IPv4
 }

[root@localhost ~]# cp -rvf /usr/share/syslinux/{pxelinux.0,menu.c32,memdisk,mboot.c32,chain.c32} /var/lib/tftpboot/
[root@localhost ~]# mkdir -v /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# mkdir -v /var/lib/tftpboot/netboot


 

七、vsftpd服务器配置

  1. 连接cd驱动器,挂载镜像

挂载镜像

  1. 拷贝启动镜像,设置安装参数
[root@localhost ~]# mount /dev/cdrom /mnt      		#重新挂载磁盘驱动器
[root@localhost ~]# cp -rvf /mnt/* /var/ftp/pub/	#拷贝镜像

# 拷贝系统启动时需要的镜像文件
[root@localhost ~]# cp -rvf /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/netboot/
[root@localhost ~]# cp -rvf /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/netboot/

# 创建ks.cfg 文件
[root@localhost ~]# vim /var/ftp/pub/ks.cfg
#platform=x86, AMD64, or Intel EM64T
 #version=DEVEL
 # Firewall configuration
 firewall --disabled
 # Install OS instead of upgrade
 install
 # Use NFS installation media
 url --url="ftp://192.168.0.101/pub/"
 rootpw --plaintext 123456
#root的密码设为123456
 # Use graphical install
 graphical
 firstboot disable
 # System keyboard
 keyboard us
 # System language
 lang en_US
 # SELinux configuration
 selinux disabled
 # Installation logging level
 logging level=info
# System timezone
 timezone Asia/Shanghai
 # System bootloader configuration
 bootloader location=mbr
 clearpart --all --initlabel
 part swap --asprimary --fstype="swap" --size=1024
 part /boot --fstype xfs --size=200
 part pv.01 --size=1 --grow
 volgroup rootvg01 pv.01
 logvol / --fstype xfs --name=lv01 --vgname=rootvg01 --size=1 --grow
 reboot

%packages
 @core
 wget
 %end

%post
 %end

# 检查语法是否有错误
[root@localhost ~]# ksvalidator /var/ftp/pub/ks.cfg


 

八、PXE菜单

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
 default menu.c32
 prompt 0
 timeout 30
 MENU TITLE Togogo.net Linux Training

 LABEL centos7_x64
 MENU LABEL CentOS 7 X64 for BMXFF     #启动菜单显示的内核名称
 KERNEL /netboot/vmlinuz
 APPEND  initrd=/netboot/initrd.img inst.repo=ftp://192.168.0.101/pub ks=ftp://192.168.0.101/pub/ks.cfg
 

 

九、重启服务

[root@localhost ~]# systemctl enable dhcpd vsftpd tftp
[root@localhost ~]# systemctl restart dhcpd vsftpd tftp

 

十、自动安装

  1. 新建虚拟机,要注意的是内存至少要2G才能够支撑自动安装,网络模式和服务机一样桥接。

新建虚拟机

  1. 开机启动,启动后就会自动安装,安装系统的时候需要分区、设置时区、设置语言、设置root密码等都会自动设置。

自动安装

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PXE (Preboot Execution Environment)是一种远程启动技术,它可以使计算机通过网络从远程服务器引导,并在无需人工干预的情况下进行安装和配置。Kickstart是一个自动化安装工具,它使用一个预先配置的策略文件来自动进行安装操作系统PXE配合Kickstart可以实现无人值守安装。 要实现PXE Kickstart无人值守安装,需要进行以下步骤: 1. 首先,搭建PXE远程安装服务器。这包括安装并启用TFTP服务、DHCP服务,准备Linux内核和初始化镜像文件,准备PXE引导程序,安装FTP服务并准备CentOS 7安装源,配置启动菜单文件等。 2. 安装system-config-kickstart工具来配置Kickstart选项。这可以通过执行命令"yum install -y system-config-kickstart"来完成。 3. 打开"Kickstart配置程序"窗口,并进行基本配置。这可以通过在桌面菜单中选择"应用程序"→"系统工具"→"Kickstart"或执行"system-config-kickstart"命令来实现。 4. 配置Kickstart选项,包括自动应答文件的保存以及需要安装的软件包的配置。 5. 编辑引导菜单文件default,添加ks引导参数。这将告诉PXE引导程序使用Kickstart配置来进行无人值守安装。 6. 最后,验证无人值守安装。通过重新启动计算机并从PXE服务器引导,系统将自动进行Kickstart配置的安装操作。 通过以上步骤,您可以成功实现PXE Kickstart无人值守安装。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值