centos64用kickstart自动安装系统

原理:


centos64用kickstart自动安装系统
一、过程思路
1、客户端网卡在主机启动初始化时通过网卡内置的PXE芯片启动DHCP进程向server获取ip地址,网卡获取到ip地址后,server会提供给client一个下载bootloader的指令,就是dhcp服务器中dhcpd.conf配置文件中filename这个选项。
2、网卡PXE芯片中已经包含了tftp client程序,获取到ip地址后,网卡会启动tftp服务去向tftp server请求传输这个bootloader文件PXElinux.0。当Bootloader加载后我们可以看到主机屏幕上有信息显示,而这个画面就是我们在用光驱装linux的时候看到的第一个画面。画面提示选择图形界面安装还是linux text字符界面安装等信息。如果在server端的tftpboot目录下只有这个文件,那么客户机会一直停留在boot这个地方,因为没有default这个bootloader配置文件告诉机器下一步加载哪个系统内核,default配置文件的作用是告诉主机从哪里去加载操作系统内核,这个时候如果我们按照正常光碟装机时会看到提示:输入回车或者linux text等信息。Bootloader会去调用default配置文件中的操作系统内核文件。
3default 文件配置好之后,接着就是指定内核文件,这个在default文件最后。就是vmlinuzinitrd.img *.msg 这几个文件。
4、到这一步加载成功后,系统就按照我们平常光碟装系统看到的过程一模一样了,选择语言,鼠标,键盘等,但因为有了KS这个自动安装脚步,这些都不要我们手工去指定,全部会自动完成。
5、到这里为止,也许有人会问,那我们从哪里去加载安装的镜像。且慢,不是有个ks安装脚本吗,就是这个脚本里面我们可以指定安装镜像在哪里
6、现在就考虑系统镜像的传输,这里我们选用linux特有的NFS网络文件系统进行镜像的传输。当然也可以用HTTPFTP等方式。但为什么我们不直接使用tftp呢,因为这个协议在传输大文件的时候效率非常低。


上面来自:http://crazyming.blog.51cto.com/1048571/331036

二、安装过程
# yum install -y httpd* tftp-server syslinux dhcp


# mkdir /var/www/html/cdrom
# mount -t iso9660 /dev/cdrom /var/www/html/cdrom/

如果是iso文件:# mount -o loop /root/CentOS-6.3-x86_64-bin-DVD1.iso /var/www/html/cdrom/


1 配置tftp

# vi /etc/xinetd.d/tftp
disable                 = yes
=》
disable                 = no


# service xinetd restart


2 配置支持PXE启动
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
# cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot 
# cp /var/www/html/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot
# cp /var/www/html/cdrom/images/pxeboot/vmlinuz  /var/lib/tftpboot
# cp /var/www/html/cdrom/isolinux/*.msg   /var/lib/tftpboot


# cd /var/lib/tftpboot/ && mkdir pxelinux.cfg
# cp /var/www/html/cdrom/isolinux/isolinux.cfg   /var/lib/tftpboot/pxelinux.cfg/default




3 配置dhcp
# cat /etc/dhcp/dhcpd.conf


option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.24.10;
filename "pxelinux.0";
log-facility local7;
subnet 192.168.24.0 netmask 255.255.255.0{
    
range 192.168.24.230 192.168.24.254;
option domain-name-servers ns1.internal.example.org;
option domain-name "internal.example.org";
option routers 192.168.24.2;
option broadcast-address 192.168.24.255;
default-lease-time 600;
max-lease-time 7200;
}

# /etc/init.d/dhcpd restart


4 让引导文件加载ks文件

# vim /var/lib/tftpboot/pxelinux.cfg/default

append initrd=initrd.img  改成

#指定网卡启动pxe

append initrd=initrd.img ks=http://192.168.24.10/ks.cfg ksdevice=eth0


我的ks.cfg文件


# Kickstart file automatically generated by anaconda.


#version=DEVEL
install
url --url=http://192.168.24.10/cdrom
lang en_US.UTF-8
keyboard us
#network --onboot yes --device eth0 --bootproto dhcp --ipv6 auto


network --bootproto static --device=eth0 --ip 192.168.24.199 --netmask 255.255.255.0 --gateway 192.168.24.2 --nameserver 218.85.152.99 --hostname gaorong
network --bootproto static --device=eth1 --ip 192.168.10.11 --netmask 255.255.255.0
 


rootpw --iscrypted $6$76kMEpadFeKZHZvZ$VsCC6yTOX6oj1vel6tVpfJl.wLK8uhf/XFCXVkBbE1NUhVfY8rCcH6n1uEYmel.89.c0XEJAqk1JK5uL5W4Da/
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Shanghai
#bootloader --location=partition --driveorder=sda --append=”crashkernel=auto rhgb quiet”
bootloader --location=mbr --driveorder=sda --append=”crashkernel=auto rhgb quiet”
# 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 to work
clearpart --all --initlabel


part /boot --fstype=ext3 --size=500
part swap --size=2048
part / --fstype=ext4 --grow --size=200


 


%packages
# 最小化安装
@chinese-support
@core
@server-policy


# 我的图形化安装
@base
@core
@debugging
@basic-desktop
@desktop-debugging
@desktop-platform
@directory-client
@fonts
@input-methods
@internet-browser
@java-platform
@legacy-x
@network-file-system-client
@print-client
@remote-desktop-clients
@server-platform
@server-policy
@x11
mtools
pax
oddjob
sgpio
device-mapper-persistent-data
abrt-gui
samba-winbind
certmonger
pam_krb5
krb5-workstation
libXmu











%end






%post
echo "export LANG=us_EN.UTF-8" >> /etc/profile
source /etc/profile


chkconfig --list |grep 3:on |awk '{print $1}' |egrep -v "network|sshd|network|rsyslog|crond|udev-post" |xargs -i chkconfig --level 3 {} off


yum install -y wget lrzsz mlocate ntp ntpdate vim
echo "set ts=4" >> /etc/vimrc
echo "expandtab" >> /etc/vimrc


#mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#wget http://mirrors.163.com/.help/CentOS6-Base-163.repo -O /etc/yum.repos.d/CentOS-Base.repo
rpm -Uvh ftp://ftp.kddlabs.co.jp/pub/Linux/packages/redhat/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6


#rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag


echo "00 * * * * /usr/sbin/ntpdate asia.pool.ntp.org" > /var/spool/cron/root
%end


reboot






你可能感兴趣的:(centos64用kickstart自动安装系统)