Kickstart自動化安裝部署Centos系統平臺的搭建

先上拓撲圖吧html

wKiom1RG7uzjrBydAAKwsFVg1UE883.jpg

0、使用虛擬機作實驗的規劃
一、ip地址的規劃,模板練習機器1對應10.0.0.11,依次類推
二、全部的服務器配置好epel源
三、全部的服務器都要作內核優化(基本)
四、每一個實驗都要有詳細的文檔
五、模擬實驗故障,並作記錄
六、所用系統均爲centos6.5for 64bit 內核版本號爲2.6.32-431

1、部署Kickstart自動化安裝系統平臺linux

 

第一部分:基本準備篇ubuntu

實驗環境爲centos6.5for 64bitcentos

經驗:建議安裝kickstart-servermini desktop做爲模板機,這樣方便之後製做anaconda安裝引導文件!bash

此版本爲ftp版本的哦!服務器

 

0kickstart自動化部署服務器安裝:網絡

隨着公司業務不斷增長,常常須要採購新服務器,並要求安裝Linux系統,而且要求Linux版本要一致,方便之後的維護和管理,每次人工安裝linux系統會浪費掉更多時間,若是咱們有辦法能節省一次一次的時間豈不更好呢?架構

大中型互聯網公司一次採購服務器上百臺,若是採用人工手動一臺一臺的安裝,一我的得搞壞N張光盤,得多少個加班加點才能完成這項」艱鉅」的任務呢,咱們能夠看到全人工來完成這樣的工做太浪費人力了,有沒有自動化安裝平臺呢,經過一臺已存在的系統而後克隆或者複製到新的服務器呢。Kickstart能夠絕不費力的完成這項工做。app

PXE(prebootexecute environment,預啓動執行環境)是由Intel公司開發的最新技術,工做於Client/Server的網絡模式,支持工做站經過網絡從遠端服務器下載映像,並由此支持經過網絡啓動操做系統,在啓動過程當中,終端要求服務器分配IP地址,再用TFTPtrivialfile transfer protocol)協議下載一個啓動軟件包到本機內存中執行。less

要使用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

六、最簡單PXE環境準備

一、   經過網絡找到tftp服務器以後,還須要去找pxelinux.0這個文件(tftp引導程序)
二、   還須要讀取isolinux裏面的全部文件(經過光盤安裝的時候就是讀取這個裏面的全部的文件)
三、   顯示文件(boot.msg)
四、   重點vmlinuz內核文件
五、   重點initrd.img(初始化閃存文件),裏面有驅動程序之類的
六、   isolinux.cfg配置文件
七、   pxelinux.cfg目錄文件
八、拷貝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文件來安裝
一、   安裝圖形工具,並生成ks文件
二、   yum –yinstall system-config-kickstart
三、   system-config-kickstart
四、配置好kickstart文件以後,上傳到ftp服務器的根目錄下
五、修改default配置文件(告知ftp中ks.cfg的具體位置)

wKiom1RG8fqQ2XpIAAOfUY2ZHlg738.jpg

wKioL1RG8kbgVun1AAJnZIwwr5I718.jpg

六、重啓全部服務
/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技術博客

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

相關文章
相關標籤/搜索