centos7搭建PXE+Kickstart批量部署系统

centos7搭建PXE+Kickstart批量部署系统

IP主机名节点
192.168.200.100pxePXE主机
192.168.200.133localhost需要安装操作系统的电脑
PXE服务器配置:
  1. 搭建PXE基础环境

    1. 基础配置:
    [root@localhost ~]# hostnamectl set-hostname pxe	#修改主机名为pxe
    [root@pxe ~]# systemctl stop firewalld				#关闭防火墙
    [root@pxe ~]# setenforce 0							#关闭selinux服务
    
    1. 配置yum本地源:
    [root@pxe ~]# mount /dev/cdrom /media			#挂载镜像到media文件下
    [root@pxe ~]# vim /etc/yum.repos.d/local.repo 	#编写yum本地源环境
    [local]
    name=centos
    baseurl=file:///media
    gpgcheck=0
    enabled=1
    [root@pxe ~]# yum repolist						#检查yum源是否配置成功 
  1. 安装TFTP服务(tftp默认由xinetd服务进行管理):
    [root@pxe ~]# yum -y install tftp-server xinetd 
    [root@pxe ~]# vim /etc/xinetd.d/tftp		#修改TFTP配置文件
    # default: off
    # description: The tftp server serves files using the trivial file transfer \
    #       protocol.  The tftp protocol is often used to boot diskless \
    #       workstations, download configuration files to network-aware printers, \
    #       and to start the installation process for some operating systems.
    service tftp
    {
            socket_type             = dgram
            protocol                = udp
            wait                    = yes
            user                    = root
            server                  = /usr/sbin/in.tftpd
            server_args             = -s /var/lib/tftpboot
            disable                 = no		#此处的yes修改为no
            per_source              = 11
            cps                     = 100 2
            flags                   = IPv4
    }
    [root@pxe ~]# systemctl start tftp			#启动TFTP服务
    [root@pxe ~]# systemctl enable tftp 		#设置TFTP开机自启动
    [root@pxe ~]# systemctl start xinetd		#启动xinetd服务
    [root@pxe ~]# systemctl enable xinetd		#设置开机自启
  1. 搭建DHCP 服务
   [root@pxe ~]# yum -y install dhcp
   [root@pxe ~]# vim /etc/dhcp/dhcpd.conf 
   #删除DHCP原有的所有配置,添加以下字段:
   default-lease-time 600;
   max-lease-time 7200;
   log-facility local7;
   subnet 192.168.200.0 netmask 255.255.255.0 {
   #根据实际情况填写suben和netmask,此处的网段为192.168.200.0掩码为255.255.255.0;
           range 192.168.200.100 192.168.200.200;
           #设置DHCP的地址段,此处从192.168.200.100-192.168.200.200;
           option routers 192.168.200.100;
           #设置route,此处需要写宿主机的地址192.168.200.100;
           filename "pxelinux.0";
           #指定要下载PXE引导程序的文件。
   }
   [root@pxe ~]# systemctl start dhcpd				#启动DHCP服务
   [root@pxe ~]# systemctl enable dhcpd			#设置开机自启
   ```

5. 准备Linux内核

   进入/media/images/pxeboot目录下,复制所需的文件到TFTP服务默认的共享路径下。

   ```
   [root@pxe ~]# cd /media/images/pxeboot/
   [root@pxe pxeboot]# ll
   总用量 47623
   -rw-r--r--. 1 root root 43372552 12月  5 2016 initrd.img
   -r--r--r--. 1 root root      441 12月  5 2016 TRANS.TBL
   -rwxr-xr-x. 1 root root  5392080 11月 23 2016 vmlinuz
   [root@pxe pxeboot]# cp initrd.img /var/lib/tftpboot/
   [root@pxe pxeboot]# cp vmlinuz /var/lib/tftpboot/
   ```

   进入/media/isolinux目录,复制所需的文件到TFTP服务默认的共享路径下。

   ```
   [root@pxe pxeboot]# cd /media/isolinux/
   [root@pxe isolinux]# ll
   总用量 47992
   -r--r--r--. 1 root root     2048 12月  5 2016 boot.cat
   -rw-r--r--. 1 root root       84 12月  5 2016 boot.msg
   -rw-r--r--. 1 root root      293 12月  5 2016 grub.conf
   -rw-r--r--. 1 root root 43372552 12月  5 2016 initrd.img
   -rw-r--r--. 1 root root    24576 12月  5 2016 isolinux.bin
   -rw-r--r--. 1 root root     3068 12月  5 2016 isolinux.cfg
   -rw-r--r--. 1 root root   190896 11月  6 2016 memtest
   -rw-r--r--. 1 root root      186 10月  1 2015 splash.png
   -r--r--r--. 1 root root     2215 12月  5 2016 TRANS.TBL
   -rw-r--r--. 1 root root   152976 11月  6 2016 vesamenu.c32
   -rwxr-xr-x. 1 root root  5392080 11月 23 2016 vmlinuz
   [root@pxe isolinux]# cp boot.msg /var/lib/tftpboot/
   [root@pxe isolinux]# cp vesamenu.c32 /var/lib/tftpboot/
   ```

6. 准备PXE引导程序

   安装syslinux服务(PXE引导程序由syslinux服务提供)。

   ```
   [root@pxe ~]# yum -y install syslinux
   ```

   PXE引导文件pxelinux.0在/usr/share/syslinux目录下,将该文件复制到TFTP默认共享目录。

   ```
   [root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
   [root@pxe ~]# ll /var/lib/tftpboot/
   总用量 47812
   -rw-r--r--. 1 root root       84 5月  10 00:55 boot.msg
   -rw-r--r--. 1 root root 43372552 5月  10 00:54 initrd.img
   -rw-r--r--. 1 root root    26764 5月  10 00:56 pxelinux.0
   -rw-r--r--. 1 root root   152976 5月  10 00:55 vesamenu.c32
   -rwxr-xr-x. 1 root root  5392080 5月  10 00:54 vmlinuz
   #确定TFTP共享目录下有五个文件。
   ```

7. FTP 服务配置与启动

   在使用PXE进行批量安装时,最后一步需要去文件共享服务器(http/ftp/nfs)中下载RPM包开始安装系统,此处使用FTP服务。

   ```
   [root@pxe ~]# yum -y install vsftpd
   [root@pxe ~]# cd /var/ftp/					#进入ftp默认共享目录
   [root@pxe ftp]# mkdir centos7				#创建centos7目录
   [root@pxe ftp]# mount /dev/cdrom /var/ftp/centos7/
   #将ISO镜像挂载到centos7目录(该操作意义是PXE Client节点安装的操作系统是Centos 7)
   [root@pxe ftp]# systemctl start vsftpd		#启动ftp服务	
   [root@pxe ftp]# systemctl enable vsftpd		#设置开机自启
   ```

8. 配置启动文件

   在TFTP服务的共享目录下,创建pxelinux.cfg子目录,并在该目录下创建default文件

  [root@pxe ~]# cd /var/lib/tftpboot/
  [root@pxe tftpboot]# mkdir pxelinux.cfg
  [root@pxe tftpboot]# cd pxelinux.cfg/
  [root@pxe pxelinux.cfg]# vim default 
  default vesamenu.c32				#该文件在TFTP默认共享目录下
  display boot.msg					#该文件在TFTP默认共享目录下
  timeout 50							#等待时间为5秒
  label centos7.5
          menu label Install CentOS 7.5
          menu default
          kernel vmlinuz				#该文件在TFTP默认共享目录下
          append initrd=initrd.img ks=ftp://192.168.200.100/centos7.5_ks.cfg
  #需要将cfg文件放到ftp共享路径下,cfg文件还未创建,后面的步骤会创建cfg文件
  ```
  1. 编写Kickstart文件

    因为在default下已经说明cfg文件的下载路径与文件名称,所以在ftp共享目录下创建centos7.5_ks.cfg文件,并按照以下内容配置:

    [root@pxe ~]# vim /var/ftp/centos7.5_ks.cfg 
    #platform=x86, AMD64 or Intel EM64T
    #version=DEVEL
    #Firewalld configuration
    #fierwalld --enable
    #Install OS instead of upgrade
    #确定是安装、替换还是更新系统,此处是安装
    install
    #use network installation 此处是centos7系统的ftp地址
    url --url=ftp://192.168.200.100/centos7
    #Root password设置密码为123456
    rootpw 123456
    auth --useshadow --enablemd5
    graphical
    firstboot --enabled
    keyboard us
    lang en_US
    selinux --enforcing
    logging --level=info
    reboot
    timezone Asia/Shanghai
    network --bootproto=dhcp --device=ens33 --onboot=yes --noipv6
    #bootloader --append="rhgb quiet" --localtion=mbr
    clearpart --all --initlabel
    part /boot --fstype="ext4" --size=200
    part swap --fstype="swap" --size=100
    part / --fstype="ext4" --size=20000
    %pre
    %end
    %post
    %end
    %packages --nobase
    openssh-server
    openssh-clients
    wget
    %end
    
pxe client实现结果
  1. 创建客户端虚拟机

  2. 并设置网卡信息跟PXE服务器设置为统一网卡(VMnet8),内存和硬盘尽量给大一些,太小会出现报错信息。

在这里插入图片描述

  1. 开启此虚拟机,无需操作,自动实现PXE+Kickstart安装操作系统。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值