kickstart無人值守安裝


kickstart無人值守安裝

  1. PXE介紹

PXE(Pre-boot Execution Environment,預啓動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啓動操作系統,在啓動過程中,終端要求服務器分配IP地址,再用TFTPtrivial file transfer protocol)或MTFTP(multicasttrivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。

嚴格來說,PXE 並不是一種安裝方式,而是一種引導方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE ClientPXE 協議可以使計算機通過網絡啓動。此協議分爲 Client端和 Server 端,而PXE Client則在網卡的 ROM 中。當計算機引導時,BIOS PXE Client 調入內存中執行,然後由 PXE Client 將放置在遠端的文件通過網絡下載到本地運行。運行 PXE 協議需要設置 DHCP 服務器和 TFTP 服務器。DHCP 服務器會給 PXE Client(將要安裝系統的主機)分配一個 IP 地址,由於是給 PXE Client 分配 IP 地址,所以在配置 DHCP 服務器時需要增加相應的 PXE 設置。此外,在 PXE Client ROM 中,已經存在了 TFTP Client,那麼它就可以通過 TFTP 協議到 TFTP Server 上下載所需的文件了。

2.   無人值守安裝原理圖

wKiom1ZJjJ3zLUGOAABQ53jZlTs694.png


PXE的工作過程:

  1. PXE Client 從自己的PXE網卡啓動,向本網絡中的DHCP服務器索取IP

  2. DHCP 服務器返回分配給客戶機的IP以及PXE文件的放置位置(該文件一般是放在一臺TFTP服務器上)

  3. PXE Client 向本網絡中的TFTP服務器索取pxelinux.0文件;

  4. PXE Client 取得pxelinux.0 文件後之執行該文件;

  5. 根據pxelinux.0 的執行結果,通過TFTP服務器加載內核和文件系統

  6. 進入安裝畫面, 此時可以通過選擇HTTPFTPNFS 方式之一進行安裝;

詳細工作流程,請參考下面這幅圖:

wKioL1ZJjKazv2yKAAETsoA9dhM358.png

3.環境需求

實驗環境

VMware workstations 11.0

系統平臺

CentOS6.7Final 最小化安裝)

網絡採用NAT

網關10.0.0.2

NFSTFTP服務器的地址

10.0.0.9

DHCP服務器地址

10.0.0.9

 

4.操作步驟:

  1. 創建掛載目錄:

mkdir /data/sys –p

因爲我們這個是掛載的,所以目錄sys是隻讀了。

我後面又需要把ks.cfg也要放在共享裏面,我在data目錄下再創建一個kickstart目錄

mkdir  /data/kickstart -p

我們採用的是虛擬機:就不要把鏡像拷貝到這個目錄了,我們之間把鏡像掛載到這個目錄。如果是真實環境我們需要把鏡像拷貝到這個目錄下。

[root@oldboy /]# mount /dev/cdrom /data/sys

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@oldboy /]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2       6.9G  3.7G 2.9G  57% /

tmpfs           238M  4.0K 238M   1% /dev/shm

/dev/sda1       190M   36M 145M  20% /boot

/dev/sr0        3.7G 3.7G     0 100% /data/sys

 

2.安裝NFS服務器;

查詢有沒安裝

[root@oldboy /]# rpm -qa nfs-utilsrpcbind

rpcbind-0.2.0-11.el6.x86_64

nfs-utils-1.2.3-64.el6.x86_64

沒有安裝通過yum來安裝

[root@oldboy /]# yum -y installnfs-utils rpcbind

安裝完過後把這兩個服務加入開機自啓動。

[root@oldboy /]# chkconfig   nfs on       

[root@oldboy /]# chkconfig   rpcbind on

並把/data/sys設置爲共享目錄

echo "/data/sys10.0.0.0/24(ro,sync)" >>/etc/exports

echo "/data/kickstart10.0.0.0/24(ro,sync)" >>/etc/exports

啓動NFS服務

/etc/init.d/rpcbind start

/etc/init.d/nfs start

查看共享目錄:

[root@oldboy /]# showmount -e localhost

Export list for localhost:

/data/kickstart 10.0.0.0/24

/data/sys       10.0.0.0/24

3.安裝TFTP服務:

[root@oldboy /]# yum -y installtftp-server*

安裝完成修改配置文件將disableyes 改爲no 默認器server_args是在 /var/lib/ tftpboot 下。我們改爲/tftpboot 默認都可以。

vim /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

}

mkdir /tftpboot 目錄。

xinetd 加入開機自啓動

chkconfig xinetd on

[root@oldboy /]# chkconfig --list|grep xinetd

xinetd          0:off   1:off  2:on    3:on    4:on   5:on    6:off

4.配置支持PXE引導配置:

複製pxelinux.0 文件至/tftpboot/ 文件夾中

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

複製iso 鏡像中的/p_w_picpath/pxeboot/initrd.img vmlinux /tftpboot/ 文件夾

cp/data/sys/p_w_picpaths/pxeboot/initrd.img /tftpboot/

cp/data/sys/p_w_picpaths/pxeboot/vmlinuz /tftpboot/

tftpboot目錄下再創建一個pxelinux.cfg目錄

mkdir /tftpboot/pxelinux.cfg/ -p

將鏡像中的isolinux.cfg 文件拷貝到 pxelinux.cfg 下並改名爲default

cp/data/sys/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

[root@oldboy sys]# chmod u+w/tftpboot/pxelinux.cfg/default 

修改文件

default linux # 默認啓動Linux標記的內核

prompt 1

timeout 6

#並把告訴系統從哪裏獲取ks.cfg文件

label linux

  menu label ^Install or upgradean existing system

  menu default

  kernel vmlinuz

  appendinitrd=initrd.img  text  append ks=nfs:10.0.0.9:/data/kickstart/ks.cfg

5.安裝DHCP服務:

yum -y install dhcp*

安裝完把DHCP加入開機自啓動。

chkconfig dhcpd on

[root@oldboy /]# chkconfig --list|grep dhcpd

dhcpd           0:off  1:off   2:off   3:on   4:off   5:off   6:off

拷貝模板配置文件到/etc/dhcp/

cp -f /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

修改/etc/dhcp/dhcpd.conf配置文件,內容如下:

ddns-update-style none;

ignore client-updates;

allow booting;

allow bootp;

default-lease-time 21600;

max-lease-time 43200;

option routers 10.0.0.2;  #網關

option subnet-mask 255.255.255.0; #子網掩碼

subnet 10.0.0.0 netmask 255.255.255.0 {

  range dynamic-bootp10.0.0.100 10.0.0.199;

  next-server 10.0.0.9;   #服務ip地址

  filename"/data/sys/kickstart/ks.cfg"; #ks.cfg位置

  next-server 10.0.0.9;   #服務器ip地址

  filename"pxelinux.0";  #pxe啓動文職

}

6.生成ks.cfg文件

可以通過系統生成,用system-config-kickstart生成ks.cfg

# Kickstart file automatically generated by anaconda.

 

#version=DEVEL

install

nfs --server=10.0.0.9 --dir=/data/sys #指定從哪裏加載系統鏡像

lang en_US.UTF-8

keyboard us

network --onboot yes --device eth0 --bootproto dhcp --noipv6

rootpw  123456 # root 密碼

firewall --disabled

authconfig --enableshadow --passalgo=sha512

selinux --disabled

timezone --utc Asia/Shanghai

 

bootloader --location=mbr --driveorder=sda--append="crashkernel=auto rhgb quiet"

logging --level=info

zerombr

# 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 --none

 

#part /boot --fstype=ext4 --size=200

#part / --fstype=ext4 --grow --asprimary --size=200

#part swap --size=768

clearpart --all

 

part /boot --fstype=ext4 --size=200

part / --fstype=ext4 --grow --asprimary --size=200

part swap --size=768

%packages

@base

@compat-libraries

@core

@debugging

@development

@server-policy

@workstation-policy

python-dmidecode

sgpio

device-mapper-persistent-data

systemtap-client

%end

 

這些都配好了。檢查服務開啓了沒有

[root@oldboy /]# /etc/init.d/nfs status

rpc.svcgssd is stopped

rpc.mountd (pid 16194) is running...

nfsd (pid 16210 16209 16208 16207 16206 16205 16204 16203) isrunning...

rpc.rquotad (pid 16189) is running...

[root@oldboy /]# /etc/init.d/rpcbind status

rpcbind (pid  18430) isrunning...

[root@oldboy /]# /etc/init.d/xinetd status

xinetd (pid  17055) isrunning...

 [root@oldboy /]# /etc/init.d/dhcpd status

dhcpd (pid  16262) isrunning...

接下來我們就在vmware創建一個空的虛擬機。

開機測試。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章