搭建pxe环境安装系统
簡介
????安裝系統,聽起來是很簡單的事情,哪怕是完全沒有基礎,在網卡搜索一篇安裝教程,一步一步照著做,也可以把系統安裝好。當然,很多時候簡單的事,一旦數量多了之后,就會發現變得很難處理。只為一臺電腦安裝系統容易,如果是一百臺呢,一千臺呢?如果有一天,老板要求你把公司所有的電腦升級一下系統,難道還要拿著光盤或者U盤一臺一臺去安裝嗎?PXE的安裝環境,就是為了解決這樣的問題出來的。
????PXE(preboot execute environment)是由Intel公司開發的最新技術,工作于Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,并由此支持來自網絡的操作系統的啟動過程,其啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟件包到本機內存中并執行,可以直接就是內核,再由內核去找到網絡共享出來的yum源,加載安裝程序anaconda來安裝程序,如果再配合安裝自動應答文件Kickstart的話,就可以實現全自動安裝了。聽起來是不是很有意思,下面就來細細說明pxe全自動安裝環境的配置。
架構和流程
????
????PXE自動部署操作系統啟動過程如下:
????a) 客戶端計算機啟動,由于BIOS設置了網卡啟動,所以網卡PXE ROM中的程序被調入內存執行。
????b) 客戶端在網絡中尋找DHCP服務器,然后請求一個IP地址;
????c) DHCP服務器為客戶端提供IP地址和其他網絡參數。
????d) DHCP服務器聯系到TFTP服務器為此客戶端發送一個bootstrap(引導程序)。
????e) 客戶端收到bootstrap(引導文件pxelinux.0)后執行,bootstrap會請求TFTP傳送bootstrap的配置文件(pxelinux.cfg/default);收到后讀配置文件,根據該配置文件內容和客戶情況,客戶端請求TFTP傳送內核映像文件(vmlinuz)和根文件系統文件(initrd.img)。
????f) 啟動內核。
????g) 內核根據bootstrap的配置文件,通過網絡獲取操作系統自動安裝腳本,并通過網絡服務(nfs/ftp/web)獲得系統所需安裝文件,按照自動安裝腳本的配置進行安裝。
DHCP服務器的配置
?一、首先要先安裝好dhcp
yum?install?dhcp? 二、然后要設置好dhcp服務的配置文件(/etc/dhcp/dhcpd.conf)
vim?/etc/dhcp/dhcpd.confoption?domain-name?"test.org"; option?domain-name-servers?172.16.139.1; default-lease-time?86400; max-lease-time?100000; log-facility?local7; subnet?172.16.139.0?netmask?255.255.255.0?{range?172.16.139.10?172.16.139.20;option?routers?172.16.139.1;next-server?172.16.139.1;filename?"pxelinux.0"; }????option domain-name :指定搜索域
????option domain-name-servers :指定DNS服務器
????default-lease-time :指定IP地址租期
????max-lease-time :指定最大租期的時間
????log-facility local7 :指定日志等級
????range :地址池范圍
????option routers :指定網關地址
????next-server :指定下一個服務器地址,也就是指定pxe環境下的tftp服務器地址
????filename :指定啟動文件的名字
????想了解更多的dhcp的的選項,可以參考配置的例子/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample這個文件,或者用man dhcp
tftp服務器的配置
????TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議)是TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。端口號為69。
????在linux當中,tftp并不是一個獨立的服務,因為它只是一個訪問量并不太的服務,所以它并沒有自己作為獨立的守護進程,它會交給一個超級進程xinetd來管理,平時tftp服務并不啟動,由xinetd服務來負責監聽,當xinetd服務接受到請求的時候,它會喚醒tftp服務來處理,當tftp服務處理完請求之后,它又會停止服務。
????我們現在配置tftp服務,主要是通過它來共享pxe啟動時所需要的引導程序和內核等等。
????對于tftp服務,只要安裝好tftp-server程序包就可以了。
????將pxe引導啟動所需要的文件復制到/var/lib/tftpboot/下面,然后啟動服務就可以了。
????
?????#?yum?install?syslinux#?cp?/usr/share/syslinux/pxelinux.0??/var/lib/tftpboot/????pxe環境的引導文件#?cp?/media/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img}??/var/lib/tftpboot/??內核文件#?cp?/media/cdrom/isolinux/{splash.jpg,vesamenu.c32,boot.msg}??/var/lib/tftpboot用來顯示安裝選項界面#?mkdir?/var/lib/tftpboot/pxelinux.cfg/#?cp?/media/cdrom/isolinux/isolinux.cfg??/var/lib/tftpboot/pxelinux.cfg/default引導文件的配置文件kickstart文件的編寫
????KickStart是一個自動應答文件。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,并生成一個名為ks.cfg的文件;在其后的安裝過程中(不只局限于生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找KickStart生成的文件,當找到合適的參數時,就采用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。
??????#?yum?install?system-config-kickstart#?system-config-kickstart?????kickstart文件的圖形化配置工具ks文件的樣本
#version=DEVEL install url?--url=http://172.16.0.1/cobbler/ks_mirror/centos-6.5-x86_64/ lang?en_US.UTF-8 keyboard?us network?--onboot?yes?--device?eth0?--bootproto?dhcp?--noipv6 rootpw??--iscrypted?$6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0 #?Reboot?after?installation reboot firewall?--disabled authconfig?--useshadow??--passalgo=sha512 selinux?--disabled timezone?Asia/Shanghai bootloader?--location=mbr?--driveorder=sda?--append="crashkernel=auto?crashkernel=auto?rhgb?rhgb?quiet?quiet"clearpart?--all 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 repo?--name="CentOS"??--baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.5-x86_64/?--cost=100 repo?--name="Fedora?EPEL"??--baseurl=http://172.16.0.1/fedora-epel/6/x86_64/?--cost=1000%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 %end%post echo?-e?'Mage?Education?Learning?Services\nhttp://www.magedu.com\n'?>>?/etc/issue sed?-i?'1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g'?/etc/inittab [?!?-d?/root/.ssh?]?&&?mkdir?/root/.ssh?&&?chmod?og=---?/root/.ssh cat?>>?/root/.ssh/authorized_keys?<<?EOF ssh-rsa?AAAAB3NzaC1yc2EAAAABIwAAAQEAlmq1z0G/7wbGuSUewfXlFnwzqCg/myqTi/AwP8LP+JJ49xzIKMzpeWXHD8RWIf5RlDzo+6N7uPK5O22x/QtMosi0egz4shavEJeUkO0EH+KygXXgBIGuMWmAsL+yzbgWXT9H3zdzXi/qWcrBeBv2nYB5mpYSf7o0xqdhCst1MTfcYLD8qxvkwC8RiqBA/1u9N6jeDFbHO+UzZYYCr9zgk9uz4Rrhb9BU7c1GhjUCgRwBDAuo47IHw/OT6KS9lb8lT2R/ujVoDARy/eOhw8cAFXo+QcvzNSW2qKf/Qo21uR/wz2u9SRV0lvUDNSvC2PYtR+iPlDwHY81md430yiNf9w==?root@server.magelinux.com EOF #?Enable?funcd? sed?-i?'s@certmaster?=.*@certmaster?=?172.16.0.1@g'?/etc/certmaster/minion.conf /sbin/chkconfig?funcd?off #?Set?the?hostname ClientName=`ifconfig?eth0?|?awk?'/inet?addr:/{print?$2}'?|?awk?-F.?'{print?$NF}'` sed?-i?"s@HOSTNAME=.*@HOSTNAME=client$ClientName.magelinux.com@g"?/etc/sysconfig/networks #?set?puppet?agent sed?-i?'/\[main\]/a?server=server.magelinux.com'?/etc/puppet/puppet.conf /sbin/chkconfig?puppet?off #?set?hosts echo?'172.16.0.1??server.magelinux.com?server'?>>?/etc/hosts #?yum?repo %endYum源的共享
系統安裝過程必要要指定yum源,它可以通過光盤、ftp、http等等服務進行共享,這里就以配置http服務來共享yum源,因為httpd的共享配置相當簡單。
????#?yum?install?httpd#?service?httpd?start#?mkdir?-pv?/var/www/html/centos/6/x84_64????在http服務的目錄創建共享目錄#?mount?--bind?/media/cdrom?/var/www/html/centos/6/x84_64?直接將已經掛載的安裝光盤再綁定到httpd服務的共享目錄下,這樣就可以共享yum源了這時pxe環境就可以使用了,趕快找一臺去測試一下吧
轉載于:https://blog.51cto.com/leezc/1533001
總結
以上是生活随笔為你收集整理的搭建pxe环境安装系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA方法重载与构造方法简介
- 下一篇: java信息管理系统总结_java实现科