注:服务端需要安装配置DHCP+HTTP+TFTP+Kickstart(重点创建ks.cfg文件)程序。

服务端软件安装配置:

1DHCP服务

yum -y install dhcp                            #安装

rpm -ql dhcp |grep "dhcpd.conf"                  #检查

vim /etc/dhcp/dhcpd.conf                        #配置

ddns-update-style none;    # 不进行DDNS的更新

 

ignore client-updates;     # 不允许客户机更新DNS记录

 

subnet 172.16.1.0 netmask 255.255.255.0    # 与下面的range配合声明可分配IP的范围

{

        option routers 172.16.1.20 ;        # 设置网关

        range 172.16.1.30 172.16.1.50;   # 可分配的起始IP 结束IP

        option subnet-mask 255.255.255.0;      # 设定netmask

        default-lease-time 21600;              # 设置默认的IP租用期限

        max-lease-time 43200;                 # 设置最大的IP租用期限

        next-server 172.16.1.20 ;           # 用来告知主机TFTP服务器的ip

        filename "/pxelinux.0";      # tftp服务器根目录下面的文件名(pxelinux.0PXE专用的一个boot loader 文件)

}

service dhcpd start                                 #启动

chkconfig dhcpd on                                #设置开机启动

netstat -nlptu |grep dhcp                             #检查服务

sed -i 's/DHCPDARGS= /DHCPDARGS=eth0/g' /etc/sysconfig/dhcpd     #仅在eth0上提供dhcp服务

sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf&&sysctl -p  #开启路由功能

 

2HTTP服务

yum -y install httpd                               #安装

chkconfig httpd on                               #开机自启动

service httpd start                                #启动服务

mkdir -p /var/www/html/os                        #创建挂载目录

mount /dev/cdrom /var/www/html/os/               #挂载系统镜像

 

3TFTP服务

yum -y install tftp-server                             #安装

vim /etc/xinetd.d/tftp                                #配置

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

}

yum -y install syslinux                                    #安装引导程序(提供pxelinux.0文件)

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/              #复制引导文件到TFTP的根目录

cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/

cp /var/www/html/os/p_w_picpaths/pxeboot/vmlinuz /var/lib/tftpboot     

cp /var/www/html/os/p_w_picpaths/pxeboot/initrd.img /var/lib/tftpboot/   

mkdir -p /var/lib/tftpboot/pxelinux.cfg                

cp /var/www/html/os/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default    #拷贝启动菜单

vim /var/lib/tftpboot/pxelinux.cfg/default                                     #配置文件

default vesamenu.c32

prompt 0

timeout 600

 

display boot.msg

 

menu background splash.jpg

menu title Welcome to CentOS 6.5!

menu color border 0 #ffffffff #00000000

menu color sel 7 #ffffffff #ff000000

menu color title 0 #ffffffff #00000000

menu color tabmsg 0 #ffffffff #00000000

menu color unsel 0 #ffffffff #00000000

menu color hotsel 0 #ff000000 #ffffffff

menu color hotkey 7 #ffffffff #ff000000

menu color scrollbar 0 #ffffffff #00000000

 

label linux

  menu label ^Install or upgrade an existing system

  menu default

  kernel vmlinuz

  append initrd=initrd.img ks=http://172.16.1.20/ks.cfg ksdevice=eth0 ip=dhcp

label vesa

  menu label Install system with ^basic video driver

  kernel vmlinuz

  append initrd=initrd.img xdriver=vesa nomodeset

label rescue

  menu label ^Rescue installed system

  kernel vmlinuz

  append initrd=initrd.img rescue

label local

  menu label Boot from ^local drive

  localboot 0xffff

label memtest86

  menu label ^Memory test

  kernel memtest

  append -

chmod 644 /var/lib/tftpboot/pxelinux.cfg/default                    #设置文件权限

ls /var/lib/tftpboot                                            #检查

initrd.img  pxelinux.0  pxelinux.cfg  vesamenu.c32  vmlinuz

 

4、配置kickstart自动安装文件

yum -y install system-config-kickstart         #建议在图形化界面内安装配置

vim /var/www/html/ks.cfg                       #配置

#by lrj 2016-3-29

# Kickstart file automatically generated by anaconda.

install                                     #告知安装程序,这是一次全新安装,而不是升级

url --url=http://172.16.1.20/os/        #告知安装程序,这是一个网络安装,使用HTTP来提供安装所需的资源

text                                        #使用文本模式安装

lang en_US.UTF-8                            #默认语言是英语

keyboard us                                 #使用美式键盘

zerombr                                     #清空mbr

bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"  #指定bootloader的安装位置及参数

network --device eth0 --bootproto dhcp --onboot on --hostname=CentOS6 --noipv6     #设置安装完成后的主机名和网络

timezone  Asia/Shanghai                     #设置时区

auth --useshadow --passalgo=sha512          #设置密码加密方式为sha512 启用shadow文件

rootpw --iscrypted $6$QHOksakPohOoVUL9$CNCHfAMYDZZZzZixAGGKCWdPkK8qVvpRk9DkaDOJtrRXlJkzk5GHMZ9zqCTdr8Qiozl9qHOVT5XnbGaZKt06d0                                        #设定root的密码

clearpart --all --initlabel                 #清空所有分区

part /boot --fstype=ext4 --size=200         #新建/boot分区

part swap  --fstype=swap --size=1000        #新建swap分区

part /     --fstype=ext4 --size=10000       #新建/分区

part /data --fstype=ext4 --grow --size=1    #新建/data分区

#part pv.008002 --size=5120                  #新建2个pv,每个pv大小为5G

#part pv.008003 --size=5120

#volgroup vg_root --pesize=4096 pv.008002 pv.008003  #新建一个VG,名为vg_root 包含了刚才创建的2个PV

#创建LV

#logvol / --fstype=ext4 --name=lv_root --vgname=vg_root --size=5120

#logvol swap --name=lv_swap --vgname=vg_root --size=2048

#logvol /data --fstype=ext4 --name=lv_data --vgname=vg_root --grow --size=1   #余下部分

firstboot --disable                          #禁止firstboot,firstboot就是我们使用图形化安装完系统,重启后有一个初始设置

selinux --disabled                           #禁止selinux

firewall --disabled                          #禁止防火墙

logging --level=info                         #设定安装过程中的日志级别

reboot                                       #设定安装完成后重启

#安装包我选择的是Basic模式,添加了中文支持

%packages

@base

@development

#中文支持

@chinese-support

@console-internet

@core

@debugging

@directory-client

@hardware-monitoring

@java-platform

@large-systems

@network-file-system-client

@performance

@perl-runtime

@server-platform

@server-policy

#加上优化脚本

%post

cd /root

/usr/bin/wget http://172.16.1.20/shell.tar.gz

/bin/tar -zxf shell.tar.gz

/bin/sh ` find ./ -name '*.sh' `

%end

注意

 grub-crypt                            #密方式为sha512生成的密码

Password: rhce

Retype password: rhce

$6$QHOksakPohOoVUL9$CNCHfAMYDZZZzZixAGGKCWdPkK8qVvpRk9DkaDOJtrRXlJkzk5GHMZ9zqCTdr8Qiozl9qHOVT5XnbGaZKt06d0

    特别注意分区方面,大小要以机器硬盘大小为主修改编写(否则出错),后续还可以加上一些自动化脚本做优化。