KickStart+PXE實現自動化部署安裝

前言

  在日常的生產環境中,需要批量的部署大量相同的操作系統,如果我們去逐檯安裝無疑會花費大量的時間,通過Kictstart+PXE可以快速的部署安裝,可以有效的節省人工和時間。

   
什麼是PXE?

PXE(預啓動執行環境),工作在Client/Server的工作模式,通過網絡接口啓動計算機,不依賴本地存儲設備(如硬盤)或本地已安裝的操作系統;
由Intel和Systemsoft公司於1999年9月20日公佈的技術;

 
PXE工作原理:  
KickStart+PXE實現自動化部署安裝
 
實驗環境

操作系統:centos6.5
server:192.168.42.16
client:dhcp獲取
實驗需求:通過網絡自動化安裝 centos6.5 操作系統

  
準備工作

iptables -F
service iptables save
sed -ri '/^SELINUX/c\SELINUX=disabled' /etc/selinux/config
setenforce 0

  
服務器安裝上安裝需要的服務

yum -y install dhcp tftp-server vsftpd xinetd syslinux

   
dhcp配置

vim /etc/dhcp/dhcpd.conf

[root@centos6 centos6.5]# cat /etc/dhcp/dhcpd.conf 
ddns-update-style   none;
#ignore client-updates;
authoritative;
#option domain-name "example.org";
#option domain-name-servers  8.8.8.8 , 202.96.128.166;
#default-lease-time 600;
#max-lease-time 7200;
log-facility local7;

subnet 192.168.42.0  netmask 255.255.255.0 {
        range 192.168.42.100  192.168.42.200;
        option domain-name-servers  202.96.128.166;
        option domain-name "class.com";
        option routers 192.168.42.2;
        option broadcast-address 192.168.42.255;
        default-lease-time 300;
        max-lease-time 7200;
        allow bootp;
        allow booting;
        next-server 192.168.42.16;               #tftp服務器地址
         filename "pxelinux.0";                         #啓動引導文件
}

service dhcpd start
chkconfig dhcpd on

  
掛載系統鏡像,通過ftp發佈

mkdir /var/ftp/centos6.5
mount /dev/cdrom /var/ftp/centos6.5/

  
tftp配置

vim /etc/xinetd.d/tftp
disable= no

  
提供引導菜單所需的文件

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
cp -rf /var/ftp/centos6.5/isolinux/* /var/lib/tftpboot/
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
cp isolinux.cfg pxelinux.cfg/default

  
配置引導列表

cd /var/lib/tftpboot/pxelinux.cfg
vim default

default vesamenu.c32     #注意 vesamenu.c32是否存在tftpboot目錄下
timeout 600
display boot.msg       #這個文件用來定義歡迎界面
prompt 1

label 1                                          #引導列表名稱
   menu Install centos 6              #標籤
   kernel  vmlinuz                          #內核文件
   append initrd=initrd.img ks=ftp://192.168.42.16/centos6-ks.cfg                   #initrd定義啓動鏡像文件

 
定義kickstart腳本,實現自動化安裝

vim /var/ftp/centos6-ks.cfg

#定義安裝類型
install
text
reboot
lang en_US.UTF-8
keyboard us
 
url --url="ftp://192.168.42.16/centos6.5"
rootpw --iscrypted     sdkfhiuqdsf14349#$%$%^451f1                * #root用戶密碼,此處需要填寫MD5加密的密碼字串*
firewall --disabled
#firewall --service=ssh
authconfig --useshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/ShangHai
bootloader --location=mbr --append="crashkernel=auto rhgb quiet"
zerombr

#分區
clearpart --all --initlabel
part /boot --fstype=ext4 --size=200
part swap --size=2048
part / --fstype=ext4 --grow --size=1      #這裏大小等於1表示使用剩餘所有內存

#安裝軟件包
%packages
@core
@base
wget
tree
psmisc
%end

#安裝後操作
%post
rm -rf /etc/yum.repos.d/*
wget -q ftp://192.168.42.16/pub/centos6.5.repo -O /etc/yum.repos.d/centos6.5.repo
yum clean all
yum repolist
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
sed -i "s/ONBOOT.*$/ONBOOT=yes/" /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "s/rhgb //" /boot/grub/grub.conf
sed -i "s/HOSTNAME=.*$/HOSTNAME=centos6.5/" /etc/sysconfig/network
%end

啓動服務

service vsftpd restart
service dhcpd restart
service xinetd restart

檢查端口

[root@centos6 /]# ss -ntulp | egrep '21|67|69'
udp    UNCONN     0      0                      *:41869                 *:*      users:(("rpc.statd",1075,8))
udp    UNCONN     0      0                      *:67                    *:*      users:(("dhcpd",1850,7))
udp    UNCONN     0      0                      *:69                    *:*      users:(("xinetd",1785,5))
tcp    LISTEN     0      32                     *:21                    *:*      users:(("vsftpd",1831,3))

 
客戶端測試,整個過程都是自動化安裝,無需人爲干預。
 
KickStart+PXE實現自動化部署安裝
KickStart+PXE實現自動化部署安裝
KickStart+PXE實現自動化部署安裝
完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章