• Kickstart批量安装centos7


    1、安装PEX所需服务
    dhcp:                        分配给客户端提供的IP地址;
    tftp-server:          tftp服务器端, 提供系统安装所需文件;
    xinetd:                 tftp服务超级守护进程, 用于唤醒tftp服务;
    httpd:                  基于http服务提供安装源;
    syslinux:               提供pxelinux.0文件, 此文件用于引导系统, 相当于bootloader;
    2、安装所需软件包
    yum  install  httpd   httpd-devel   dhcp*  tftp-server  xinetd -y
    3、配置tftp服务
    将/etc/xinetd.d/tftp文件中的 disable = yes改成disable = no即可,基于sed命令也可以实现
    sed  -i  ‘/disable/s/yes/no/g’/etc/xinetd.d/tftp
    TFTP服务是使用xinetd服务程序来管理的。xinetd服务可以用来管理多种轻量级    的网络服务,而且具有强大的日志功能。
    要实现远程安装系统,需要在TFTPBOOT目录指定相关PXE内核模块及相关参数,配置步骤如下:
    内核文件:vmlinuz initrd.img
    引导菜单配置文件: isolinux.cfg
    系统自带的两种窗口模块之一:vesamenu.c32
    1)mount     /dev/cdrom    /mnt/cdrom
    2)yum  install   syslinux   syslinux-devel   -y          #安装syslinux必备文件
    3)mkdir -p /var/lib/tftpboot/pxelinux.cfg/
         cp /mnt/cdrom/isolinux/isolinux.cfg   /var/lib/tftpboot/pxelinux.cfg/default
         cp /mnt/cdrom/isolinux/vesamenu.c32   /var/lib/tftpboot/
         cp /mnt/cdrom/images/pxeboot/vmlinuz   /var/lib/tftpboot/
         cp /mnt/cdrom/images/pxeboot/initrd.img   /var/lib/tftpboot/
         cp /usr/share/syslinux/pxelinux.0    /var/lib/tftpboot/ 
         chmod  644  /var/lib/tftpboot/pxelinux.cfg/default    
    配置TFTPBOOT引导文件default
    default vesamenu.c32
    timeout 30
    display boot.msg
    menu clear
    menu background splash.png
    menu title CentOS Linux 7
    label linux
      menu label ^Install CentOS Linux 7
      menu default
      kernel vmlinuz
      append initrd=initrd.img inst.repo=http://10.0.0.6/centos7 quiet ks=http://10.0.0.6/ks.cfg
    label check
      menu label Test this ^media & install CentOS Linux 7
      kernel vmlinuz
      append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rd.live.check quiet
    配置文件详解:
    default vesamenu.c32                   #默认会加载一个菜单
    timeout 10                                     #超时时间为10S                 
    display boot.msg 
    menu clear
    menu background splash.png
    menu title CentOS Linux 7
    label linux
      menu label ^Install CentOS Linux 7
      menu default
      kernel vmlinuz                     # 指定要启动的内核。同样要注意路径,默认是/tftpboot目录
      append initrd=initrd.img inst.repo=http://10.0.0.6/centos7 quiet ks=http://10.0.0.6/ks.cfg        #192.168.0.131是kickstart服务器,ks.cfg是kickstart主配置文件 
    label check
      menu label Test this ^media & install CentOS Linux 7
      kernel vmlinuz
      append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rd.live.check quiet
    TFTP配置完毕,由于是TFTP是非独立服务,需要依赖xinetd服务来启动,启动命令为:
    chkconfig    tftp  --level 35 on  && service  xinetd  restart 
    4.HTTPD+DHCPD配置
    远程系统安装,客户端需要下载系统所需的软件包,所以需要使用NFS或者httpd把镜像文件共享出来:
    mkdir -p /var/www/html/centos7/
    mount /dev/cdrom /var/www/html/centos7/
    #cp /dev/cdrom/*  /var/www/html/centos7/ (可选配置)
    cat>/etc/dhcp/dhcpd.conf<<EOF
    ddns-update-style interim;
    ignore client-updates;
    next-server 192.168.10.4;
    filename "pxelinux.0";
    allow booting;
    allow bootp;
    subnet 192.168.10.0 netmask 255.255.255.0 {
     
    option routers          192.168.10.1;
    option subnet-mask      255.255.255.0;
    range dynamic-bootp 192.168.10.180 192.168.10.200;
    }
    EOF
    # ddns-update-style interim 动态的dns 的更新方式
    # ignore client-updates"     这个选项是不允许客户机更新 DNS 记录
    #allow booting;#定义能够PXE启动
    #allow bootp;#定义支持bootp
    # subnet 192.168.10.0 netmask 255.255.255.0 服务端IP网段及掩码
    # range 192.168.10.10 192.168.56.20; dhcp 分发的地址范围,最好将本机IP包含在内。
    # default-lease-time 600;max-lease-time 7200;  IP地址租约时间。
    # filename "pxelinux.0"; 指定引导文件位置,这里是TFTP根目录下的pxelinux.0。
    #  next-server 192.168.56.14; TFTP服务器地址。
    dhcp服务端口查看
    [root@kickstart ~]# ss -nulp | grep dhcpd
    UNCONN 0 0 *:44810 *:* users:(("dhcpd",pid=5197,fd=20))
    UNCONN 0 0 *:67 *:* users:(("dhcpd",pid=5197,fd=7))
    UNCONN 0 0 :::5138 :::* users:(("dhcpd",pid=5197,fd=21))
    httpd服务端口查看
    ss -tnl | grep 80
    LISTEN 0 128 :::80
    5. 配置kickstart
    可以使用system-kickstart系统软件包来配置,ks.cfg配置文件内容如下:
    cat>/var/www/html/ks.cfg<<EOF
    install
    text
    keyboard 'us'
    rootpw  www.jfedu.net                          
    timezone  Asia/Shanghai
    url --url=http://10.0.0.6/centos7
    lang zh_CN
    firewall  --disabled
    network  --bootproto=dhcp --device=ens33
    auth      --useshadow  --passalgo=sha512
    firstboot   --disable
    selinux   --disabled
    bootloader --location=mbr
    clearpart --all --initlabel
    part /boot --fstype="ext4" --size=300
    part / --fstype="ext4"   --grow
    part swap --fstype="swap" --size=512
    reboot
    %packages
    @base
    @core
    %end
    EOF
    ks.cfg文件组成大致分为3段 命令段 键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项 软件包段
    %packages @groupname:指定安装的包组 package_name:指定安装的包 -package_name:指定不安装的包 在安装过程中默认安装的软件包,安装软件时会自动分析依赖关系。 脚本段(可选) %pre:安装系统前执行的命令或脚本(由于只依赖于启动镜像,支持的命令很少) %post:安装系统后执行的命令或脚本(基本支持所有命令) 关键字 含义 install 告知安装程序,这是一次全新安装,而不是升级upgrade。 url --url=" " 通过FTP或HTTP从远程服务器上的安装树中安装。 url --url="http://10.0.0.7/CentOS-6.7/" url --url ftp://<username>:<password>@<server>/<dir> nfs 从指定的NFS服务器安装。 nfs --server=nfsserver.example.com --dir=/tmp/install-tree text使用文本模式安装。 lang 设置在安装过程中使用的语言以及系统的缺省语言。lang en_US.UTF-8 keyboard 设置系统键盘类型。keyboard us zerombr 清除mbr引导信息。 bootloader 系统引导相关配置。 bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" --location=,指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)或none(不安装引导装载程序)。 --driveorder,指定在BIOS引导顺序中居首的驱动器。 --append=,指定内核参数.要指定多个参数,使用空格分隔它们。 network为通过网络的kickstart安装以及所安装的系统配置联网信息。 network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS6 --bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcp。bootp和dhcp被认为是相同的。 static方法要求在kickstart文件里输入所有的网络信息。 {network --bootproto=static --ip=10.0.0.100 --netmask=255.255.255.0 --gateway=10.0.0.2 --nameserver=10.0.0.2 请注意所有配置信息都必须在一行上指定,不能使用反斜线来换行。 --ip=,要安装的机器的IP地址. --gateway=,IP地址格式的默认网关. --netmask=,安装的系统的子网掩码. --hostname=,安装的系统的主机名. --onboot=,是否在引导时启用该设备. --noipv6=,禁用此设备的IPv6. --nameserver=,配置dns解析.} timezone 设置系统时区。timezone --utc Asia/Shanghai authconfig 系统认证信息。authconfig --enableshadow --passalgo=sha512 设置密码加密方式为sha512 启用shadow文件。 rootpw root密码 clearpart 清空分区。clearpart --all --initlabel --all 从系统中清除所有分区,--initlable 初始化磁盘标签 {part磁盘分区。 part /boot --fstype=ext4 --asprimary --size=200 part swap --size=1024 part / --fstype=ext4 –grow --asprimary --size=200 --fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat。 --asprimary,强迫把分区分配为主分区,否则提示分区失败。 --size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB。 --grow,告诉分区使用所有可用空间(若有),或使用设置的最大值。} firstboot 负责协助配置redhat一些重要的信息。 firstboot --disable selinux 关闭selinux。selinux --disabled firewall 关闭防火墙。firewall --disabled logging设置日志级别。logging --level=info reboot 设定安装完成后重启,此选项必须存在,不然kickstart显示一条消息,并等待用户按任意键后才重新引导,也可以选择halt关机。 
    6.重启各个服务,启动新的客户端验证测试:
    service  httpd   restart
    service  dhcpd   restart
    service  xinetd   restart
    7. 开启新的虚拟机,BIOS以网卡启动:
     
  • 相关阅读:
    React 16 源码瞎几把解读 【前戏】 为啥组件外面非得包个标签?
    nodejs 使用redis 管理session
    nodejs 优雅的连接 mysql
    mongodb 学习笔记 3 --- 查询
    mongodb 学习笔记 2 --- 修改器
    mongodb 学习笔记--- 基础知识
    看jquery3.3.1学js类型判断的技巧
    FIS3 大白话【一】
    Flutter 插件开发:以微信SDK为例
    最新Android面试题整理,收藏下吧值得拥有!
  • 原文地址:https://www.cnblogs.com/deny/p/12976234.html
Copyright © 2020-2023  润新知