pxe+kickstart进行批量部署

1.安装配置dhcp服务


 yum -y install dhcp
 vim /etc/hdcp/dhcpd.conf   
#配置文件内容如下:
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.200 192.168.10.240;  #地址范围
  option domain-name-servers ns1.internal.example.org;  #dns地址
  option domain-name "internal.example.org"; #dns根域
  option routers 192.168.10.105; #网关
  option broadcast-address 192.168.10.255; #广播地址
  default-lease-time 600; #默认租期时间
  max-lease-time 7200; #最大租期时间
  next-server 192.168.10.105; #tftp服务器的地址
  filename "pxelinux.0";  #tftp服务器上的文件
}
# 启动dhcp服务
 service dhcpd restart

2.安装配置tftp服务


 #让客户端可以下载预安装文件,内核,启动文件
	 yum -y install tftp-server
	 sed -i 14s/yes/no/  /etc/xinetd.d/tftp
	 service xinetd restart

 #将对应版本iso镜像中的内容复制到/yum中一份
	 cp -ra /media/CentOS_6.6_Final/* /yum/
 
 #安装含有相应文件的rpm包
	 rpm -ivh /yum/Packages/syslinux-4.04-3.el6.x86_64.rpm /yum/Packages/syslinux-nonlinux-4.04-3.el6.noarch.rpm
 
 #复制相关的文件到/var/lib/tftpboot目录下
	 rpm -ql syslinux-nonlinux |grep pxelinux.0
	 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
	 cp /yum/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
	 mkdir /var/lib/tftpboot/pxelinux.cfg
	 cp /yum/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
	 cp /yum/isolinux/vesamenu.c32 /var/lib/tftpboot/
	 cp /yum/isolinux/boot.* /var/lib/tftpboot/
	 cp /yum/isolinux/splash.jpg /var/lib/tftpboot/
	 vim /var/lib/tftpboot/pxelinux.cfg/default 

配置文件内容如下:
		default vesamenu.c32
		#prompt 1
		timeout 600

		display boot.msg

		menu background splash.jpg
		menu title Welcome to CentOS 6.6!
		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
		  kernel vmlinuz
		  append initrd=initrd.img
		label vesa
		  menu label PXE install Centos6.6-final
		  menu default
		  kernel vmlinuz
		  append initrd=initrd.img ks=nfs:192.168.10.105:/pxe/ks/ks.cfg

  #创建目录
	 mkdir -p /pxe/{ks,iso}
	 mount /dev/cdrom /pxe/iso/ 

  #创建ks文件: (创建ks文件时,指定安装包位置为nfs://192.168.10.105:/pxe/iso)
	 yum install system-config-kickstart
	前提:必须做好yum库
	 system-config-kickstart

system-config-kickstart 命令界面
配置安装源的方法和路径以及其他需要的配置,这里就不列出来了。
system-config-kickstart 命令界面


配置nfs


这里配置nfs有两个作用:
	1. /pxe/ks 用来存储ks文件
	2. /pxe/iso 用来提供安装系统用到的包

 vim /etc/exports
 # 文件内容如下
	/pxe/ks *(ro)
	/pxe/iso *(ro)
	
 service rpcbind restart
 service nfs restart
 showmount -e 192.168.10.105
 #将ks.cfg配置文件放到/pxe/ks/目录
 cp ks.cfg /pxe/ks/
 #将对应iso镜像挂载到/pxe/iso目录
 mount /dev/cdrom /pxe/iso

#备注:详细操作可能不一样,明白原理达到目的即可。

KS文件示例


获取ks文件的三种方式
	1. 在已安装的系统上会有记录/root/anaconda-ks.cfg,在其基础上修改
	2. system-config-kickstart命令生成
	3. 完全自己编写
    
示例:
# Kickstart file automatically generated by anaconda.

#version=DEVEL 
install 
nfs --server=192.168.10.105 --dir=/pxe/iso 
lang en_US.UTF-8 
keyboard us 
network --onboot yes --device eth0 --bootproto dhcp --noipv6 
rootpw  --iscrypted $6$9gDk/T5G/iWQgT1X$IjMY3rp0cvds3/XhiraJ57M1dlQjdtZC4XA2jcmFARwwrC7.EXiehVhlwdORLTNg0sIiw7wzm3lhs3yh9AVbl. 
firewall --disable 
authconfig --enableshadow --passalgo=sha512 
selinux --disable 
timezone --utc Asia/Shanghai 
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 --drives=sda,sdb --initlabel 
zerombr yes

part /boot --fstype=ext4 --size=200 --ondrive=sda 
part swap --size=2048 --ondrive=sda 
part / --fstype=ext4 --grow --size=200 --ondrive=sda



%post 
echo "is over" >> /tmp/over.txt 
%end

reboot

%packages 
@additional-devel 
@base 
@chinese-support 
@compat-libraries 
@console-internet 
@core 
@debugging 
@basic-desktop 
@desktop-debugging 
@desktop-platform 
@desktop-platform-devel 
@development 
@directory-client 
@eclipse 
@fonts 
@general-desktop 
@graphical-admin-tools 
@input-methods 
@internet-applications 
@internet-browser 
@java-platform 
@kde-desktop 
@legacy-unix 
@legacy-x 
@network-file-system-client 
@office-suite 
@print-client 
@remote-desktop-clients 
@server-platform 
@server-platform-devel 
@server-policy 
@workstation-policy 
@x11 
libgcrypt-devel 
libXinerama-devel 
openmotif-devel 
libXmu-devel 
xorg-x11-proto-devel 
startup-notification-devel 
libgnomeui-devel 
libbonobo-devel 
junit 
libXau-devel 
libXrandr-devel 
popt-devel 
gnome-python2-desktop 
libdrm-devel 
libxslt-devel 
libglade2-devel 
gnutls-devel 
mtools 
pax 
oddjob 
wodim 
sgpio 
genisoimage 
device-mapper-persistent-data 
systemtap-client 
abrt-gui 
qt-mysql 
desktop-file-utils 
systemtap-sdt-devel 
dejagnu 
ElectricFence 
ant 
libstdc++-docs 
gcc-gnat 
expect 
mod_dav_svn 
perltidy 
cmake 
imake 
babel 
ksc 
kdewebdev 
rpmdevtools 
compat-gcc-34 
systemtap-server 
cvs-inetd 
gcc-java 
compat-gcc-34-g77 
jpackage-utils 
bzr 
mercurial 
chrpath 
gcc-objc 
rpmlint 
gcc-objc++ 
compat-gcc-34-c++ 
python-docs 
nasm 
samba-winbind 
certmonger 
pam_krb5 
krb5-workstation 
tcp_wrappers 
openmotif 
xterm 
xorg-x11-xdm 
libXmu 
libXp 
rdesktop 
%end

流程总结:


  1. 机器启动后通过DHCP协议获取IP地址和tftp-server的地址及pxelinux.0文件
  2. 再通过tftp服务器上的/var/lib/tftpboot/pxelinux.cfg/default 文件确定安装选择,不选为默认menu default项
  3. 通过上一步中配置文件中的 ks=nfs:192.168.10.105:/pxe/ks/ks.cfg 获得ks自动应答文件的配置
  4. ks.cfg中配置了软件包所在的位置,我这里用的是nfs即/pxe/iso目录下的软件包。
  5. 获取相应的软件包安装,安装完毕执行对应的脚本重启。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值