红联Linux门户
Linux帮助

Kickstart自动化安装Linux笔记

发布时间:2014-08-06 21:53:45来源:linux网站作者:carllai

参考了各路大神的文章,结合自己实践过程,虽中间经历了些困难挫折,最终还是成功完成配置,实现了自动化安装Linux。

安装环境,虚拟机VirtualBox虚拟2台机器,一台做kickstart服务器,一台做客户端

服务器系统为CentOS 6.3 X86_64, 安装光盘为CentOS 6.3 X86_64 DVD

网卡全部配置为“内部网络”

首先,需要用到的服务有,dhcpd, httpd, xinetd, tftp, 用yum 依次安装。

vim /etc/xinetd.d/tftp 修改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
    }

vim /etc/dhcp/dhcpd.conf 修改dhcp配置文件

    ddns-update-style interim;
    allow booting;
    allow bootp;
    ignore client-updates;
    set vendorclass = option vendor-class-identifier;
    subnet 192.168.0.0 netmask 255.255.255.0 {
        option routers            192.168.0.1;
        option subnet-mask        255.255.255.0;
        range dynamic-bootp        192.168.0.10 192.168.0.50;
        filename                  "/pxelinux.0";
        default-lease-time        21600;
        max-lease-time            43200;
        next-server                192.168.0.1;
    }

简单介绍:
Option routers指定网关;
Option domain-name-server指定DNS服务器;
Option subnet-mask指定掩码;
range dynamic-bootp指定分配给客户端的IP地址段;
Filename 指定启动镜像;
Next-server 指定TFTP服务器。

服务器的网卡ifcfg-eth0配置为静态IP:192.168.0.1, 子网掩码255.255.255.0, 网关192.168.0.1

设置开机启动服务,

chkconfig xinetd on

chkconfig dhcpd on

chkconfig httpd on

依次启动服务

service xinetd start

service dhcpd start

service httpd start

注意要关掉防火墙,selinux 设为permissive, 不然会导致PXE加载失败

挂载linux安装盘, mkdir -p /mnt/iso,  mount -o loop /dev/dvd /mnt/iso,

cp /mnt/iso/* /var/www/html, 将光盘内容全部复制到html根目录(采用httpd方式安装),

创建目录/tftpboot, 将Linux安装程序的内核、根文件系统文件及其他文件复制到tftp的根目录中,

罗列下/tftpboot目录下大概会用到的文件,

initrd.img (文件,从光盘/mnt/iso/isolinux/目录拷贝)

 pxelinux.0(文件,从/usr/share/syslinux目录拷贝,若无,则须安装syslinux)

 pxelinux.cfg(目录,自建,里面存放名为default的文件,该文件从/mnt/iso/isolinux/isolinux.cfg复制并改名为default)

 vmlinuz (文件,从/mnt/iso/isolinux/目录拷贝)

vesamenu.c32(文件,从/mnt/iso/isolinux/目录拷贝)

注意权限,chmod +x /tftpboot/pxelinux.cfg/default

若要图形化配置kickstart, 则需安装system-config-kickstart,图形化操作较简便,未详述,

若要文本配置kickstart,则要配置ks.cfg文件,

复制/root/anaconda-ks.cfg文件方式:Red Hat操作系统,在系统安装完成后,会自动在root家目录下创建一个anaconda-ks.cfg文件,这个文件真实的记录了系统安装过程中的配置。我们可以复制这个文件,然后在其基础上进行配置

cp anaconda-ks.cfg /var/ww/html/ks.cfg

chmod +r /var/www/html/ks.cfg

【ks.cfg配置文件的内容】

    # Kickstart file automatically generated by anaconda.    
    #version=DEVEL    
    Install        
    url --url=http://192.168.0.1/
    lang en_US.UTF-8  
    keyboard us  
    text  
    key –skip    #红帽的序列号,如果有则写,没有则跳过。注:有些版本的系统会忽略这个,而有些则需要你明确定义跳过该步骤。 否则会影响自动化安装。  
    network –bootproto=dhcp --device=eth0  --onboot=on  
    rootpw  --iscrypted $1$AbMG5lMV$wpNs2yKuFbz4iev/  #为root用户设密码,明文也行。  
    # Reboot after installation    
    reboot  
    firewall --disabled    
    authconfig --useshadow  --passalgo=sha512    
    selinux --disabled
    timezone Asia/Shanghai    
    bootloader --location=mbr --driveorder=sda
      
    # The following is the partition information you requested    
    # Note that any partitions you deleted are not expressed  
    # here so unless you clear all partitions first, this is    
    # not guaranteed towork  
      
    clearpart --all --initlabel
          
    part /boot --fstype=ext4 --size=500    
    part swap  --size=2048    
    part /    --fstype=ext4 --grow --size=2    #--grow表示将剩余的所有磁盘空间分配给根分区
    
    
    #逻辑卷分区创建实例  
      
    part /boot –fstype=ext4 –size=500        #因为系统启动时无法识别lvm分区表,所以需要为/boot单独分区。    
    part pv.01 --grow --size=1    
    volgroup vg0 pv.01  
    logvol swap      --fstype=swap  --name=swap  --vgname=vg0  --size=1024
    logvol /          --fstype=ext4  --name=root  --vgname=vg0  --size=5120    
    logvol /tmp      --fstype=ext4  --name=tmp    --vgname=vg0  --size=5120    
    logvol /home      --fstype=ext4  --name=home  --vgname=vg0  --size=5120
    logvol /usr/local--fstype=ext4  --name=local  --vgname=vg0  --size=10240
      
    %packages  
    @Base  
    @Core  
    @base  
    @client-mgmt-tools  
    @debugging  
    @emacs  
    @ftp-server  
    @hardware-monitoring  
    @large-systems  
    @network-file-system-client  
          
    %end  

最后再在pxelinux.0的配置文件/tftpboot/pxelinux.cfg/default文件中指定kickstart文件即可。编辑/tftpboot/pxelinux.cfg/defalut文件,修改的内容我用红色进行标记,

    timeout 30
    label linux
      menu label ^Install or upgrade an existing system
      menu default
      kernel vmlinuz
      append initrdinitrd=initrd.img ks=http://192.168.0.1/ks.cfg

配置完毕后,测试客户端PXE启动,成功引导并加载镜像自动安装!