要求:无人执守安装100台web服务器,10台sql服务器,10台DNS 服务器和80台最小化安装
1、安装kickstart相关服务tftp-server、dhcp、tftp、syslinux、nfs-utils、xinetd
yum -y install dhcp tftp-server tftp xinetd syslinux nfs-utils
2、配置dhcpd.conf文件:
rsync -av /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
修改后如下
ddns-update-style interim;
ignore client-updates;
next-server 192.168.0.1;
filename "pxelinux.0";
yum -y install dhcp tftp-server tftp xinetd syslinux nfs-utils
2、配置dhcpd.conf文件:
rsync -av /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
修改后如下
ddns-update-style interim;
ignore client-updates;
next-server 192.168.0.1;
filename "pxelinux.0";
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
# option nis-domain "domain.org";
# option domain-name "domain.org";
# option domain-name-servers 192.168.1.1;
# option domain-name "domain.org";
# option domain-name-servers 192.168.1.1;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.0.2 192.168.0.201;
default-lease-time 21600;
max-lease-time 43200;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
3、配置tftp-server:
修改/etc/xinetd.d/tftp配置文件中的disable=yes为no
4、pxelinux.0文件在安装syslinux后会生成,做如下改动
rpm -ql syslinux | grep pxelinux.0
rsync -av /usr/lib/syslinux/pxelinux.0 /tftpboot/
5、挂载光盘,并生成文件
mount -o loop /root/RedHat5-U3-i386-bin-DVD.iso /mnt
拷贝内核文件vmlinuz以及根文件系统initrd.img到/tftpboot
rsync -av /mnt/p_w_picpaths/pxeboot/ /tftpboot/
mkdir -p /tftpboot/pxelinux.cfg
touch /tftpboot/pxelinux.cfg/default
修改defaule文件如下:
default linux
prompt 0
label linux
kernel vmlinuz
append ks=nfs:10.1.1.250:/netinstall/ks.cfg initrd=initrd.img
也可以复制/mnt/isolinux/isolinux.cfg成default,然后进行修改。
rsync -av /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
6、配置nfs网络安装
mkdir -p /netinstall
安装nfs服务,并将/netinstall发布出去
修改/etc/exports
/mnt *(ro,async)
/netinstall *(ro,async)
依次启动服务
/etc/init.d/portmap start
/etc/init.d/nfslock start
/etc/init.d/nfs start
用showmount -e检查是否发布
7、拷贝ks.cfg文件
root家目录的anaconda-ks.cfg拷贝到/netinstall中重命名 与/tftpboot/pxelinux.cfg/default中设置的路径相同
简单的ks.cfg文件配置如下:
install
text
nfs --server=192.168.0.1 --dir=/mnt
key --skip
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp --onboot=on
rootpw 123456
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=hda --append="rhgb quiet"
zerombr
clearpart --all --drives=hda --initlabel
part / --fstype ext3 --size=1 --grow
part swap --size=1000
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
3、配置tftp-server:
修改/etc/xinetd.d/tftp配置文件中的disable=yes为no
4、pxelinux.0文件在安装syslinux后会生成,做如下改动
rpm -ql syslinux | grep pxelinux.0
rsync -av /usr/lib/syslinux/pxelinux.0 /tftpboot/
5、挂载光盘,并生成文件
mount -o loop /root/RedHat5-U3-i386-bin-DVD.iso /mnt
拷贝内核文件vmlinuz以及根文件系统initrd.img到/tftpboot
rsync -av /mnt/p_w_picpaths/pxeboot/ /tftpboot/
mkdir -p /tftpboot/pxelinux.cfg
touch /tftpboot/pxelinux.cfg/default
修改defaule文件如下:
default linux
prompt 0
label linux
kernel vmlinuz
append ks=nfs:10.1.1.250:/netinstall/ks.cfg initrd=initrd.img
也可以复制/mnt/isolinux/isolinux.cfg成default,然后进行修改。
rsync -av /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
6、配置nfs网络安装
mkdir -p /netinstall
安装nfs服务,并将/netinstall发布出去
修改/etc/exports
/mnt *(ro,async)
/netinstall *(ro,async)
依次启动服务
/etc/init.d/portmap start
/etc/init.d/nfslock start
/etc/init.d/nfs start
用showmount -e检查是否发布
7、拷贝ks.cfg文件
root家目录的anaconda-ks.cfg拷贝到/netinstall中重命名 与/tftpboot/pxelinux.cfg/default中设置的路径相同
简单的ks.cfg文件配置如下:
install
text
nfs --server=192.168.0.1 --dir=/mnt
key --skip
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp --onboot=on
rootpw 123456
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=hda --append="rhgb quiet"
zerombr
clearpart --all --drives=hda --initlabel
part / --fstype ext3 --size=1 --grow
part swap --size=1000
%packages
@base
@core
sysstat
8、相应的无人执守安装会完成,但想要不同配置的服务器安装相应的服务还需做一些配 置
由于多个客户端可以从一个PXE服务器引导,PXE引导映像使用了一个复杂的配置文件 搜索方式来查找针对客户机的配置文件。如果客户机的网卡的MAC地址 为'''88:99:AA:BB:CC:DD''',对应的IP地址为192.168.1.195,那么客户机首先尝试 以MAC地址为文件名匹配的配置文件,如果不存在就以IP地址来查找。根据上述环境 对这台主机要查找的以一个配置文件就是 /tftpboot/pxelinux.cfg/01-88-99-aa- bb-cc-dd。如果该文件不存在,就会根据IP地址来查找配置文件了,这个算法更复杂 些,PXE映像查找会根据IP地址16进制命名的客户机配置文件。例如: 192.168.1.195对应的16进制的形式为C0A801C3。(可以通过syslinux软件包提供的 gethostip命令将10进制的IP转换为16进制)
如果C0A801C3文件不存在,就尝试查找C0A801C文件,如果C0A801C也不存在,那么就 尝试C0A801文件,依次类推,直到查找C文件,如果C也不存在的话,那么最后尝试 default文件。
总体来说,pxelinux 搜索的文件的顺序是:
/tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd
/tftpboot/pxelinux.cfg/ C0A801C3
/tftpboot/pxelinux.cfg/ C0A801C
/tftpboot/pxelinux.cfg/ C0A801
/tftpboot/pxelinux.cfg/ C0A80
/tftpboot/pxelinux.cfg/ C0A8
/tftpboot/pxelinux.cfg/ C0A
/tftpboot/pxelinux.cfg/ C0
/tftpboot/pxelinux.cfg/C
/tftpboot/pxelinux.cfg/default
根据上述原理,可以根据实际的需求来通过脚本建立文件,并使用标准输出重定向对 生成的文件进行修改(要求无人执守安装100台web服务器,10台sql服务器,10台DNS 服务器和80台最小化安装)
脚本内容如下(命名为ip.sh):
#!/bin/sh
for i in `seq 2 101`;do echo `gethostip -x 192.168.0.${i}`;done > webip
for j in `more webip`;do more web > ${j};done
for i in `seq 102 111`;do echo `gethostip -x 192.168.0.${i}`;done > sqlip
for j in `more sqlip`;do more sql > ${j};done
for i in `seq 112 121`;do echo `gethostip -x 192.168.0.${i}`;done > dnsip
for j in `more dnsip`;do more nds > ${j};done
for i in `seq 122 201`;do echo `gethostip -x 192.168.0.${i}`;done > otherip
for j in `more otherip`;do more other > ${j};done
分别生成了16进制的IP地址文件,并修改相应的内容
在netinstall中生成ks.cfg文件nds-ks.cfg sql-ks.cfg web-ks.cfg other-ks.cfg
定制包安装为:(根据需要添加或删除相应的安装包)
@base
@core
@editors
@text-internet
@dns-server
sysstat
9、复制ip.sh到/tftproot/pxelinux.cfg目录,并进入目录,在当前目录执行ip.sh脚本
10、查看生成的文件
11、修改dhcpd.conf中的地址池为192.168.0.2 192.168.0.201
12、启动同网中的服务器(已设置为网络启动)
本人虚拟机中经过测试通过
@base
@core
sysstat
8、相应的无人执守安装会完成,但想要不同配置的服务器安装相应的服务还需做一些配 置
由于多个客户端可以从一个PXE服务器引导,PXE引导映像使用了一个复杂的配置文件 搜索方式来查找针对客户机的配置文件。如果客户机的网卡的MAC地址 为'''88:99:AA:BB:CC:DD''',对应的IP地址为192.168.1.195,那么客户机首先尝试 以MAC地址为文件名匹配的配置文件,如果不存在就以IP地址来查找。根据上述环境 对这台主机要查找的以一个配置文件就是 /tftpboot/pxelinux.cfg/01-88-99-aa- bb-cc-dd。如果该文件不存在,就会根据IP地址来查找配置文件了,这个算法更复杂 些,PXE映像查找会根据IP地址16进制命名的客户机配置文件。例如: 192.168.1.195对应的16进制的形式为C0A801C3。(可以通过syslinux软件包提供的 gethostip命令将10进制的IP转换为16进制)
如果C0A801C3文件不存在,就尝试查找C0A801C文件,如果C0A801C也不存在,那么就 尝试C0A801文件,依次类推,直到查找C文件,如果C也不存在的话,那么最后尝试 default文件。
总体来说,pxelinux 搜索的文件的顺序是:
/tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd
/tftpboot/pxelinux.cfg/ C0A801C3
/tftpboot/pxelinux.cfg/ C0A801C
/tftpboot/pxelinux.cfg/ C0A801
/tftpboot/pxelinux.cfg/ C0A80
/tftpboot/pxelinux.cfg/ C0A8
/tftpboot/pxelinux.cfg/ C0A
/tftpboot/pxelinux.cfg/ C0
/tftpboot/pxelinux.cfg/C
/tftpboot/pxelinux.cfg/default
根据上述原理,可以根据实际的需求来通过脚本建立文件,并使用标准输出重定向对 生成的文件进行修改(要求无人执守安装100台web服务器,10台sql服务器,10台DNS 服务器和80台最小化安装)
脚本内容如下(命名为ip.sh):
#!/bin/sh
for i in `seq 2 101`;do echo `gethostip -x 192.168.0.${i}`;done > webip
for j in `more webip`;do more web > ${j};done
for i in `seq 102 111`;do echo `gethostip -x 192.168.0.${i}`;done > sqlip
for j in `more sqlip`;do more sql > ${j};done
for i in `seq 112 121`;do echo `gethostip -x 192.168.0.${i}`;done > dnsip
for j in `more dnsip`;do more nds > ${j};done
for i in `seq 122 201`;do echo `gethostip -x 192.168.0.${i}`;done > otherip
for j in `more otherip`;do more other > ${j};done
分别生成了16进制的IP地址文件,并修改相应的内容
在netinstall中生成ks.cfg文件nds-ks.cfg sql-ks.cfg web-ks.cfg other-ks.cfg
定制包安装为:(根据需要添加或删除相应的安装包)
@base
@core
@editors
@text-internet
@dns-server
sysstat
9、复制ip.sh到/tftproot/pxelinux.cfg目录,并进入目录,在当前目录执行ip.sh脚本
10、查看生成的文件
11、修改dhcpd.conf中的地址池为192.168.0.2 192.168.0.201
12、启动同网中的服务器(已设置为网络启动)
本人虚拟机中经过测试通过
附有相关的配置文件和脚本文件