1. 程式人生 > >PXE批量自動安裝centos6.7和centos7.2

PXE批量自動安裝centos6.7和centos7.2

一、PXE簡介
PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網路模式,支援工作站通過網路從遠端伺服器下載映像,並由此支援通過網路啟動作業系統,在啟動過程中,終端要求伺服器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟體包到本機記憶體中執行,由這個啟動軟體包完成終端(客戶端)基本軟體設定,從而引導預先安裝在伺服器中的終端作業系統。PXE可以引導多種作業系統,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系統等。
簡單來講,配置好一臺安裝伺服器,就可以利用PXE進行批量安裝系統,可以極大得提高安裝部署效率,本文主要詳細介紹linux系統的批量安裝,這裡僅以CentOS 6舉例。
二、部署思路
     總共四臺機器,一臺機器需要我們手動配置成安裝伺服器,另外三臺機器使用PXE進行批量安裝。需要準備CentOS 6的安裝光碟映象,如果沒有聯網的話,還需要自行搭建本地yum源。首先我們的安裝伺服器需要配置DHCP服務給客戶端分配地址,客戶端獲取地址後,通過TFTP下載配置檔案、初始化映象等,然後根據配置檔案,通過HTTP或者FTP下載安裝映象,進行自動安裝。
三、服務配置
為簡化操作,關閉selinux和防火牆
setenforce 0
service iptables stop
安裝相關服務,如果採用ftp,可以將httpd替換成安裝vsftp,後面配置vsftp就行了
yum install -y dhcp syslinux httpd tftp-server


配置DHCP
vi /etc/dhcp/dhcpd.conf
 

ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.11.0 netmask 255.255.255.0 {      //配置子網
  range 192.168.11.61 192.168.11.65;                  //設定地址池
  option routers 192.168.11.1;                        //設定客戶端預設閘道器
  option subnet-mask 255.255.255.0;                  //設定子網掩碼
  next-server 192.168.11.19;                        //指定tftp伺服器地址
  filename "pxelinux.0";                     //指明PXE檔案位置,這個在申請ip的時候會發送給安裝主機
} 
host wh001 {                             //對指定主機分配指定IP地址,這樣安裝完成後,可以直接通過ssh進行遠端管理
  hardware ethernet 00:0C:29:8E:4D:96;        //MAC地址          
  fixed-address 192.168.11.61;                  //設定IP
}
host wh002 {
  hardware ethernet 00:0C:29:C0:42:11;
  fixed-address 192.168.11.62;
}
host wh003 {
  hardware ethernet 00:0C:29:0F:12:1B;
  fixed-address 192.168.11.63;
}

service dhcpd start

設定HTTP(vsftp)

mkdir /mnt/iso1
mount /dev/sr0 /mnt/iso1      //掛載CentOS 6映象到/mnt/iso1目錄下
cp -rp /mnt/iso1 /var/www/html   //將CentOS 6安裝檔案拷貝到httpd的預設網站目錄下,這樣就可以直接訪問映象安裝檔案了
service httpd restart

如果安裝的是vsftp的話,需要修改新增匿名使用者的家目錄:
vi /etc/vsftpd/vsftpd.conf
新增:
anon_root=/var/www/html/
service vsftpd restart


設定TFTP
vi /etc/xinetd.d/tftp
將下面兩項值改成這樣:
diable = no
server_args = -s /tftpboot
建立tftp服務目錄,拷貝相關啟動檔案。
 

mkdir /tftpboot
cp /usr/share/syslinux/pxelinux.0	/tftpboot/
cp /usr/share/syslinux/chain.c32	/tftpboot/
cp /usr/share/syslinux/mboot.c32	/tftpboot/
cp /usr/share/syslinux/memdisk	    /tftpboot/
cp /usr/share/syslinux/menu.c32	    /tftpboot/
cp /var/www/html/iso1/images/pxeboot/vmlinuz	    /tftpboot/
cp /var/www/html/iso1/images/pxeboot/initrd.img	        /tftpboot/
service xinetd restart

 

配置ks#.cfg檔案
又稱Kickstart檔案,主要用於Linux系統的自動化安裝,這個檔案簡單說就是安裝配置檔案,決定了硬碟如何分割槽、密碼設定、服務、安裝指令碼等等重要資訊。root目錄下就有一個ks.cfg檔案,我們直接對其修改就行。

cd /var/www/html
cp /root/anaconda-ks.cfg ksdir/ks6.cfg
chmod +r ksdir/ks6.cfg    centos 6的kickstart檔案
vim ksdir/ks6.cfg

ks6.cfg具體內容:

#version=DEVEL
install                        //設定是進行安裝操作
text                           //基於字元介面安裝
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6   //配置網絡卡
rootpw  123456                        //設定root密碼,有個加密選項,--iscrpted,但我沒有實驗成功
firewall --service=ssh                      //開啟防火牆,並開啟ssh埠
url --url=http://192.168.11.19/iso1                //設定安裝映象源,如果用的是ftp就是ftp的地址
selinux --disabled                          //關閉selinux服務
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
zerombr                                 //清楚mbr
clearpart --all                          //清除所有分割槽
reboot                               //安裝完成後重啟
part /boot --fstype=ext4 --size=400       //設定boot分割槽大小
part swap  --size=4000                 //設定交換分割槽大小
part / --fstype=ext4 --grow --size=200       //設定/分割槽為剩下所有空間
 
 
%packages --nobase      //設定需要安裝的元件,這裡最小化安裝,僅僅安裝了核心
@core                 
%end
%pre                     //預安裝指令碼
%end
%post                    //後安裝指令碼
%end

設定PXE引導配置檔案
mkdir /tftpboot/pxelinux.cfg
vi     /tftpboot/pxelinux.cfg/default
此檔案定義的就是CentOS安裝時首屏顯示的內容。本例簡單的配置如下:

default menu.c32
prompt 0
timeout 600                  //設定等待時間,單位0.1S
menu title PXE MENU
 
 
label LinuxOnHTTP
  menu label Install CentOS over http automatically    //設定標籤顯示內容
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.70.83/ksdir/ks6.cfg   //設定配置檔案網路位置

四、最終效果

啟動三臺客戶機後,客戶機通過DHCP服務獲取到IP地址,進行PXE選單,等待設定的60秒後,自動進入第一個安裝項,進行自動安裝,安裝完成後自動重啟,重啟完成後,可以直接通過指定的IP遠端客戶機,進行進一步的配置。

置。






參考文件:
https://blog.csdn.net/errinyikeke/article/details/50717221
https://www.linuxidc.com/Linux/2012-12/75869.htm

PXE自動化安裝centos6和centos7

https://blog.csdn.net/sxy2475/article/details/78015262#製作pxe相關檔案

 

https://blog.csdn.net/hanzheng260561728/article/details/52159920