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

 

PXE+Kickstart无人值守安装操作系统

  • 一、PXE 与 Kickstart
  • 二、PXE原理图及说明
  • 三、操作环境
  • 四、安装环境
  • 五、DHCP服务器配置
  • 六、TFTP服务器配置
  • 七、vsftpd服务器配置
  • 八、PXE菜单
  • 九、重启服务
  • 十、自动安装

 

一、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原理图及说明

【自动化】PXE+Kickstart无人值守安装操作系统_第1张图片
工作原理说明:
  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驱动器,挂载镜像

【自动化】PXE+Kickstart无人值守安装操作系统_第2张图片

  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才能够支撑自动安装,网络模式和服务机一样桥接。

【自动化】PXE+Kickstart无人值守安装操作系统_第3张图片

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

【自动化】PXE+Kickstart无人值守安装操作系统_第4张图片

你可能感兴趣的:(实训项目,自动化,网络,pxe,tftp,dhcp)