首页 > 代码库 > Kickstart自动化安装部署Centos系统平台的搭建

Kickstart自动化安装部署Centos系统平台的搭建

先上拓扑图吧

wKiom1RG7uzjrBydAAKwsFVg1UE883.jpg

0、使用虚拟机做实验的规划
1、ip地址的规划,模板练习机器1对应10.0.0.11,依次类推
2、所有的服务器配置好epel源
3、所有的服务器都要做内核优化(基本)
4、每个实验都要有详细的文档
5、模拟实验故障,并做记录
6、所用系统均为centos6.5for 64bit 内核版本号为2.6.32-431

一、部署Kickstart自动化安装系统平台

 

第一部分:基本准备篇

实验环境为centos6.5for 64bit

经验:建议安装kickstart-servermini desktop作为模板机,这样方便以后制作anaconda安装引导文件!

此版本为ftp版本的哦!

 

0kickstart自动化部署服务器安装:

随着公司业务不断增加,经常需要采购新服务器,并要求安装Linux系统,并且要求Linux版本要一致,方便以后的维护和管理,每次人工安装linux系统会浪费掉更多时间,如果我们有办法能节省一次一次的时间岂不更好呢?

大中型互联网公司一次采购服务器上百台,如果采用人工手动一台一台的安装,一个人得搞坏N张光盘,得多少个加班加点才能完成这项”艰巨”的任务呢,我们可以看到全人工来完成这样的工作太浪费人力了,有没有自动化安装平台呢,通过一台已存在的系统然后克隆或者复制到新的服务器呢。Kickstart可以毫不费力的完成这项工作。

PXE(prebootexecute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTPtrivialfile transfer protocol)协议下载一个启动软件包到本机内存中执行。

要使用kickstart安装平台,包括的完整架构为:Kickstart+DHCP+ftp+TFTP+PXE,从架构可以看出,大致需要安装的服务,例如dhcptftpnfskickstart/pxe等。

 

PXE环境的配置预热
关闭防火墙和selinux
/etc/init.d/iptablesstop
chkconfigiptables off
setenforce0
sed-i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/sysconfig/selinux

1、首先要部署好DHCP服务器

第1步安装DHCP服务器软件
yum -y install dhcp
安装之后查看安装后生成了哪些文件
rpm -ql dhcp |less
小提示:配置之前要看下本机的ip地址,因为配置DHCP服务器的地址池是需要和本机的在同一网络地址段的哦
[root@mobai~]# ip a |grep gl
    inet 10.0.0.18/24 brd 10.0.0.255 scope globaleth0

 

第2步配置DHCP
DHCP默认配置文件为空,这里拷贝模板配置文件
/bin/cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
>/etc/dhcp/dhcpd.conf
拷贝以下内容
ddns-update-styleinterim;
ignoreclient-updates;
allowbooting;
allowbootp;
subnet10.0.0.0 netmask 255.255.255.0 {
#--- default gateway
optionrouters          10.0.0.254;
optionsubnet-mask      255.255.255.0;
optiontime-offset  -18000;
range  dynamic-bootp 10.0.0.3 10.0.0.200;
next-server10.0.0.18;
filename"pxelinux.0";
hostns {
hardwareethernet  00:0C:29:C8:12:84;
fixed-address10.0.0.12;}
}

: 00:0C:29:C8:12:84为指定DHCP客户端的MAC地址

1、必须要存在的一个指令是subne,至少需要一个,后面跟网段以及子网掩码,然后以大括号扩起来,里面包含针对这个subnet的指令

2subnet {}里面所定义的网段,一定是要和本机所在的网段是一致的,Linux可以使用ifconfig来查看本机的ip地址信息

3subnet之外的设置都是针对全局的配置文件生效的subnet之外的设置都是针对全局的配置文件生效的

4range指定地址段的范围

5host指令,主要是根据客户端的MAC地址,进而绑定分配特定的ip

 

 

4步检测语法,启动DHCP服务,并加入开机自启动

/etc/init.d/dhcpd configtest
/etc/init.d/dhcpd restart  && chkconfig dhcpd on

 

5  测试DHCP客户端获取ip地址(可省略)

另外开启一台虚拟机,看能否获取到ip地址为10.0.0.12

[root@moban~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0


或者更为简单的就是直接使用kickstart的客户端即可

wKioL1RG77yiXvBfAAKyIhfkAMs740.jpg

小结: dhcp搞定
第一安装yum -yinstall dhcp
第二配置dhcp中最重要的两个参数
next-server代表tftp服务器
filename
第三就是为了让kickstart客户端获取ip地址

2、部署tftp服务器

 

第一步:安装
yum -y install tftp-server syslinux
第二步复制配置文件并修改
cd /var/lib/tftpboot  &&cp /usr/share/syslinux/pxelinux.0 .
第四步修改tftp可用
sed -i ‘s/= yes/= no/g‘ /etc/xinetd.d/tftp
grep disable /etc/xinetd.d/tftp
第五步:启动,并设置开机自启动
/etc/init.d/xinetd start
chkconfig xinetd on && chkconfig tftp on
server_atgs = -s /var/lib/tftpboot //客户端到此目录下去获取或者上传数据
/etc/init.d/dhcpd restart && /etc/init.d/xinetd  restart

 

wKiom1RG77DTqUe1AADSeLsViyI283.jpg

3、配置tftp+pxe

 

安装和配置tftp服务(准备简单的PXE环境)

要实现远程安装系统,首先要在tftpboot目录指定相关PXE内核模块及相关参数配置步骤如下

cd /var/lib/tftpboot/ && mount /dev/cdrom  /mnt/
cp -rvp /mnt/isolinux/* /var/lib/tftpboot/

wKioL1RG8GuhlSedAALfLNzLzDg443.jpg

cd /var/lib/tftpboot/ && mkdir pxelinux.cfg
cp /var/lib/tftpboot/isolinux.cfg/var/lib/tftpboot/pxelinux.cfg/default   
/etc/init.d/dhcpd restart && /etc/init.d/xinetd restart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

注释说明:

wKiom1RG8FrA32LPAANy4J9W_cs845.jpg

3)客户端连接tftp-server去上传数据或者下载数据,都会从这个目录去获取
因此需要到这个目录下去放置一些数据
1)pexlinux.0文件(当客户端启动的时候就会启动此文件)
硬盘启动一般去加载的启动程序是grub;PXE网络启动的话,首先要加载的就是
pexlinux.0这个程序
2)此文件是有syslinux安装包提供的rpm -qsyslinux,若没安装
直接使用yum -y install syslinux安装即可
cd /var/lib/tftpboot/
rpm -q syslinux
find /usr/ -name "pxelinux.0"
/usr/share/syslinux/pxelinux.0
 
3)拷贝pexlinux.0文件到tftp的/var/lib/tftpboot根目录下
cp /usr/share/syslinux/pxelinux.0 .
ll
total 28
-rw-r--r-- 1 root root 26595 Oct 18 00:22 pxelinux.0
 
4)还需要在tftp的根目录下去放置一个叫做pxelinux.cfg目录配置文件
这个配置文件是有要求的,名字叫做是pxelinux.cfg这个目录里面的
cd /var/lib/tftpboot/ && mkdir pxelinux.cfg
cp isolinux.cfg pxelinux.cfg/default
cp: overwrite `pxelinux.cfg/default‘? y
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

wKioL1RG8OjikrTRAAI6ITP9yC0066.jpg

5、配置ftp配置FTP服务(准备安装源)

        挂载ISO镜像可以使用autofs来实现哦!

远程安装系统,客户端需要下载系统所需要的软件包,所以需要使用NFS或者HTTPD把镜像文件共享出来,这里介绍使用ftp的方式来挂载和安装

yum -y install vsftpd autofs
echo "/var/ftp/pub /etc/auto.ftp" >>/etc/auto.master
cat /etc/auto.ftp //添加下面两行内容
centos -fstype=iso9660,ro,loop :/data/CentOS-6.5-x86_64-bin-DVD1.iso
ubuntu -ftype=iso9660,ro,loop :/data/ubuntu-14.04.1-server-amd64.iso
mkdir /data

wKiom1RG8O_Qp9JbAAGqdxgpGYY606.jpg

通过scp上传镜像文件到/data目录下
ll /data/CentOS-6.5-x86_64-bin-DVD1.iso
-rw-r--r-- 1 root root 4467982336 Apr 16  2014 /data/CentOS-6.5-x86_64-bin-DVD1.iso
[root@moban ~]# ll /data/ubuntu-14.04.1-server-amd64.iso
-rw-r--r-- 1 root root 599785472 Oct 18 11:38/data/ubuntu-14.04.1-server-amd64.iso
/etc/init.d/vsftpd restart&& /etc/init.d/autofs restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
Stopping automount:                                        [  OK  ]
Starting automount:                                        [  OK  ]

wKiom1RG8S7BYtPIAAKJLcy9oSc765.jpg

wKioL1RG8XuxoEEDAAFxah_WKCI858.jpg

6、最简单PXE环境准备

1、   通过网络找到tftp服务器之后,还需要去找pxelinux.0这个文件(tftp引导程序)
2、   还需要读取isolinux里面的所有文件(通过光盘安装的时候就是读取这个里面的所有的文件)
3、   显示文件(boot.msg)
4、   重点vmlinuz内核文件
5、   重点initrd.img(初始化闪存文件),里面有驱动程序之类的
6、   isolinux.cfg配置文件
7、   pxelinux.cfg目录文件
8、拷贝isolinux.cfg到  pxelinux.cfg目录文件并改名为default

wKiom1RG8VqBvn21AAPHzesWSdA933.jpg

# cp isolinux.cfg pxelinux.cfg/default
cp: overwrite `pxelinux.cfg/default‘? y

wKioL1RG8cyiR7lrAAHMuA24ITY214.jpg

pxelinux.0+vmlinuz+initrd.img+ISO镜像文件+default
上面介绍的只是能通过网络的形式来进行安装
如果需要使用全自动安装的方式则还需要借助kickstart文件来安装
1、   安装图形工具,并生成ks文件
2、   yum –yinstall system-config-kickstart
3、   system-config-kickstart
4、配置好kickstart文件之后,上传到ftp服务器的根目录下
5、修改default配置文件(告知ftp中ks.cfg的具体位置)

wKiom1RG8fqQ2XpIAAOfUY2ZHlg738.jpg

wKioL1RG8kbgVun1AAJnZIwwr5I718.jpg

6、重启所有服务
/etc/init.d/dhcpd restart && /etc/init.d/xinetd restart
/etc/init.d/vsftpd restart && /etc/init.d/autofs restart

接下来就可以

wKiom1RG8kKTrXySAARtyMduNi8258.jpg

wKioL1RG8tDggGadAAFZeDeB7u8944.jpg

最后的小结

wKiom1RG8siDdMAaAAPS0xbWCSU789.jpg

wKioL1RG8xSzP5erAALAB75hkQk469.jpg

wKiom1RG8sjwO_00AAEx1MFWXrQ793.jpg

附录0:本实验dhcp的配置文件

#cat/etc/dhcp/dhcpd.conf
拷贝以下内容
ddns-update-styleinterim;
ignoreclient-updates;
allowbooting;
allowbootp;
subnet10.0.0.0 netmask 255.255.255.0 {
#--- default gateway
optionrouters          10.0.0.254;
optionsubnet-mask      255.255.255.0;
optiontime-offset  -18000;
range  dynamic-bootp 10.0.0.3 10.0.0.200;
next-server10.0.0.18;
filename"pxelinux.0";
hostns {
hardwareethernet  00:0C:29:C8:12:84;
fixed-address10.0.0.12;}
}

附录1:本实验default的配置文件

[root@mobai~]# cat /var/lib/tftpboot/pxelinux.cfg/default
defaultvesamenu.c32
#prompt1
timeout600
 
displayboot.msg
 
menubackground splash.jpg
menutitle Welcome to CentOS 6.5!
menucolor border 0 #ffffffff #00000000
menucolor sel 7 #ffffffff #ff000000
menucolor title 0 #ffffffff #00000000
menucolor tabmsg 0 #ffffffff #00000000
menucolor unsel 0 #ffffffff #00000000
menucolor hotsel 0 #ff000000 #ffffffff
menucolor hotkey 7 #ffffffff #ff000000
menucolor scrollbar 0 #ffffffff #00000000
 
labellinux
  menu label ^Install or upgrade an existingsystem
  menu default
 kernel vmlinuz ks=ftp://10.0.0.18/ks.cfg
  append initrd=initrd.img
labelvesa
  menu label Install system with ^basic videodriver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesanomodeset
labelrescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
labellocal
  menu label Boot from ^local drive
  localboot 0xffff
labelmemtest86
  menu label ^Memory test
  kernel memtest
  append -


附录2:本实验ks.cfg的配置文件

[root@mobai~]# cat /var/ftp/ks.cfg
#platform=x86,AMD64, or Intel EM64T
#version=DEVEL
#Firewall configuration
firewall--disabled
#对外开放防火墙程序ssh。
#firewall--service=ssh
#Install OS instead of upgrade
#选择安装方式,ISO镜像安装源的具体位置,ISO源可以是url|http|nfs|ftp
install
#Use network installation
url--url="ftp://10.0.0.18/pub/centos"
#Root password 设定root用户的密码
rootpw--iscrypted $1$TNHk/xWh$dYdD65ClkqaAWd2BqmrnB0
#Networkinformaton
network--bootproto=dhcp --device eth0 --onboot=on
#System authorization information
auth  --useshadow --passalgo=sha512
#Use text mode install 文本|图形方式安装
text
firstboot--disable
#System keyboard
keyboardus
#System language
langen_US
#SELinux configuration
selinux--disabled
#Installation logging level
logging--level=info
#Reboot after installation重新安装完系统需要重启,完成初始化
reboot
#System timezone 时区亚洲/上海
timezone  Asia/Shanghai
#System bootloader configuration 引导记录安装在MBR上面
bootloader--location=mbr
#Clear the Master Boot Record
zerombr
#文本模式安装时需要对初始化磁盘。使用--initlabel可初始化磁盘。
#需要注意的是,如果用此ks.cfg安装CentOS6.X系列的系统时,需要自己再点一次初始化磁盘空间。
clearpart--initlabel --all --drives=sda
#Partition clearing information
clearpart--all --initlabel
#Disk partitioning information
#part/boot --fstype="ext4" --size=200
#part/ --fstype="ext4" --size=1
#partswap --fstype="swap" --size=1
#设置分区,此处将剩余空间分配给/目录,具体如何分区请按照个人详细情况划分。
part/boot --fstype=ext4 --size=200
part/ --fstype="ext4" --grow --size=10000
partswap --size=2048
 
%packages--nobase
@core
%end


附录三:DHCP的配置文件

[root@mobai~]# cat /etc/dhcp/dhcpd.conf
ddns-update-styleinterim;
ignoreclient-updates;
allowbooting;
allowbootp;
subnet10.0.0.0 netmask 255.255.255.0 {
#--- default gateway
optionrouters          10.0.0.254;
optionsubnet-mask      255.255.255.0;
optiontime-offset  -18000;
range  dynamic-bootp 10.0.0.3 10.0.0.200;
next-server10.0.0.18;
filename"pxelinux.0";
hostns {
hardwareethernet  00:0C:29:C8:12:84;
fixed-address10.0.0.12;}
}


附录四:vsftpd的配置文件

[root@mobai~]# cat /etc/auto.master
前面无用内容省略
+auto.master
/var/ftp/pub /etc/auto.ftp
[root@mobai~]# cat /etc/auto.ftp
centos-fstype=iso9660,ro,loop :/data/CentOS-6.5-x86_64-bin-DVD1.iso
ubuntu-ftype=iso9660,ro,loop :/data/ubuntu-14.04.1-server-amd64.iso


追风整理于2014/10/196次梳理

参考博文:

Centos 6.5 Kickstart自动化安装系统 - Hello.C - 博客园

http://www.cnblogs.com/Initart/articles/3731182.html

LinuxNFS的安装配置 - IT系统运维 - 追求卓越,成功就会出其不意找上门~~

http://blog.zhanxb.com/post/319/

 

Kickstart+Dhcp+Nfs+Tftp+Pxe 批量Linux服务器安装平台 - 吴光科-专注自动化运维 - 51CTO技术博客

http://wgkgood.blog.51cto.com/1192594/530304

Kickstart:实现RHEL的自动安装_博客专题_51CTO技术博客

http://blog.51cto.com/zt/98

 

本文出自 “追风” 博客,谢绝转载!

Kickstart自动化安装部署Centos系统平台的搭建