利用PXE安装部署centos7

PXE+Kickstart实现无人值守安装CentOS

一、业务背景

在云数据中心,批量服务器上线时,逐台进行系统安装与配置的工作量巨大。为解决该问题,需要实现无人值守批量部署系统,PXE+Kickstart技术应运而生。

1. PXE原理

PXE主要起引导作用,引导流程为:PXE客户端向DHCP服务器请求IP地址,DHCP服务器返回IP地址和PXE文件位置;客户端请求pxelinux.0并执行,接着请求配置文件(pxelinux.cfg)、vmlinuz和initrd.img,最终启动Linux内核。

2. Kickstart原理

Kickstart是一种无人值守的安装方式,它记录安装过程中需人工干预填写的参数,如分区、设置时区、root密码、安装后执行的脚本等,并生成ks.cfg文件,在安装时使用该文件实现自动化安装。

二、环境准备

1.操作系统:CentOS 7.4(最小化安装)。
2. 实验平台:VMware Workstation 17。
3. 网络模式:NAT模式。
4. 服务器IP地址:192.168.202.102。
5. 防火墙:关闭。
6. SElinux:Disable。

三、准备工作

若系统当初为图形化安装,则无需此步骤。生成ks.cfg文件依赖system-config-kickstart工具,该工具依赖X Windows,因此需安装X Windows和Desktop并重启系统:
  1. 挂载光盘
[root@master ~]# mkdir /mnt/cdrom 
[root@master ~]# mount /dev/cdrom /mnt/cdrom
  1. 安装图形化界面
[root@master ~]# systemctl set-default graphical.target 
[root@master ~]# yum groupinstall "Server with GUI" -y 
[root@master ~]# reboot

四、安装需要的服务

1. 配置DHCP

1. **安装DHCP服务**
[root@master ~]# yum install dhcp -y
  1. 修改配置文件:编辑/etc/dhcp/dhcpd.conf,设置网段、IP地址范围、子网掩码、租期时间、tfp服务端IP地址和网络引导程序等。
[root@master ~]# vim /etc/dhcp/dhcpd.conf 
subnet 192.168.202.0 netmask 255.255.255.0 { 
  range 192.168.202.130 192.168.202.199; 
  option subnet-mask 255.255.255.0; 
  default-lease-time 21600; 
  max-lease-time 43200; 
  next-server 192.168.202.102; 
  filename "/pxelinux.0"; 
}
  1. 启动DHCP服务
[root@master ~]# systemctl start dhcpd 
[root@master ~]# systemctl enable dhcpd
  1. 测试DHCP:新建虚拟机,若能成功获取IP地址和其他信息,则DHCP配置成功。

2. 配置TFTP

1. **安装TFTP、Xinetd**
[root@master ~]# yum install tftp-server xinetd -y
  1. 修改配置文件:编辑/etc/xinetd.d/tftp,将disable设置为no
[root@master ~]# vim /etc/xinetd.d/tftp
service tftp
{
  socket_type = dgram
  protocol = udp
  wait = yes
  user = root
  server = /usr/sbin/in.tftpd
  server_args = -s /var/lib/tftpboot
  disable = no
  per_source = 11
  cps = 100 2
  flags = IPv4
}
  1. 启动TFTP服务:由于tftp服务挂载在xinetd下,启动xinetd即可启动tftp服务。
[root@master ~]# systemctl start xinetd
[root@master ~]# systemctl enable xinetd
  1. 检查TFTP服务:使用netstat -ntulp | grep 69检查tftp服务是否启动成功。

3. 创建default文件并修改

1. 创建配置文件夹
[root@master ~]# cd /var/lib/tftpboot/
[root@master tftpboot]# mkdir pxelinux.cfg
  1. 复制配置文件
[root@master ~]# cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@master ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
  1. 修改配置:将default vesamenu.c32修改为default linux;找到label linux部分,修改配置,添加内核参数、ks配置文件路径等。
label linux
  net.ifnames=0 biosdevname=0 
  menu label ^Install PXE+Kickstart_CentOS7 
  kernel vmlinuz 
  append initrd=initrd.img ks=http://192.168.202.102/ks/ks.cfg ksdevice=eth0

4. 安装Syslinux

1. **安装syslinux**:安装syslinux以获取pxelinux.0引导加载程序。
[root@master ~]# yum install syslinux -y
  1. 复制文件
[root@master ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@master ~]# cp /mnt/cdrom/isolinux/* /var/lib/tftpboot/
  1. 验证:重启新建的测试虚拟机,若出现相关安装引导界面,则说明配置成功。

5. 配置HTTP

1. 安装HTTP
[root@master ~]# yum install httpd -y
  1. 启动HTTP
[root@master ~]# systemctl start httpd 
[root@master ~]# systemctl enable httpd
  1. 复制文件:将光盘全部内容复制到http的根目录/var/www/html/pub下。
[root@master ~]# mkdir /var/www/html/pub 
[root@master ~]# cp -r /mnt/cdrom/ /var/www/html/pub
  1. 验证:在浏览器输入http://192.168.202.102/pub,若能正确显示目录内容,则配置成功。

6. 配置本地yum源

修改本地yum源信息,编辑`/etc/yum.repos.d/CentOS-Media.repo`,设置`name`为“development”,指定`baseurl`,关闭`gpgcheck`。
[root@master ~]# vim /etc/yum.repos.d/CentOS-Media.repo
name=CentOS7 [development]
baseurl=file:///mnt/cdrom
gpgcheck=0

7. 安装kickstart并设置

1. **安装kickstart**
[root@master ~]# yum install system-config-kickstart -y
  1. 启动kickstart:可在桌面环境的“应用程序-系统工具”中找到Kickstart,也可通过命令启动。
[root@master ~]# system-config-kickstart
  1. Kickstart配置:依次完成基本配置(语言、键盘、时区、Root密码等)、安装方法(选择HTTP方式)、引导装载程序选项、分区信息、网络配置、验证配置、防火墙配置、显示配置、软件包选择、安装后脚本等设置。完成配置后,点击“文件-预览”预览配置参数,点击“保存”将配置文件ks.cfg保存到root用户家目录,并复制到/var/www/html/ks/目录下。

五、安装验证

将之前新建的测试虚拟机重启(确保内存至少2G),验证能否自动安装操作系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值