您的位置:首页 > 运维架构 > Linux

kickstrat+vsftpd+dhcp+tftp-server+PXE实现自动安装centos6.3

2013-03-27 22:46 633 查看
生产环境中会经常为新的服务器安装操作系统,每次都要重复的配置参数信息,真心受不了,在博客看到自动dhcp自动获取安装系统的文章,觉得很有必要学习下,测试过后做了此笔录,一边以后方便使用,还请广大博友多多指教批评。。

准备环境:
一台安装kickstart的服务器(本机系统:centos-6.3-i386):
hostname:AOIN
ip:192.168.1.126
netmask:255.255.255.0
gateway:192.168.1.1

一、先介绍下PXE、kickstart的原理和概念(这段是直接拿的他人文档的内容,需要深入了解的可自行搜索)。。。。
1. 什么是PXE

严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。
2. 什么是Kickstart
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为 ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找 Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。
3. PXE + Kickstart的安装条件和详细步骤
执行PXE+Kickstart安装需要的设备为:
DHCP 服务器。
TFTP 服务器。
Kickstart所生成的ks.cfg配置文件。
一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器(这里使用ftp)。
一个带有 PXE 支持网卡的主机

二、安装环境部署
yum安装所需的两个开发包组:"X window system"和"Desktop",要在图形化配置中用到,后面会提到。。
yum源自行添加和配置,这里不再书面说明(本人yum源用的是第三方yum源:http://mirrors.sohu.com)。。
安装指令:
#yum -y groupinstall "X window system" "Desktop"
。。。时间会比较久一些,请耐心等待。。。
挂载光盘源到/media/source/目录下,提供启动所需的文件等等。。

#mount -o loop /dev/cdrom /media/source

三、安装完成后就可以安装所需要的软件包了,这里全部yum安装:

#yum -y install *kickstart* dhcp vsftpd tftp-server

安装完成后查看时否安装了syslinux(PXE所需要用到的)软件包:
#rpm -ql syslinux
(若未安装)
#yum -y install syslinux
安装完成后会生成pxelinux.0这个文件(PXE启动时所需)

[root@localhost~]#rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux
/usr/share/syslinux/pxelinux.0
[root@localhost~]#

《1》复制PXE启动所需要的文件,复制pxelinux.0到/var/lib/tftpboot/下,在/var/lib/tftpboot下新建目录pxelinux.cfg,用来提供pxe的启动文件
#mkdir  /var/lib/tftpboot/pxelinux.cfg
#cp /usr/share/syslinux/pxelinux.0   /var/lib/tftpboot/
#cp /mdeia/source/isolinux/*  /var/lib/tftpboot/
#mv /tftpboot/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default    ////定义pxe引导文件的

《2》配置dhcp.conf文件:

#cp /etc/dhcp/dhcpd.conf   /etc/dhcp/dhcpd.conf.bak
#vim /etc/dhcp/dhcpd.conf
修改如下:(其他的全部删除)
ddns-update-style interim;
ignore client-updates;
next-server 192.168.1.126;               //服务器ip
filename="pxelinux.0";                     //PXE相对路径
subnet 192.168.1.0 netmask 255.255.255.0 {     ///指定网段
option routers 192.168.1.1;                         ///指定路由
option subnet-mask 255.255.255.0;               ///子网掩码
option nis-domain "weiyang.com";
option domain-name "weiyang.com";
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.1.130 192.168.1.160;   ///指定ip池
default-lease-time 21600;
max-lease-time 43200;
}
《3》接着修改/etc/xinetd.d/tftp文件,将disable的值由yes变为no,内容如下所示:#vim /etc/xinetd.d/tftp

service tftp
{
disable = no
socket_type             = dgram
protocol                = udp
wait                    = yes
user                    = root
server                  = /usr/sbin/in.tftpd
server_args             = -s /var/lib/tftpboot
disable                 = no
per_source              = 11
cps                     = 100 2
flags                   = IPv4
}


《4》复制/media/source下的所有文件到/var/ftp/pub
#cp -rf /media/source/* /var/ftp/pub

重新启动计算机,执行:system-config-kickstart 命令,否则直接执行会报错。。。。

《5》图形化配置ks.cfg的文件信息:
#system-config-kickstart
将定义好的ks.cfg文件保存至/var/ftp/;
::图示如下::
更改时区,创建root密码




安装方式,这里是ftp方式,ftp服务器地址和目录;(可以使用http和nfs)




默认





选择第一选项,不多说;添加分区等




网卡配置信息;




其他默认就行,无需理会;保存ks.cfg至/var/ftp目录下;




编辑ks.cfg文件:添加如下行:

# Partition clearing information
clearpart --all --initlabel
key --skip
/////跳过序列号输入/////

#vim /var/ftp/ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="ftp://192.168.233.129/pub"
# Root password
rootpw --iscrypted $1$RByXp/NK$0XtjBDV7bb3UxLGz.oUIJ/
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info

# System timezone
timezone  Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
key --skip
# Disk partitioning information
part /boot --fstype="ext3" --size=100
part swap --fstype="swap" --size=1000
part / --fstype="ext3" --size=1
编辑/var/lib/tftpboot/pxelinux.cfg/default文件,指定kernel image:#vim /var/lib/tftpboot/pxelinux.cfg/default


///只显示更改的内容,其他的可删除///
default  linux   ///定义默认载入哪个标签///
label linux
kernel  vmlinuz
apend initrdinitrd=initrd.img ks=ftp://192.168.1.126/ks.cfg


6》至此,所有配置已完成,关闭iptables,关闭selinux,重启所有服务

#service iptables stop
#setenforce 0
#chkconfig vsftpd on
#chkconfig dhcpd on
#chkconfig xinetd on
#chkconfig tftp on
#service vsftpd restart
#service dchpd restart
#service xinetd restart
《7》创建一台新的虚拟机,启动顺序更改为网络启动,自动安装就完成了,安装过程不再详述。。。。。
本文出自 “当了灵魂的躯体” 博客,请务必保留此出处http://7linux.blog.51cto.com/6110108/1164017
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: