PXE+Kickstart+HTTP无人值守批量安装Centos6.9系统步骤完全详解

PXE+Kickstart+HTTP无人值守批量安装Centos6.9系统步骤完全详解

0. 原理

0.1 PXE

  • 名称:Pre-boot Execution Environment,预启动执行环境
  • 工作环境:Client/Server的网络模式
  • 工作内容:一种引导方式,PXE 协议可以使计算机通过网络启动。用来支持通过网络从服务器下载系统镜像,支持通过网络启动操作系统。运行 PXE 协议需要设置DHCP服务器和 tftp服务器。
  • DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,在配置 DHCP 服务器时需要增加相应的 PXE 设置。
  • PXE Client 可以通过 TFTP 协议到 TFTP Server 上下载所需的文件.

0.2 PXE工作过程

在这里插入图片描述

0.3 Kickstart

  • 定义:一种无人值守的安装方式;

  • 工作原理:记录在安装过程中一些需要人工干预填写的各种参数(分区设置/网络设置等),并生成一个名为ks.cfg的文件;

  • 安装过程中出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数(没有合适的参数就要手动干预);

  • 安装系统完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装

    ​ 我们假如把系统镜像文件比作食材,把安装的系统当作一桌菜的话,ks.cfg文件就是制作一桌好菜的那一张菜谱

    ​ 菜名有:语言环境/键盘设置/网络配置/分区设置/用户密码设置/安装包设置/grub启动设置/等;

    ​ 那么待安装系统的主机什么时候可以运行这个文件里面的命令呢?那当然是在这个系统进入init.d初始化后并且网卡已经配置号之后,待安装系统从镜像源所在地成功加载了ks.cfg文件了之后才能运行。

1. PXE+Kickstart实现无人值守安装Centos6步骤

1.1 实验准备和软件安装

要求:Centos6中完成

实验准备:两台主机,一台centos6.9(完成静态配置ip地址),一个未装系统的客户机

实验环境 :VMware Workstation 15

网络模式:NAT

网卡eth0 IP:192.168.6.146/24

关于如何静态配置centos7 ip地址,参考往期文章:Centos7/Ubuntu1604网络静态配置IP地址过程

  1. 关闭防火墙和selinux
[root@lin ~]# iptables -F  
#还没有学过防火墙服务的,简单粗执行这个命令就行了
#系统若有重启再关掉,以免待安装主机TFTP请求不成功加载不了镜像文件
[root@lin ~]# setenforce 0 
#可以永久性修改:/etc/sysconfig/selinux 中修改成这个字段:SELINUX=disabled 
  1. 安装实验所需要的软件,结果如图
[root@lin ~]# yum install httpd tftp-server dhcp syslinux system-config-kickstart -y

httpd 					
#为安装操作系统过程提供光盘文件,(其实:也可也以选择ftp服务来传输)
tftp-server 			
#存放应答文件和pxelinux.0文件
syslinux 				
#提供pxelinux.0等文件
dhcp 					
#为客户机分配ip地址
system-config-kickstart 
#用来制作ks文件即菜谱,前提是:需要图形化界面启动,后面会教你安装图形化界面环境和工具

在这里插入图片描述

  1. 将安装的服务设置成开机自动启动并启动服务
[root@lin ~]# chkconfig dhcpd on  #设定在各个等级(2,3,4,5)为on,系统重启就不用操心这个服务
[root@lin ~]# service xinetd start
Starting xinetd:                                          [  OK  ]
  1. 需要安装x windows和desktop,并重启

    生成ks.cfg文件需要system-confgi-kickstart工具,而此工具依赖X windows

    记得重新关闭防火墙和SElinux):

[root@lin ~]# yum groupinstall "Desktop" "X Window System"
[root@lin ~]# yum groupinstall Fonts
[root@lin ~]# reboot
  1. **启动服务HTTP+**开机自启动设置
[root@lin ~]# /etc/init.d/httpd start
Starting httpd: 
[root@lin ~]# chkconfig --level 35 httpd on
#--level 35表示操作只在等级3和5执行,on表示启动
  1. 加载ISO镜像并挂载

    • 虚拟机中设置加载ISO镜像(好比是光盘)

      镜像的下载除了可以是光盘安装方式,也可以是网络安装方式用wget命令下载镜像源到本地,这个方法自行查找

在这里插入图片描述

  • 将iso文件挂载到/mnt/cdrom
[root@lin ~]# mkdir /mnt/cdrom
[root@lin ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
  1. 复制光盘内容到http的根目录下

    [root@lin ~]# cp -r /mnt/cdrom /var/www/html/
    

1.2 TFTP服务配置

  1. 启用tftp服务tftp-server
[root@lin ~]# vi /etc/xinetd.d/tftp 
service tftp
{
        disable = no   #修改这里
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

tftp服务是挂载在超级进程xinetd下,通过启动xinetd来启动tftp服务,设置开机自启动

[root@lin ~]# /etc/init.d/xinetd restart
Stopping xinetd:                                        [  OK  ]
Starting xinetd:                                        [  OK  ]
[root@lin ~]# chkconfig xinetd on

1.3 复制镜像文件+系统启动配置文件修改

  1. 复制pxelinux.0文件到/var/lib/tftpboot 文件夹中
[root@lin ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

syslinux是引导加载程序。小型的linux操作系统,简化首次安装linux的时间,并建立 维护其他特殊用途 的启动盘.

  1. 复制iso镜像中的/image/pxeboot/目录下的initrd.img和vmlinuz到/var/lib/tftpboot文件夹中
[root@lin ~]# cp /var/www/html/cdrom/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
  1. 复制iso镜像中的**/isolinux/*.msg**到/var/lib/tftpboot目录中
[root@lin ~]# cp /var/www/html/cdrom/isolinux/*.msg /var/lib/tftpboot/
  1. 在/var/lib/tftpboot/ 中新建一个pxelinux.cfg目录,将iso 镜像中的/isolinux 目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default
[root@lin ~]# mkdir /var/lib/tftpboot/pxelinux.cfg

[root@lin ~]# cp /var/www/html/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
  1. 修改default文件
[root@lin ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 
default ks  
prompt 1    #显示:boot:提示符 
timeout 600 #用户输入前的超时时间,单位为毫秒
display boot.msg  #默认在/var/lib/tftpboot目录下显示某个文件内容
label linux
  kernel vmlinuz  #kernel 参数指定要启动的内核
  append initrd=initrd.img #追加给内核的参数
label ks
  kernel vmlinuz  
  append ks=http://192.168.6.146/ks.cfg initrd=initrd.img  #镜像源的ip地址,注意是http没有s
#指明获取ks.cfg文件的位置

1.4 DHCP服务配置

  1. 复制配置模板到DHCP的配置目录中
[root@lin ~]# cp -f /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf
  1. 修改**/etc/dhcp/dhcpd.conf**配置文件
ddns-update-style interim;
ignore client-updates;
filename "pxelinux.0";
next-server 192.168.6.146;

subnet 192.168.6.0 netmask 255.255.255.0 {
    
    
  option routers 192.168.6.2;   	#网关ip地址
  option subnet-mask 255.255.255.0; #掩码
 
  range dynamic-bootp 192.168.6.200 192.168.6.250#设定分配ip 地址的范围
  default-lease-time 21600;
  max-lease-time 43200;
} 
#除此以外其他内容可以删掉
  1. 启动dhcp服务
[root@lin ~]# /etc/init.d/dhcpd start
Starting dhcpd:                                         [  OK  ]
#启动失败的话根据提示
#查看日志文件,需要查看是否格式写对,是否写漏分号
#查看启动状态 service dhcpd status

1.5 Kickstart配置文件生成

  1. 启动X Windows环境

    [root@lin ~]# startx
    
  2. 终端上执行system-config-kickstart

​ A. 设置语言,键盘,时区,Root密码,安装完毕后重启等
在这里插入图片描述

B.设置安装方式,本文介绍HTTP方式安装,选择HTTP
在这里插入图片描述
C.安装MBR
在这里插入图片描述

D.分区设置

在这里插入图片描述

在这里插入图片描述

E.配置网络
在这里插入图片描述

F.认证配置
在这里插入图片描述

G.SElinux和防火墙配置
在这里插入图片描述
H.图形化环境配置
在这里插入图片描述

I.软件包安装选择(最小化)
在这里插入图片描述

J.ks文件设置预览
在这里插入图片描述
K.生成ks.cfg文件,将文件保存在/var/www/html文件夹下面
在这里插入图片描述

其实ks文件也可以自己手动编辑生成,相关资料自行查找,只要符合规范,并且文档中任何一个地方不能出现中文就行,且能保存到上述图指定位置

1.6 客户端系统无人值守安装

A.创建一台虚拟机

在这里插入图片描述

B.网络配置,选择”启动时连接“,NAT模式

在这里插入图片描述
在这里插入图片描述

C.启动虚拟机,网卡启动,DHCP 服务器已经给客户机分配IP地址,正在请求TFTP服务
在这里插入图片描述

D.按下回车键盘开始安装系统
在这里插入图片描述

E.安装完成

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_31789689/article/details/108143747