1. 程式人生 > >無人值守自動安裝linux系統

無人值守自動安裝linux系統

pxe 無人值守自動安裝


PXE基本原理概述


什麽是PXE

PXEpre-boot executionenvironment預啟動執行環境

intel公司開發的技術

工作於C/s的網絡模式

Client通過網絡從server下載映像,並通過網絡啟動操作系統

應用場景

liveOS

OS安裝

PXE基本原理

1 ClientPXE Server上的DHCP發送IP地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC 地址),如果合法則返回ClientIP 地址,同時將啟動文件pxelinux.0 的位置信息一並傳送給Client

2 ClientPXE Server上的TFTP發送獲取

pxelinux.0請求消息,TFTP 接收到消息之後再向Client發送pxelinux.0大小信息,試探Client 是否滿意,當TFTP 收到Client 發回的同意大小信息之後,正式向Client 發送pxelinux.0

3 Client 執行接收到的pxelinux.0 文件

4 Client TFTP Server 發送針對本機的配置信息文件(在TFTP 服務的pxelinux.cfg目錄下),TFTP 將配置文件發回Client ,繼而Client 根據配置文件執行後續操作。

5 Client TFTP 發送Linux 內核請求信息,TFTP 接收到消息之後將內核文件發送給Client

6 Client TFTP 發送根文件請求信息,TFTP接收到消息之後返回Linux 根文

件系統

7 Client 啟動Linux 內核

8 Client下載安裝源文件,讀取自動化安裝腳本


技術分享

構建自動化安裝系統的pxe服務



準備工作

關閉防火墻和seLinux

[[email protected] ~]# iptables -F

[[email protected] ~]# setenforce 0

配置DHCP服務器

[[email protected] ~]# yum -y install dhcp

[[email protected] ~]# cat /etc/dhcp/dhcpd.conf

subnet 192.168.10.0 netmask 255.255.255.0{

range 192.168.10.100 192.168.10.200;

next-server 192.168.10.1; #TFTP服務器地址

filename "pxelinux.0"; #Bootstrap文件名稱

}

[[email protected] ~]# systemctl restart dhcpd

創建kiskstart文件

kickstart文件可以三種生成方式:

手動書寫

通過system-config-kickstart圖形工具

anaconda安裝程序自動生成

[roo[email protected] ~]# yum install -y system-config-kickstart

[[email protected] ~]# system-config-kickstart 啟動kickstart圖形工具

啟動後按照自定義生成文件與安裝系統界面相同這裏不再闡述。

註意:centos7.3如果使用光盤鏡像做的yum源會出現下面包無法選擇的情況

技術分享

需要修改yum倉庫名稱為development才可以選擇安裝包。


[[email protected] ~]# cat /etc/yum.repos.d/base.repo

[development] #這個地方修改為development

name=zachary

baseurl=file:///mnt/cdrom

gpgcheck=0


技術分享

根據圖形向導生成一個ks.cfg的文件。

安裝syslinux軟件包

[[email protected] ~]# yum -y install syslinux

配置FTP服務器

此步驟可以使用其他類型服務器,比如nfs或者http

#安裝ftp服務器

[[email protected] ~]# yum -y install vsftpd

#配置安裝系統所需的軟件倉庫

[[email protected] ~]# mkdir -pv /var/ftp/pub/centos/{6,7}

[[email protected] ~]# mount /dev/sr0 /var/ftp/pub/centos/7

[[email protected] ~]# mount /dev/sr1 /var/ftp/pub/centos/6

[[email protected] ~]# mkdir –v /var/ftp/pub/ks

[[email protected] ~]# mv ks6.cfg ks7.cfg /var/ftp/pub/ks/ks.cfg

[[email protected] ks]# chmod +r /var/ftp/pub/ks/* #註意權限

註意:在配置完成ftp中的軟件倉庫後,一定要驗證該倉庫可用(瀏覽器查看一下)

TFTP服務器配置

[[email protected] ~]# yum -y install tftp-server

[[email protected] ~]# cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/

[[email protected] ~]# mkdir –v /var/lib/tftpboot/{pxelinux.cfg,centos7.3,centos6.9}

[[email protected] ~]# cp -v /var/ftp/pub/centos/7/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7.3/

[[email protected] ~]# cp -v /var/ftp/pub/centos/6/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos6.9/

[[email protected] pxelinux.cfg]# cat default

default menu.c32

timeout 300

menu title ########## PXE Boot Menu ##########

label centos6.9

menu label ^Kickstart Inatall CentOS 6.9

menu default

kernel centos6.9/vmlinuz

append ks=ftp://192.168.10.3/pub/ks/ks6.cfg initrd=centos6.9/initrd.img

label centos7.3

menu label ^Kickstart Inatall CentOS 7.3

menu default

kernel centos7.3/vmlinuz

append ks=ftp://192.168.10.3/pub/ks/ks7.cfg initrd=centos7.3/initrd.img

註意:如果使用centos6來搭建pxe 服務器,tftpxinetd服務來管理這種非獨立服務。

設置相關服務啟動

[[email protected] ~]# systemctl enable dhcpd.service

[[email protected] ~]# systemctl start dhcpd.service

[[email protected] ~]# systemctl enable tftp.socket

[[email protected] ~]# systemctl start tftp.socket

[[email protected] ~]# systemctl enable vsftpd.service

[[email protected] ~]# systemctl start vsftpd.service

測試



技術分享

技術分享

技術分享



排錯思路


每個服務器在測試過程中的排錯都是根據其原來和返回的錯誤信息來進行錯誤的排查。PXE也不例外。

1客戶端要使用pxe安裝操作系統,首先要有一塊支持pxea安裝的網卡。

2 網卡獲取ip地址 。網卡要正確獲取ip地址和tftp服務器地址(next-sever)就需要檢查dhcp配置選項。

3 正確獲取ip地址後,tftp服務無法使用的常見情況有下面幾種

dhcp配置文件中next-server地址與地址不符。

防火墻和selinux不允許訪問tftp,這時可以對其做相應配置。簡單方法是直接關閉。

tftp配置出現錯誤,可以通過這個目錄樹結構檢查

[[email protected] tftpboot]# tree

.

├── centos6.9

│?? ├── initrd.img

│?? └── vmlinuz

├── centos7.3

│?? ├── initrd.img

│?? └── vmlinuz

├── menu.c32

├── pxelinux.0

└── pxelinux.cfg

├── default

4 出現菜單文件後,基本上就與tftp沒什麽太大關系了。這時如果出現錯誤就是內核選項的參數問題,或者鏡像倉庫問題。以及ks文件的問題。如果在搭建過程中搭建軟件倉庫的那個步驟做過詳細檢查的話,一般這裏不會出現大的錯誤。

問題一般出現在權限問題,路徑問題

5 特別提醒:在tftp服務器中的內核文件和ramfs一定要與安裝鏡像中的一致。


本文出自 “Keep simple keep stupid” 博客,請務必保留此出處http://yangzhiheng.blog.51cto.com/11586378/1966365

無人值守自動安裝linux系統