歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> pxe無人值守智能安裝linux

pxe無人值守智能安裝linux

日期:2017/3/3 16:36:35   编辑:關於Linux

目前為止安裝操作系統的途徑相當的多,有光盤安裝,U盤安裝(當今比較流行),還有就是我今天要談到的網卡安裝,對於普通的個人PC機而言使用光盤或者U盤安裝完全可以滿足需求,但是如果針對大型企業或者是教育企業的網管人員而言上述的安裝方案必然會帶來相當大的麻煩,有需求就有了解決方案,通過網卡來安裝操作系統是相當便捷的方式。

Pxe工作於c/s的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持來自網絡的操作系統的啟動過程,其啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟件包到本機內存中並執行,由這個啟動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。

對於我們今天的實驗來說,我自己畫了一個圖,來談談我對於pxe安裝的理解,我是針對與linux操作系統來做的:

下面我們就針對這個原理圖來開始實驗:

實驗需求:vm虛擬機,完整的linux鏡像

使用虛擬機虛擬出一台Server和pc機,Server的需求比較多,客戶機不需要太多的設置(在真實環境中客戶機的網卡需要支持pxe)

1.Server需要的功能:

A.Dhcp服務器的搭建:為了方便安裝,我使用的是yum安裝配置文件如下

[rhel-server]

name=Red Hat Enterprise Linux server

baseurl=file:///mnt/cdrom/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

之後就是dhcp服務器的安裝

配置dhcp服務器:一下是我的dhcpd.conf的配置參數,其中網段部分你可以根據自己的需求設置,要著重注意的是next-server參數(用於指明你的tftp服務器位置)和filename參數(指明你的pxe驅動位置)

#
# DHCP Server Configuration file.
ddns-update-style interim;
ignore client-updates;
subnet 192.168.111.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.111.254;
option subnet-mask 255.255.255.0;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.111.128 192.168.111.200;
default-lease-time 21600;
max-lease-time 43200;
# --- tftp server
next-server 192.168.111.10;
# --- pxe
filename "pxelinux.0";
}

啟動dhcp服務

B.tftp服務器的搭建同樣使用yum安裝,有圖有真相

對於tftp服務器,它的啟動是用到超級守護進程的,所以要配置它的啟動腳本/etc/xinetd.d/tftp,一下是我的配置參數

service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

然後重新啟動超級守護進程

Tftp的根目錄是在/tfptroot/,之後我們就要將linux內核文件、小鏡像、啟動配置文件、pxe驅動文件復制到tftp的根目錄下,這些東西我們可以從linux的完整鏡像中找到首先我們要將linux鏡像掛載

mount /dev/cdrom /mnt/cdrom

cd /mnt/cdrom

進入images文件夾下並查看內容

其中pxeboot文件夾中有內核文件和小鏡像

將文件拷貝到tftp根目錄

拷貝pxe驅動文件到tftp根目錄下

cp /usr/lib/syslinux/pxelinux.0 /tftpboot/

接下來要拷貝啟動配置文件到tftp服務器上去

修改default文件,主要注意ks.cfg的路徑

default linux
prompt 1
timeout 6
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.111.10/ks.cfg
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -

接下來就是來創建ks.cfg文件,可以使用system-config-kickstart軟件來手工生成,當然這個軟件是需要實現安裝的同樣是使用yum安裝

yum install system-config-kickstart

然後打開軟件創建ks.cfg文件,一下是我的操作截屏

基本配置 這裡我設置了安裝成功之後的root用戶的密碼123456

安裝方法 這裡我使用了root用戶登錄(這個在之後的ftp配置中要配置運行root用戶登錄)

這裡有個錯誤ftp的根目錄應該是/pub

引導選項

分區

網絡設置使用dhcp自動獲取

認證

防火牆設置

顯示設置

軟件包得選擇可以根據個人情況定制

安裝完成之後要執行的腳本

腳本內容如下

#!/bin/bash
ADDRESS=`/sbin/ifconfig eth0|grep -i "inet\>" |awk '{print $2}'`
NUM=${ADDRESS##*.}
NETADDRESS=${ADDRESS#*:}
sed -i -e "s/HOSTNAME.*/HOSTNAME=station$NUM.a.com/g" /etc/sysconfig/network
sed -i -e "s/127.0.0.1.*/127.0.0.1 station$NUM.a.com localhost localhost.localdomain/g" /etc/hosts
sed -i -e "s/BOOTPROTO.*/BOOTPROTO=static\nIPADDR=$NETADDRESS\nNETMASK=255.255.255.0/g" /etc/sysconfig/network-scripts/ifcfg-eth0

之後將ks.cfg文件保存到/var/ftp/目錄下

之後還要修改一下ks.cfg文件,添上key –skip

C.ftp服務器的搭建

yum install vsftp

安裝完成之後將/etc/vsftpd/ftpusers和/etc/vsftpd/user_list文件中的root用戶刪除以保證root用戶能夠登錄,將光盤重新掛載到ftp的根目錄下可以省去拷貝光盤鏡像文件到根目錄下的麻煩,同時我在vsftp.conf文件中添加了local_root=/var/ftp/使得一root用戶登陸默認目錄也是/var/ftp

這樣所有的准備工作就完成了

2.pc機測試

打開虛擬PC機的電源,安裝過程截圖

到此啟動成功,整個實驗下來最重要的是要注意ks.cfg文件和安裝後自動執行的腳本編寫,希望你能成功!!!!

本文出自 “90後噭凊陽洸” 博客,請務必保留此出處http://wnqcmq.blog.51cto.com/5200614/1157854

Copyright © Linux教程網 All Rights Reserved