免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2480 | 回复: 1
打印 上一主题 下一主题

pxe+http+ks+dhcp+tftp网络自动安装centos-论坛整理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-10 20:09 |只看该作者 |倒序浏览
pxe+http+ks+dhcp+tftp网络自动安装centos-论坛整理














整理了论坛里几位大牛的帖子,我只是把他们的东西综合了一下,自己安装了一遍,把过程发上来分享

开始:
开机选PXE网卡启动(一般按F12)--dhcp获取ip和pxelinux.0位置--tftp下载pxelinux.0、vmlinuz、initrd--通过pxelinux.0文件找到pxelinux.cfg里的default配置文件,按配置文件找着vmlinuz引导centos进入安装界面--根据ks.cfg去指定http下载安装文件,并自动安装完成
本机ip:192.168.0.6
一、制作ks.cfg
1. 全新安装centos,选择好所需定制包
2. 完成安装后会在root下面生成一个install.log(rpm包列表)anaconda-ks.cfg(下文的ks.cfg基于此文件修改)
3. 将其简单编辑下保存起来
   cat /root/install.log | grep Installing | sed 's/Installing //g'|sed 's/^[0-9]\+://g' > /tmp/rpm.log
4. 创建存放rpm包的目录
    mkdir -p /tmp/cdrom/CentOS
5. 将centos光盘或iso文件挂在到mnt下
    mount -o loop CentOS-5.5-i386-bin-DVD.iso /mnt
    mount /dev/cdrom /mnt/
6. 将所需软件包(rpm.log 列出的)copy到 /tmp/cdrom/CentOS/ 下
使用shell如下:
#!/bin/bash
DEBUG=0
LT_CD=/mnt
ALL_RPMS_DIR=/mnt/CentOS
LT_RPMS_DIR=/tmp/cdrom/CentOS/
packages_list=/tmp/rpm.log
number_of_packages=`cat $packages_list | wc -l`
i=1
while [ $i -le $number_of_packages ] ; do
line=`head -n $i $packages_list | tail -n -1`
name=`echo $line | awk '{print $1}'`
version=`echo $line | awk '{print $3}' | cut -f 2 -d :`
if [ $DEBUG -eq "1" ] ; then
echo $i: $line
echo $name
echo $version
fi
if [ $DEBUG -eq "1" ] ; then
ls $ALL_RPMS_DIR/$name-$version*
if [ $? -ne 0 ] ; then
echo “cp $ALL_RPMS_DIR/$name-$version* ”
fi
else
echo “cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/”
cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/
# in case the copy failed
if [ $? -ne 0 ] ; then
echo “cp $ALL_RPMS_DIR/$name-$version* ”
cp $ALL_RPMS_DIR/$name* $LT_RPMS_DIR/
fi
fi
i=`expr $i + 1`
done
7. 赋予执行权限 chmod 777 rpm.sh
    执行shell   ./rpm.sh
8. 将除CentOS目录以外的文件同步到cdrom文件夹里
    rsync -avpz --exclude=CentOS /mnt/ /tmp/cdrom/
10.生成ks.cfg文件
cat /tmp/cdrom/CentOS/ks.cfg
install
url --url http://192.168.0.6/
lang en_US.UTF-8
keyboard us
network --device=eth0 --bootproto static --ip 192.168.0.6 --netmask 255.255.255.0 --gateway 192.168.0.1 --nameserver 8.8.8.8 --hostname csys
rootpw --iscrypted $1$ioa/i9np$zbOdjS52XKA62z7NC5KwN/
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=hdb
text
firstboot --disable
logging --level=info
reboot
zerombr
clearpart --all --initlabel
part swap --fstype="swap" --size=2000
part /boot --fstype="ext3" --size=100
part / --fstype="ext3" --size=20000
part /opt --fstype="ext3" --grow --size=1
skipx
%packages --resolvedeps
@base
@core
@dialup
@editors
@text-internet
keyutils
trousers
fipscheck
device-mapper-multipath
%post
echo "nameserver 202.106.46.151" >> /etc/resolv.conf
/sbin/chkconfig microcode_ctl off
/sbin/chkconfig lvm2-monitor off
/sbin/chkconfig readahead_early off
/sbin/chkconfig kudzu off
/sbin/chkconfig mcstrans off
/sbin/chkconfig isdn off
/sbin/chkconfig auditd off
/sbin/chkconfig restorecond off
/sbin/chkconfig cpuspeed off
/sbin/chkconfig irqbalance off
/sbin/chkconfig portmap off
/sbin/chkconfig nfslock off
/sbin/chkconfig mdmonitor off
/sbin/chkconfig rpcidmapd off
/sbin/chkconfig rpcgssd off
/sbin/chkconfig messagebus off
/sbin/chkconfig bluetooth off
/sbin/chkconfig netfs off
/sbin/chkconfig pcscd off
/sbin/chkconfig acpid off
/sbin/chkconfig apmd off
/sbin/chkconfig haldaemon off
/sbin/chkconfig hidd off
/sbin/chkconfig autofs off
/sbin/chkconfig cups off
/sbin/chkconfig rawdevices off
/sbin/chkconfig sendmail off
/sbin/chkconfig gpm off
/sbin/chkconfig anacron off
/sbin/chkconfig atd off
/sbin/chkconfig yum-updatesd off
/sbin/chkconfig avahi-daemon off
/sbin/chkconfig firstboot off
/sbin/chkconfig local off
/sbin/chkconfig smartd off
/usr/sbin/eject
11.制作iso文件(网络安装,可省略)
mkisofs -r -T -J -V CentOS -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /tmp/CentOS5.5-i386.iso /tmp/cdrom/
12.将/tmp/cdrom/目录设置成http跟目录。


二、安装tftp
安装
yum install tftp*
配置
-bash-3.2# more /etc/xinetd.d/tftp
service tftp
{
         socket_type             = dgram
         protocol                = udp
         wait                    = yes
         user                    = root
         server                  = /usr/sbin/in.tftpd
         server_args             = -u nobody -s /tftpboot
         disable                 = no
         per_source              = 11
         cps                     = 100 2
         flags                   = IPv4
}
启动
-bash-3.2# /etc/init.d/xinetd restart
查看确认
-bash-3.2# chkconfig --list |grep tftp
         tftp:           on

三、安装dhcp
安装
-bash-3.2# yum install dhcp*
配置
-bash-3.2# more /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8;
option time-offset -18000;
range dynamic-bootp 192.168.0.200 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.0.6;
filename "/pxelinux.0";
}
host wy {
         hardware ethernet 40:61:86:7C:77:F3;
         fixed-address 192.168.0.6;
}
启动
-bash-3.2# /etc/init.d/dhcpd start
卡机自动启动
-bash-3.2# chkconfig --level 2345 dhcpd on
查看确认
-bash-3.2# chkconfig --list |grep dhcpd
dhcpd           0ff   1ff   2n    3n    4n    5n    6ff

四. pxe相关文件放到tftp目录
挂载centos5.5光盘到/mnt目录

-bash-3.2# mkdir /tftpboot/pxelinux.cfg
-bash-3.2# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
-bash-3.2# cp /mnt/isolinux/vmlinuz /tftpboot/
-bash-3.2# cp /mnt/isolinux/initrd.img /tftpboot/
-bash-3.2# vi /tftpboot/pxelinux.cfg/default
default linux
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
   kernel vmlinuz
   append initrd=initrd.img ramdisk_size=8192 ks=http://192.168.0.6/ks.cfg
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 -

#文件说明dhcpd.conf:
/etc/dhcpd.conf通常包括三部分:parameters、declarations 、option。
1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户
    参 数                                解 释
ddns-update-style               配置DHCP-DNS 互动更新模式。
default-lease-time              指定确省租赁时间的长度,单位是秒。
max-lease-time                  指定最大租赁时间长度,单位是秒。
hardware                        指定网卡接口类型和MAC地址。
server-name                     通知DHCP客户服务器名称。
get-lease-hostnames flag        检查客户端使用的IP地址。
fixed-address ip                分配给客户端一个固定的地址。
authritative                    拒绝不正确的IP地址的要求。

2.DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等
声 明                                                 解 释
shared-network                              用来告知是否一些子网络分享相同网络。
subnet                                      描述一个IP地址是否属于该子网。
range                                       起始IP 终止IP 提供动态分配IP 的范围。
host                                        主机名称 参考特别的主机。
group                                       为一组参数提供声明。
allow unknown-clients;deny unknown-client   是否动态分配IP给未知的使用者。
allow bootp;deny bootp                      是否响应激活查询。
allow booting;deny booting                  是否响应使用者查询。
filename                                    开始启动文件的名称. 应用于无盘工作站。
next-server                                 设置引导服务器ip地址,用于bootp方式的引导

3. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始
选 项                              解 释
subnet-mask           为客户端设定子网掩码。
domain-name           为客户端指明DNS名字。
domain-name-servers   为客户端指明DNS服务器IP地址。
host-name             为客户端指定主机名称。
routers               为客户端设定默认网关。
broadcast-address     为客户端设定广播地址。
ntp-server            为客户端设定网络时间服务器IP地址。
time-offset          为客户端设定和格林威治时间的偏移时间,单位是秒。
注意:如果客户端使用的是视窗操作系统,不要选择"host-name"选项,即不要为其指定主机名称。

#kickstart是什么
         许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可以创建一个文件,这个文件包含了在典型的安装过程中所遇 到的问题的答案.
         Kickstart文件可以存放于单一的服务器上,在安装过程中被独立的机器所读取.这个安装方法可以支持使用单一kickstart文件在多台机器上安装红帽企业Linux,这对于网络和系统管理员来说是个理想的选择.
         Kickstart给用户提供了一种自动化安装红帽企业Linux的方法.

如何执行kickstart安装
         kickstart 安装可以使用本地光盘,本地硬盘驱动器,或通过 NFS,FTP,HTTP 来执行.
         要使用 kickstart,必须:
                 1.创建一个kickstart文件.
                 2.创建有kickstart文件的引导介质或者使这个文件在网络上可用.
                 3.筹备安装树.
                 4.开始kickstart安装.

创建kickstart文件
         kickstart文件是一个简单的文本文件,它包含了一个项目列表,每个项目由一个关键字来识别.可以用「Kickstart 配置」应用程序创建它或是自己从头编写.红帽企业Linux安装程序也根据在安装过程中的选择创建一个简单的kickstart文件,这个文件被写入到 /root/anaconda-ks.cfg.可以用任何能够把文件保存为ASCII文本的文本编辑器或字处理器来编辑它.
         首先,在创建kickstart文件时留意下列问题:
                 1.每节必须按顺序指定.除非特别申明,每节内的项目则不必按序排列.小节的顺序为:
                         命令部分,这里应该包括必需的选项.
                         %packages部分,这部分选择需要安装的软件包.
                         %pre和%post部分,这两个部分可以按任何顺序排列而且不是必需的.
                 2.不必需的项目可以被省略.
                 3.如果忽略任何必需的项目,安装程序会提示用户输入相关的项目的选择,就象用户在典型的安装过程中所遇到的一样.一旦用户进行了选择,安装会以非交互的方式(unattended)继续(除非找到另外一个没有指定的项目).
                 4.以井号("#")开头的行被当作注释行并被忽略.
         对于 kickstart 升级,下列项目是必需的:
                 1.语言
                 2.安装方法
                 3.设备规格(如果这个设备是在安装过程中所需要的)
                 4.键盘设置
                 5.upgrade 关键字
                 6.引导装载程序配置
                 7.如果任何其他的项目被指定为upgrade,这些项目将被忽略(注意这包括了软件包选择).

论坛徽章:
0
2 [报告]
发表于 2011-12-22 18:54 |只看该作者
学习鸟  谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP