• 实现Kickstart + NFS + DHCP + PXE的全自动远程无人职守安装


    实现Kickstart + NFS + DHCP + PXE的全自动远程无人职守安装

    实验环境:C/S结构,服务器采用的操作系统为Centos 4.5,客户端预装RHEL 4.5,Centos 5.2



    1,配置安装树:

    建立ISO镜像目录:将镜像文件按照操作系统类别放到相关目录下,还可以细分为32位和64位版本,如下:

    [root@drbd-2 opt]# ll
    total 8
    drwxr-xr-x  4 root root 4096 Oct 30 09:10 Centos
    drwxr-xr-x  2 root root 4096 Oct 29 19:35 Redhat


    2,配置kickstart无人值守安装脚本:

    需要安装kickstart工具包:system-config-kickstart-2.5.16-2.noarch.rpm

    进入图形界面运行system-config-kickstart命令按照提示进行无人值守脚本配置:

    * 选择的安装方式是通过NFS网络安装,配置好NFS服务器的ip和输出目录。
    * 分区方法是分给系统必须的3个分区,/boot,/,swap,剩下的分区再调整。
    * 选择系统安装软件包。

    将生成的ks.cfg文件拷贝到安装树所在路径的ISO镜像文件所在目录,并将名字更改为操作系统相关版本,如下:

    [root@drbd-2 opt]# cd Centos/
    [root@drbd-2 Centos]# ls
    4.6  5.2
    [root@drbd-2 Centos]# cd 5.2
    [root@drbd-2 5.2]# ll
    total 3930212
    -rw-r--r--  1 root root       1336 Oct 30 11:33 centos5.2.cfg
    -rw-r--r--  1 root root 4020600832 Jun 26 09:17 CentOS-5.2-i386-bin-DVD.iso

    如果有多个安装源就按照类似的方法进行操作。


    3,配置DHCP服务器

    [root@drbd-2 5.2]# more /etc/dhcpd.conf
    ddns-update-style interim;
    ignore client-updates;

    subnet 192.168.1.0 netmask 255.255.255.0 {

            option routers                  192.168.1.1;
            option subnet-mask              255.255.255.0;

            option domain-name              "example.com";
            option domain-name-servers      192.168.1.1;
            option time-offset              -18000;

            range dynamic-bootp 192.168.1.128 192.168.1.254;
            default-lease-time 21600;
            max-lease-time 43200;
            filename "/pxelinux.0";
    }



    3,配置TFTP服务器

    [root@drbd-2 5.2]# more /etc/xinetd.d/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
    {
            disable = no
            socket_type             = dgram
            protocol                = udp
            wait                    = yes
            user                    = root
            server                  = /usr/sbin/in.tftpd
            server_args             = -s /tftpboot
            per_source              = 11
            cps                     = 100 2
            flags                   = IPv4
    }



    3,配置NFS服务器

    添加ISO镜像文件路径:

    [root@drbd-2 5.2]# more /etc/exports
    /var/opt/Centos/4.6     192.168.1.0/24(sync,rw)
    /var/opt/Centos/5.2     192.168.1.0/24(sync,rw)



    4,配置支持PXE启动:

    把操作系统ISO镜像挂载到一个空目录,将里面以下文件,/image/pxeboot/initrd.img和vmlinux 以及isolinux/*.msg拷贝到/tftpboot目录下,并更改为操作系统

    相关名字,如下:

    cp /usr/lib/syslinux/pxelinux.0 /tftpboot

    [root@drbd-2 tftpboot]# ll
    total 18308
    -r--r--r--  1 root root    2048 Oct 29 20:23 boot.cat
    -r--r--r--  1 root root     458 Oct 29 16:41 boot.msg
    -r--r--r--  1 root root    1220 Oct 29 16:41 general.msg
    -r--r--r--  1 root root 4025705 Oct 29 16:41 initrd-centos4.6.img
    -rw-r--r--  1 root root 5669675 Oct 30 09:13 initrd-centos5.2.img
    -r--r--r--  1 root root   81860 Oct 29 20:24 memtest
    -r--r--r--  1 root root     904 Oct 29 16:41 options.msg
    -r--r--r--  1 root root     968 Oct 29 16:41 param.msg
    -rw-r--r--  1 root root   11822 Oct 30 09:18 pxelinux.0
    drwxr-xr-x  2 root root    4096 Oct 30 09:24 pxelinux.cfg
    -r--r--r--  1 root root     536 Oct 29 16:41 rescue.msg
    -r--r--r--  1 root root     549 Oct 29 16:41 snake.msg
    -r--r--r--  1 root root 1518693 Oct 29 16:40 vmlinuz-centos4.6
    -rw-r--r--  1 root root 1806388 Oct 30 09:12 vmlinuz-centos5.2



    注意:
        如果客户端安装的操作系统版本和服务器的操作系统版本不同的话,
    需要安装"syslinux-2.06-0.3E.i386.rpm包",通过下面命令直接拿到里面的文件:
    rpm2cpio syslinux-2.06-0.3E.i386.rpm | cpio -vid,解压之后进入/usr/lib/syslinux目录,拿到pxelinux.0文件,将其放到服务器/tftp目录中,对于每一个要被安装的操作系统版本,都需要执行一次该操作,等于说是覆盖。


    cd /tftpboot
    mkdir pxelinux.cfg
    cd pxelinux.cfg

    在pxelinux.cfg目录下,建立配置文件default文件的内容如下:

    [root@drbd-2 pxelinux.cfg]# more default
    default centos4.6
    display pxelinux.cfg/list
    prompt 1


    label centos4.6
    kernel vmlinuz-centos4.6
    append ks=nfs:192.168.1.244:/var/opt/Centos/4.6/centos4.6.cfg initrd=initrd-centos4.6.img ramdisk_size=8192


    label centos5.2
    kernel vmlinuz-centos5.2
    append ks=nfs:192.168.1.244:/var/opt/Centos/5.2/centos5.2.cfg initrd=initrd-centos5.2.img ramdisk_size=8192




    如果是要统一安装某个操作系统版本的话,需要加上“timeout 60”,考虑到在自动安装的时候,用户可以选择操作系统的类别,需要加个list文件解决:

    [root@drbd-2 pxelinux.cfg]# more list
    Choose one of the following Linux distributions for your installation:
    Name           Distribution   Arch.   Installation media
    -------------------------------------------------------------------------
    centos4.6   centos4.6   i386    192.168.1.244:/var/opt/Centos/4.6/
    centos5.2   centos5.2   i386    192.168.1.244:/var/opt/Centos/5.2/


    [root@drbd-2 5.2]# more centos5.2.cfg
    #Generated by Kickstart Configurator
    #platform=x86, AMD64, or Intel EM64T

    #System  language
    lang en_SG
    #Language modules to install
    langsupport en_SG
    #System keyboard
    keyboard us
    #System mouse
    mouse
    #Sytem timezone
    timezone Asia/Shanghai
    #Root password
    rootpw --iscrypted $1$/NyFEhVR$/B/pv5ZqSUU.iQ4UVEg7d/
    #Reboot after installation
    reboot
    #Install OS instead of upgrade
    install
    #Use NFS installation Media
    nfs --server=192.168.1.244  --dir=/var/opt/Centos/5.2
    #System bootloader configuration
    bootloader --location=mbr
    #Clear the Master Boot Record
    zerombr yes
    #Partition clearing information
    clearpart --all --initlabel
    #Disk partitioning information
    part /boot --fstype ext3 --size 150
    part / --fstype ext3 --size 10000
    part swap --size 4000
    #System authorization infomation
    auth  --useshadow  --enablemd5
    #Firewall configuration
    firewall --disabled
    #SELinux configuration
    selinux --disabled
    #Do not configure XWindows
    skipx
    #Package install information
    %packages --resolvedeps
    @ gnome-desktop
    @ editors
    @ engineering-and-scientific
    @ graphical-internet
    @ text-internet
    @ server-cfg
    @ web-server
    @ mail-server
    @ ftp-server
    @ network-server
    @ legacy-network-server
    @ development-tools
    @ x-software-development
    @ gnome-software-development
    @ kde-software-development
    @ legacy-software-development
    @ admin-tools
    @ system-tools


    完成所有的服务配置之后进行检查。
    准备一台虚拟机客户端,然后更改启动方式为通过带PXE自启动模块的网卡启动,客户端在开启之后会主动向DHCP服务器获取地址,并且从TFTP服务器上获得安装配置以及信息;客户端所做的工作只是开机,剩下的工作由ks.cfg文件控制自动完成。

  • 相关阅读:
    环保设备用电云监控平台在火力发电厂的应用
    CSS3_动画
    利用 python 脚本 PyRdp 设置 RDS 服务器蜜罐 Honeypot
    C# 字典代替switch case跳转函数
    消息队列中间件的选型与比较
    Linux之shell条件测试
    ESP8266-Arduino编程实例-PWM
    DXF笔记:多义线线宽的绘制思路
    【ASM】字节码操作 Label 如何使用 生成 if 语句
    小红书商城整店商品API接口(店铺所有商品接口)
  • 原文地址:https://blog.csdn.net/vempire/article/details/128049188