• Kickstart自动化安装平台


    PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行。

    要使用kickstart安装平台,包括的完整架构为:Kickstart+DHCP+NFS(http)+TFTP+PXE,从架构可以看出,大致需要安装的服务,例如dhcp、tftp、nfs、kickstart/pxe等。

    1) DHCP、TFTP安装

    yum  install   -y   dhcp*  tftp*  xinetd 

    首先配置tftp服务:

    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 = -u nobody -s /tftpboot
    per_source = 11
    cps = 100 2
    flags = IPv4
    }
    只需要把disable = yes改成disable = no即可。

    2)TFTP+PXE配置

    要实现远程安装系统,首先需要在TFTPBOOT目录指定相关PXE内核模块及相关参数。配置步骤如下:

    要实现远程安装系统,首先需要在TFTPBOOT目录指定相关PXE内核模块及相关参数。配置步骤如下:
    mount     /dev/cdrom    /mnt 挂载本地光盘
    #如果系统是6.x,默认tftpboot目录在/var/lib/下,所以centos6.x需要做软链接到/根目录下。
    ln -s  /var/lib/tftpboot  /
    cp /usr/share/doc/syslinux/pxelinux.0  /tftpboot/
    (yum install syslinux syslinux-devel -y)
    cp  /mnt/images/pxeboot/{vmlinuz,initrd.img}   ./  拷贝内核至tftpboot目录下
    mkdir  -p  pxelinux.cfg  &&cp  /mnt/isolinux/isolinux.cfg   /tftpboot/pxelinux.cfg/default 
    拷贝isolinux.cfg配置文件重命名,系统安装的时候会根据这个文件的配置启动相应的选项。
    修改pexlinux.cfg/default内容如下:
    default linux
    prompt  1
    timeout 10
    display boot.msg
    F1 boot.msg
    F2 options.msg
    F3 general.msg
    F4 param.msg
    F5 rescue.msg
    label linux
    kernel vmlinuz
    append ks=nfs:192.168.0.113:/centosinstall/ks.cfg  ksdevice=ens33 initrd=initrd.img
    label text
    kernel vmlinuz
    append initrd=initrd.img text
    label ks
    kernel vmlinuz
    append ks initrd=initrd.img
    label local
    localboot 1
    label memtest86
    kernel memtest
    append –

    解析:192.168.0.113是kickstart服务器,/centosinstall 是nfs共享linux镜像的目录,也是linux存放安装文件的路径,ks.cfg是kickstart主配置文件;设置timeout 10 /*超时时间为10S */;ksdevice=etho代表当我们有多块网卡的时候,要实现自动化需要设置从ens33安装。

    TFTP配置完毕,由于是TFTP是非独立服务,需要依赖xinetd服务来启动,启动命令为:

    chkconfig    tftp  --level 35 on  && service  xinetd  restart 

    3) NFS+KICKSTART配置

    远程系统安装,客户端需要下载系统所需的软件包,所以需要使用NFS或者httpd把镜像文件共享出来。

    mkdir   -p   /centosinstall
    nohup cp  -rf   /mnt/*  /centosinstall  &
    echo  “/centosinstall    *(rw,sync)” >>/etc/exports

    在NFS配置文件/etc/exports中加入如上语句:/centosinstall    *(rw,sync),表示允许任何主机访问/centosinstall目录,有读写权限。

           配置kickstart,可以使用system-kickstart系统软件包来配置,也可以直接拷贝/root/目录下anaconda-ks.cfg 重命名为ks.cfg,并把ks.cfg拷贝至刚共享的/centosinstall目录下,赋权限为chmod 777 ks.cfg

    如下我这里采用配置文件内容如下:vi ks.cfg

    # Kickstart file automatically generated by anaconda.
    install
    text
    nfs --server=192.168.0.79 --dir=/centosinstall
    key --skip
    lang zh_CN.UTF-8
    keyboard us
    network --device eth0 --bootproto=dhcp --noipv6
    rootpw 123456
    firewall --disabled
    authconfig --enableshadow --enablemd5
    selinux --disabled
    timezone Asia/Shanghai
    bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
    zerombr
    clearpart --all --initlabel
    part /boot --fstype ext3 --size=200
    part swap --size=4000
    part / --fstype ext3 --size=80000
    part /data --fstype ext3 --size=200--grow
    reboot
    %packages
    @base
    @core
    @chinese-support

    第一步install,以text字符界面,指定nfs共享IP和目录,设置安装后的服务器字符集、网络分配方式、密码;

    然后设置防火墙状态,磁盘采用MBR方式引导,然后客户机分区的情况;%packages

    后写入客户机系统需要安装的软件包,可以自己定制。更多详细的参数在此就不做过多的说明了,可以进一步学习。

    4)在真实环境中,通常我们会发现一台服务器好几块硬盘,做完raid,整个硬盘有等10T,如果来使用kickstart自动安装并分区呢;一般服务器硬盘超过2T,如何来使用kickstart安装配置呢?这里就不能使用MBR方式来分区,需要采用GPT格式来引导并分区。

    需要在ks.cfg末尾添加如下命令来实现需求:

    %pre
    parted  -s  /dev/sdb  mklabel  gpt
    %end

    为了实现kickstart安装完系统后,自动初始化系统等等工作,我们可以在系统安装完后,自动执行定制的脚本,需要在ks.cfg末尾加入如下配置:

    %post

    mount  -t  nfs 192.168.0.79:/centos/init   /mnt

    cd  /mnt/ ;/bin/sh  auto_init.sh

    %end

    5)     DHCP配置及测试

    Pxe+kickstart自动安装系统,需要用到DHCP分配的客户端的IP地址,这里直接上dhcpd.conf配置文件:

    ddns-update-style interim;

    ignore client-updates;

    next-server 192.168.0.79;

    filename "pxelinux.0";

    allow booting;

    allow bootp;

    subnet 192.168.0.0 netmask 255.255.255.0 {

    # --- default gateway

    option routers          192.168.0.1;

    option subnet-mask      255.255.255.0;

    range dynamic-bootp 192.168.0.100 192.168.0.200;

    host ns {

    hardware ethernet  00:1a:a0:2b:38:81;

    fixed-address 192.168.0.101;}

    }

    最后重启所有服务,并关闭iptables和selinux,然后找一台新服务器,接入网线与kickstart服务器在一个交换机或通过中继能获取到IP的网络即可。

    service    xinetd   restart

    service     nfs    restart

    service     dhcpd  restart

    真实环境需要注意,新服务器跟kickstart最后独立在一个网络,不要跟办公环境或者服务器机房网络混在一起,如果别的机器以网卡就会把它的系统重装成Linux系统。

  • 相关阅读:
    mvn command is not recognized as an internal or external command
    mac搭建nginx和wordpress开发环境
    搭建nginx+php环境时遇到”file not found"的问题
    MAC下bash配置文件的加载顺序
    lsof的注意事项
    理解字符集、字符编码、ASCII、Unicode、UTF-8
    初学markdown有感
    AngularJS开发指南-Animations
    #正则表达式# 学习笔记
    vi学习笔记/基本操作方法
  • 原文地址:https://www.cnblogs.com/legenidongma/p/10783711.html
Copyright © 2020-2023  润新知