PXE自動化安裝系統服務

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自動安裝系統所需組件

1、DHCP服務

DHCP動態主機配置協議會在預引導加載操作系統的時候動態自動分配一個IP地址,同時完成網絡加載的主機的設定;需要在其地址池subnet配置中配置一下參數:
filename "";:基于網卡引導時要加載的initial  boot file的文件名;
next-server HOST;:要是一個tftp-servr,簡單文件傳輸協議

2、tftp-server服務

TFTP:trivialfile transfer protocol,簡單文件傳輸協議服務器?;赨DP文件傳輸,一般該服務器僅用于PXE預引導加載環境。用于提供預引導加載文件pxelinux.0的讀取。相關程序包:Server:tftp-server;Client: tftp,監聽端口 69/udp,
安裝tftp程序
    ]# yum install tftp-server tftp
默認的提供文件服務的根目錄:
    /var/lib/tftpboot/
服務啟動運行方式:
    CentOS6:
        # chkconfig tftp on
        # service xinetd restart
    CentOS7:
        # systemctl start tftp.socket

3、syslinux包

提供適用于不同的操作系統的各種bootloader文件,支持DOSFATfilesystems、Linux ext2/ext3 ,filesystems(EXTLINUX)、 PXEnetwork boots(PXELINUX)、ISO 9660 CD-ROMs (ISOLINUX);基于網卡引導的bootloader由其提供文件Wie/usr/share/syslinux/pxelinux.0

4、file server(yum repository)yum倉庫

基于網絡引導加載文件的時候會根據腳本,引導到指定的路徑加載yum倉庫進行安裝程序或者鏡像文件,存儲此yum倉庫的位置稱為file server。該file server可以通過http對外通過程序包或者鏡像,實現引導之后的安裝操作。 file server可以creatrepo命令手動創建;可以直接復制或者掛載光盤的完整鏡像作為通過程序包的文件存儲源服務

基于PXE自動安裝系統服務配置(CentOS 7)

環境為CentOS 7系統,自動化安裝的系統鏡像為CentOS 7
1、安裝相關程序包
]# yum install httpd -y 安裝httpd服務 為了提供安裝程序包路徑
]# yum install tftp-server -y 安裝tftp服務
]# yum install syslinux -y 安裝提供pexlinux.0文件的程序包
]# yum install  dhcp -y 安裝dhcp服務
2、準備file server(yumrepository):yum倉庫
]# mount /dev/cdrom /media 掛載Centos7 光盤鏡像   
]# mkdir /var/www/html/centos7  創建安裝程序文件放置位置

]# cp anaconda-ks.cfg /var/www/html/ 將配置好的kickstart文件復制到安裝程序文件目錄,這里我直接使用了當前系統的文件
]# chmod 666 /var/www/html/anaconda-ks.cfg 給文件加權限
]# vim /var/www/html/anaconda-ks.cfg 編輯kickstart文件
    url --url="http://192.168.25.128/ anaconda-ks.cfg
]# mount -o --bind/media/cdrom /var/www/html/centos7 通過目錄綁定的方式掛載光盤鏡像


 注意:也可以使用
3、提供預引導加載等相關文件
]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 復制pxelinux.0文件到tftp服務的文件目錄
]# cp /media/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ 復制內核啟動文件到tftp文件目錄
]# cp /usr/share/syslinux/{chain.c32,memdisk,menu.c32,mboot.c32} /var/lib/tftpboot/ 復制與pxe啟動和加載相關的文件
4、配置tftp文件
tftpboot]# mkdir pxelinux.cfg 在/var/lib/tftpboot目錄下創建pxelinux.cfg目錄為
]# vim /var/lib/tftpboot/pxelinux.cfg/default 創建為menu.c32提供菜單的配置文件,即菜單加載時用到的配置文件信息
    default menu.c32
        prompt 5 菜單顯示時間
        timeout 30 退出時間
        MENU TITLE CentOS 7 PXE Menu 標題

        LABEL linux 標簽
        MENU LABEL Install CentOS 7 x86_64 菜單名
        KERNEL vmlinuz 指明要加載的內核文件
        APPEND initrd=initrd.img inst.repo=http://192.168.25.128/centos7 ks=http://192.168.25.128/anaconda-ks.cfg 
            指明initrd文件位置,和安裝程序所在的yum倉庫和kickstart文件路徑

5、配置dhcp文件

]# cd /etc/dhcp/
]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf 復制配置文件
]# vim dhcpd.conf 編輯dhcp配置文件,如下,
    subnet 192.168.25.0 netmask 255.255.255.0 {
        range 192.168.25.100 192.168.25.105;
        filename "pxelinux.0";
        next-server 192.168.25.128; 此處指向tftp服務地址,這里是本機
    }
:.,$d vim命令行刪除subnet配置段以后所有無用配置
6、啟動服務
]# systemctl start httpd
]# systemctl start dhcpd.service
]# systemctl start tftp.socket
7、客戶端開機自動安裝

CentOS 6和CentOS 7的配置有部分不同;

cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp/media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}/var/lib/tftpboot/
mkdir/var/lib/tftpboot/pxelinux.cfg/
cp/media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
內容如下所示:
            display boot.msg

            menu background splash.jpg
            menu title Welcome to CentOS 6.7 MageEdu!
            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 autoinst
            menu label ^Auto Install CentOS
            menu default
            kernel vmlinuz
            append initrd=initrd.img ks=ftp://192.168.10.16/pub/centos6.cfg
            label linux
            menu label ^Install or upgrade an existing system
            kernel vmlinuz
            append initrd=initrd.img
            label vesa
            menu label Install system with ^basic video driver
            kernel vmlinuz
            append initrd=initrd.img 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 -

原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/58175

(0)
M20-1馬星M20-1馬星
上一篇 2016-11-07 10:55
下一篇 2016-11-07 11:44

相關推薦

  • linux命令查找locate find要點

           在文件系統上查找符合的文件        locate, find locate:          依賴于事先構建好的索引庫:             &…

    Linux干貨 2016-11-07
  • 第五周作業

    博客具體內容請移步博客園http://www.cnblogs.com/wangenzhi/p/6235456.html

    Linux干貨 2016-12-30
  • 玩轉Nginx之一:基礎概念

    Nginx web服務器:http協議 http協議:html,MIME(多用途互聯網郵件拓展) major/minor text/html,text/plain,image/jpeg web資源:URL(scheme://server:port/path/to/source) 方法:GET,HEAD(相應首部)讀取資源 POST提交表單 PUT上傳數據 D…

    Linux干貨 2016-10-29
  • 推薦-Centos常用的進程管理和資源查看工具

    一、pstree     pstree命令以樹狀圖的方式展現進程之間的派生關系 -a:顯示每個程序的完整指令,包含路徑,參數或是常駐服務的標示;  -c:不使用精簡標示法;  -G:使用VT100終端機的列繪圖字符;  -h:列出樹狀圖時,特別標明現在執行的程序;  -H<…

    Linux干貨 2016-04-05
  • vim

    VIM常用操作命令 模式轉換 1、ESC鍵:編輯模式?。尽∫话隳J?;2、從一般模式?。尽【庉嬆J?i:在光標所在處的前方轉換為編輯模式 a:在光標所在處的后方轉換為編輯模式 o:在光標所在行的下方新建一個空行并轉換為編輯模式 I:在光標所在行的行首輸入 A:在光標所在行的行尾輸入 O:在光標所在行的上方新建一個空白行 3、一般模式?。尽∧┬心J剑骸?/p>

    Linux干貨 2017-04-06
  • ?N25第三周作業

    第三周 一、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@zf ~]# who | cut -d " " -f1  | sort | uniq -…

    Linux干貨 2016-12-14
欧美性久久久久