無人值守安裝Linux系統

本篇博文主要介紹PXE+Kickstart+TFTP+DHCP實現無人值守安裝Linux操做系統
linux

1、簡介vim

2、安裝部署PXE+Kickstart系統centos

3、測試自動化安裝系統bash


對安裝操做系統來講,想必都不陌生吧!若是對單臺主機或幾臺主機安裝Linux操做系統,使用U盤或光驅很容易就能搞定;但若是是幾十臺或上百臺主機呢?顯然是不能使用這種比較笨的辦法的,費神又費力並且效率又低;那麼本篇博文就是解脫使用U盤或光驅來安裝操做系統的,高效而又徹底自動化,很是給力...
服務器

PXE簡介
網絡

PXE(preboot execute environment,預啓動執行環境)是由Intel公司開發的最新技術,工做於Client/Server的網絡模式,支持工做站經過網絡從遠端服務器下載映像,並由此支持經過網絡啓動操做系統,在啓動過程當中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成客戶端的基本軟件設置,從而引導預先安裝在服務器中的終端操做系統,PXE能夠引導多種操做系統app

PXE原理
運維

一、客戶端經過DHCP服務器來獲取IP地址,而且DHCP服務器會告訴客戶端TFTP服務器的地址
dom

二、PXE客戶端會從TFTP服務器上下載"pxelinux.0"與"default"文件;而後運行"pxelinux.0"並加載"default"文件;"default"文件加載後會彈出一個系統安裝選擇框,讓用戶選擇相應的操做系統並安裝tcp

三、啓動一個臨時系統(vmlinuz、initrd.img);配置安裝前的一個臨時環境,這裏會讀取"kickstart"文件,根據"keckstart"配置文件自動完成操做系統的安裝

所需軟件

dhcp                     #動態分配IP地址及指定TFTP服務器地址
tftp、tftp-server        #提供系統安裝時,引導所須要的文件等
xinetd                   #管理tftp服務的超級守護進程
vsftpd                   #提供安裝源
syslinux                 #提供了引導所須要的"pxelinux.0"文件
system-config-kickstart  #生成"kickstart"安裝系統所需配置文件的工具

2、安裝部署PXE+Kickstart系統

環境介紹:

系統爲Centos-6.4-x86_64 兩臺主機一臺爲服務器端IP地址爲"172.16.14.1"; 另外一臺主機做爲客戶端;整個系統爲VMware虛擬機實現,網卡爲"VMnet2",若是使用"Host-only"會有問題提示"kickstart"文件錯誤,具體爲何不行,也不是很瞭解,搞了大半天才找到是這個問題

一、這裏都使用rpm包安裝方法,安裝前須要配置好YUM源

[root@localhost ~]# wget http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
[root@localhost ~]# rpm -ivh epel-release-6-8.noarch.rpm

二、安裝相關軟件包

[root@localhost ~]# yum -y install dhcp tftp tftp-server vsftpd syslinux system-config-kickstart

三、配置DHCP服務

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
# dhcpd.conf
# option definitions common to all supported networks...
option domain-name "allen.com";
option domain-name-servers 172.16.14.1;
default-lease-time 43200;
max-lease-time 86400;
log-facility local7;
subnet 172.16.0.0 netmask 255.255.0.0 {
  range 172.16.14.10 172.16.14.100;    #定義動態獲取地址的地址池
  option routers 172.16.14.1; 
}
next-server 172.16.14.1;    #指定TFTP服務器地址
filename="pxelinux.0";      #指定TFTP目錄的相對路徑
######以上都很好理解就再也不詳細介紹了
----------------------------------------------------------------------
[root@localhost ~]# service dhcpd start
[root@localhost ~]# chkconfig dhcpd on
[root@localhost ~]# netstat -anpu|grep dhcp
udp        0      0 0.0.0.0:67      0.0.0.0:*            2046/dhcpd

四、提供安裝源,這裏爲了方便直接掛載了映像文件,在生產環境中是須要拷貝到系統中的

######在Vsftpd訪問目錄到建立安裝源目錄並掛載系統映像
[root@localhost ~]# mkdir /var/ftp/pub/centos-6.4-x86_64
[root@localhost ~]# mount /dev/cdrom /var/ftp/pub/centos-6.4-x86_64
[root@localhost ~]# chkconfig vsftpd on
[root@localhost ~]# service vsftpd start
[root@localhost ~]# netstat -anput| grep vsftpd
tcp        0      0 0.0.0.0:21      0.0.0.0:*      LISTEN   2094/vsftpd

五、設置TFTP爲開機自啓動

[root@localhost ~]# chkconfig tftp on
[root@localhost ~]# service xinetd start
[root@localhost ~]# netstat -anput|grep xinetd
udp        0      0 0.0.0.0:69    0.0.0.0:*       2233/xinetd

六、拷貝PXE啓動時所須要的文件到TFTP根目錄(/tftpboot)

[root@localhost ~]# cp /var/ftp/pub/centos-6.4-x86_64/p_w_picpaths/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
[root@localhost ~]# cp /var/ftp/pub/centos-6.4-x86_64/isolinux/{boot.msg,vesamenu.c32,splash.jpg} /var/lib/tftpboot/
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# cp /var/ftp/pub/centos-6.4-x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@localhost ~]# chmod +w /var/lib/tftpboot/pxelinux.cfg/default
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.4 ALLEN!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz    #ks:指定ftp服務器上的"kickstart"文件
  append initrd=initrd.img ks=ftp://172.16.14.1/pub/kickstart/centos-6.4-x86_64.cfg
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesa nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -

七、製做"kickstart"文件並放對對應的目錄中

[root@localhost ~]# system-config-kickstart  #執行此命令會彈出圖形化界面kickstart文件製做工具

200439278.gif

200442770.gif

201149728.gif

201152932.gif

201156344.gif

201159594.gif

201202752.gif

201205968.gif

202254669.gif

202258162.gif

202300165.gif

202303421.gif

202306134.gif

八、打開剛生成的"ks.cfg"文件稍作修改並把此文件放到ftp目錄下

[root@localhost ~]# vim ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="ftp://172.16.14.1/pub/centos-6.4-x86_64"
# Root password
rootpw --iscrypted $1$MuuNwp5f$5JLfVMp6P6J33ep/Gzim/.
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet" --location=mbr --driveorder="sda"
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
part /boot --fstype=ext4 --size=200
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
%post
echo -e 'Mage Education Learning Services\nhttp://www.allen.com\n' >> /etc/issue
sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab
%end
%packages
@client-mgmt-tools
@core
%end
----------------------------------------------------------------------
[root@localhost ~]# mkdir /var/ftp/pub/kickstart
[root@localhost ~]# cp ks.cfg /var/ftp/pub/kickstart/centos-6.4-x86_64.cfg
----------------------------------------------------------------------
######重啓服務
[root@localhost ~]# service xinetd restart
[root@localhost ~]# service dhcpd restart
[root@localhost ~]# service vsftpd restart

到此,PXE+Kickstart配置及安裝過程已所有完成,下面測試PXE自動化安裝系統


3、測試自動化安裝系統

204854943.gif

204857614.gif

204859391.gif


到此PXE自動化安裝已經完成,可是若是想要安裝不一樣的操做系統,使用PXE就很難實現了,實現起來也不方便;有什麼更簡單的方法又能安裝不一樣的操做系統呢?答案是確定有的啦... 那就是另外一個自動化運維工具cobbler;後續會更新cobbler是如何實現自動化安裝系統的...

相關文章
相關標籤/搜索