pxe:預啟動執行環境,是由intel公司開發,工作于C/S網絡模式,用于網絡引導作業系統.
http:超文本傳輸協定,這裡的角色僅提供安裝系統所需的軟體包
kickstart: 是什麼
許多系統管理者甯願使用自動化的安裝方法來安裝紅帽企業 Linux.為了滿足這種需要,紅帽建立了kickstart安裝方法.使用kickstart,系統管理者可以建立一個檔案,這個檔案包含了在典型的安裝過程中所遇到的問題的答案.
Kickstart檔案可以存放于單一的伺服器上,在安裝過程中被獨立的機器所讀取.這個安裝方法可以支援使用單一kickstart檔案在多台機器上安裝紅帽企業Linux,這對于網絡和系統管理者來說是個理想的選擇.
Kickstart給使用者提供了一種自動化安裝紅帽企業Linux的方法.
1、用戶端開機啟動時,會根據用戶端主機主機闆上的BIOS設定的啟動順序啟動.如果沒有找到bootload,就會根據啟動順序與其對應的啟動媒體啟動.
2、如果是DHCP網絡啟動的話,用戶端首先會向其伺服器請求IP位址以及mask
3、伺服器響應用戶端并配置設定IP及其Mask
4、當用戶端擷取其IP及Mask之後還會向伺服器發送請求擷取啟動安裝的bootload,及其系統安裝時需要檔案
5、Tftp Server 會響應用戶端,提供啟動安裝時所需的檔案
6、用戶端将伺服器提供的啟動軟體包下載下傳至本地,并在記憶體中執行安裝
簡單介紹:其實能夠提供這bootload,及其安裝系統所需檔案的伺服器除了tftp之外,還有ftp,http
tftp: Trivial file transfer server , 簡單檔案傳輸協定,由于開發初期就是為了提供高效傳輸小檔案,是以是基于udp協定開發的,并監聽在udp:69,等待用戶端的請求;不過用戶端對Tftp的需求并不是特别高,是以每次系統啟動時都需要開啟的話,其實挺浪費資源的.是以tftp實在後端工作的,睡眠狀态.
在linux系統中有這樣的一種程序:叫做超級守護程序:xinetd:就是為了那些極少接收使用者請求的服務,專門提供監聽功能負責代替Tftp伺服器監聽udp:69号端口,事實上當使用者請求到來之後xinetd,負責喚醒Tftp響應用戶端請求
瞬時(非獨立)守護程序:它們無須定義在運作級别下,隻需要一次性地定義xinetd的運作級别 瞬時守護程序基于xinetd的配置檔案:/etc/xinetd.d/Service_name
什麼是:pxe預啟動執行環境,是由intel公司開發,工作于C/S網絡模式,用于網絡引導作業系統
1、配置DHCP伺服器
# yum -y install dhcp
# vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
#表示dhcp伺服器和dns伺服器的動态資訊更新模式。這行必須要有dhcp伺服器才能啟動以來。
subnet 172.16.0.0 netmask 255.255.0.0 {
#subnet 定義網段DHCP工作的網段
option routers 172.16.0.1; # 預設網關
option subnet-mask 255.255.255.0; # 子網路遮罩掩碼
option domain-name "Mozilla.com"; # 用戶端所在域的名稱
option domain-name-servers 220.2.2.2,220.2.2.1; # 首選DNS,以及備用DNS伺服器的IP位址
option time-offset -180000;
range dynamic-bootp 172.16.251.100 172.16.251.254; # 能夠相容bootp;以及IP位址池,能夠配置設定IP的位址範圍
default-lease-time 21600; #預設租約時間
max-lease-time 43200; #最大租約時間
next-server 172.16.251.67; #tftp Sserver 的ip位址
filename "pxelinux.0";
}
2、啟動服務
# service dhcpd start
# tail -f /var/log/boot.log
注釋:# tail -f /var/log/boot.log,能夠檢視用戶端請求dhcp伺服器擷取IP的過程
3、配置tftp-server
# yum -y install xinetd tftp-server tftp
# chkconfig xinetd on
# chkconfig tftp on
# service xinetd start
# ss -unl | grep ":69"
3、準備安裝樹,将挂載在media/cdrom 通過mount指令綁定到web服務DocumentRoot
# mkdir /var/www/html/centos6
# mount --bind /media/cdrom /var/www/html/centos6
# service httpd start
4、準備tftpboot下的檔案,tftp預設檔案存放的根目錄/var/lib/tftpboot/
# yum -y install syslinux
# cp /media/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
# cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg} /var/lib/tftpboot/
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
5、提供kickstart檔案 kickstart檔案是一個簡單的文本檔案,它包含了一個項目清單,每個項目由一個關鍵字來識别.可以用「Kickstart 配置」應用程式建立它或是自己從頭編寫.紅帽企業Linux安裝程式也根據在安裝過程中的選擇建立一個簡單的kickstart檔案,這個檔案被寫入到/root/anaconda-ks.cfg.可以用任何能夠把檔案儲存為ASCII文本的文本編輯器或字處理器來編輯它. 編輯好kickstart檔案後儲存至/var/www/html目錄下;這裡假設為ks.cfg
# Kickstart file automatically generated by anaconda.
#version=DEVEL
#版本名稱
install
url --url=http://172.16.251.67/Centos6.5 #安裝樹的url路徑,因為我們這裡是基于http是以,如果是ftp:ftp://path
lang en_US.UTF-8 #預設語言以及字元集
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6 #定義網絡類型,noboot yes:自動啟動,裝置名稱,擷取位址的方式,不啟動ipv6
rootpw --iscrypted $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0 #root的密碼這裡使用iscrypted 加密存放
#Reboot after installation
reboot #安裝之後立即重新啟動
firewall --disabled #預設iptables防火牆
authconfig --useshadow --passalgo=sha512 #預設使用者密碼加密方式使用的是sha512
selinux --disabled #安裝時不啟動selinux
timezone Asia/Shanghai #安裝的時區上海
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet" #定義bootload安裝在本地mbr中 并建立建立裝置sda
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all #将系統中的所有分區清空格式化
zerombr #将mbr格式化
text #安裝方式text文本安裝
#part /boot --fstype=ext4 --size=200 #定義boot分區檔案系統類型以及的大小
#part pv.008002 --size=61440
volgroup vg0 --pesize=8192 pv.008002
logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
logvol swap --name=swap --vgname=vg0 --size=2048
logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240
logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480
#建立lvs邏輯卷
repo --name="CentOS" --baseurl=http://172.16.251.67/Centos6.5
%packages
@Base
@Core
@base
@basic-desktop
@chinese-support
@client-mgmt-tools
@core
@desktop-platform
@fonts
@general-desktop
@graphical-admin-tools
@legacy-x
@network-file-system-client
@perl-runtime
@remote-desktop-clients
@x11
ibus-table-cangjie
ibus-table-erbi
ibus-table-wubi
lftp
#需要安裝的包組
# 1.每節必須按順序指定.除非特别申明,每節内的項目則不必按序排列.小節的順序為:
#指令部分,這裡應該包括必需的選項.
#%packages部分,這部分選擇需要安裝的軟體包.
#%pre和%post部分,這兩個部分可以按任何順序排列而且不是必需的.
#2.不必需的項目可以被省略.
#3.如果忽略任何必需的項目,安裝程式會提示使用者輸入相關的項目的選擇,就象使用者在典型的安裝過程中所遇到的一樣.一旦使用者進行了選擇,安裝會以非互動的方式(unattended)繼續(除非找到另外一個沒有指定的項目).
#4.以井号("#")開頭的行被當作注釋行并被忽略.
對于 kickstart 更新,下列項目是必需的:
#1.語言
#2.安裝方法
#3.裝置規格(如果這個裝置是在安裝過程中所需要的)
#4.鍵盤設定
#5.upgrade 關鍵字
#6.引導裝載程式配置
#7.如果任何其他的項目被指定為upgrade,這些項目将被忽略(注意這包括了軟體包選擇).
#kickstart預安裝腳本
#可以在 ks.cfg檔案被解析後馬上加入要運作的指令.這個部分必須處于kickstart檔案的最後(在指令部分之後)而且必須用%pre指令開頭.可以在%pre部分通路網絡;然而,此時命名服務還未被配置,是以隻能使用IP位址.
#注:預安裝腳本不在改換了的根環境(chroot)中運作.
-#-interpreter /usr/bin/python,允許指定不同的腳本語言,如Python.把/usr/bin/python替換成想使用的腳本語言.
#kickstart安裝後腳本
#也可以加入在系統安裝完畢後運作的指令.這部分内容必須在kickstart的最後而且用%post指令開頭.它被用于實作某些功能,如安裝其他的軟體和配置其他的命名伺服器.
#注:如果用靜态IP資訊和命名伺服器配置網絡,可以在%post部分通路和解析IP位址.如果使用DHCP配置網絡,當安裝程式執行到%post部分時,/etc/resolv.conf檔案還沒有準備好.此時,可以通路網絡,但是不能解析IP位址.是以,如果使用DHCP,必須在%post部分指定IP位址.
#注:post-install 腳本是在 chroot 環境裡運作的.是以,某些任務如從安裝媒體複制腳本或RPM将無法執行.
#--nochroot,允許指定想在chroot環境之外運作的指令.
#下例把/etc/resolv.conf檔案複制到剛安裝的檔案系統裡.
#%post --nochroot cp /etc/resolv.conf /mnt/sysp_w_picpath/etc/resolv.conf
#--interpreter /usr/bin/python
#允許指定不同的腳本語言,如Python.把/usr/bin/python替換成想使用的腳本語言.
6、配置引導程式能自動加載此kickstart檔案 編輯/var/lib/tftpboot/pxelinux.cfg/default 在label為linux項的append一行後附加: ks=
http:
//172
.16.251.67/ks.cfg