Kickstart+NFS+DHCP+PXE+TFTP全自動化安裝linux

Kickstart+NFS+DHCP+PXE+TFTP全自動化安裝linux

  1. 首先不敢說是原創,是經過網絡搜索總結出的比較可靠穩定的設置方法及內容。

  2. 安裝過程中需要注意的事項,這在其他教程中涉及很少,給初學者造成一定困難。

  3. 本教程中的ks.cfg文件嚴格來說是修改系統中存在的anaconda.cfg文件。

  4. 本文中所用系統爲RHEL6.464位操作系統。

  5. 本文中所有操作均在虛擬機中實現,爲了達到更好的效果,虛擬機網絡採用內部網絡。主要是爲了避免系統直接給它windows系統服務給它自動分配地址,我們要用linux主機的dhcp服務分配地址。

  6. 請關閉防火牆。未關閉會連接超時的。

  7. 請關閉selinux。未關閉,會導致無法獲取pxelinux.0文件。

 

好直接上內容。

配置好本地源,掛載鏡像iso文件。

掛載iso文件到media目錄

mount /dev/sr0 /media/

修改/etc/yum.repos.d/rhel-source.repo

[root@vmRHEL ~]# vim  /etc/yum.repos.d/rhel-source.repo

[rhel-source]

name=Red Hat Enterprise Linux $releasever -$basearch - Source

baseurl=file:///media/

enabled=1

gpgcheck=1

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

 

[rhel-source-beta]

name=Red Hat Enterprise Linux $releaseverBeta - $basearch - Source

baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/

enabled=0

gpgcheck=1

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

保存退出。

 

安裝dhcptftp服務

#yum install tftp* dhcp*

 

編輯tftp

vim /etc/xinetd.d/tftp

service tftp

{

       socket_type             = dgram

       protocol                = udp

       wait                    = yes

       user                    = root

       server                  =/usr/sbin/in.tftpd

       server_args             = -unobody -s /tftpboot

       disable                = no

       per_source              = 11

       cps                     = 100 2

       flags                   = IPv4

}

 

修改:disable = no 修改爲yes

 

編輯dhcp服務的配置文件

vim /etc/dhcpd.conf

 

#

# DHCP Server Configuration file.

#  see /usr/share/doc/dhcp*/dhcpd.conf.sample

#  see 'man 5 dhcpd.conf'

ddns-update-style interim;

ignore client-updates;

next-server 192.168.0.20;

filename "pxelinux.0";

authoritative;

allow booting;

allow bootp;

subnet 192.168.0.0 netmask 255.255.255.0{

range dynamic-bootp 192.168.0.100192.168.0.200;

option routers 192.168.0.1;

option subnet-mask 255.255.255.0;

option domain-name-servers 192.168.0.10;

option domain-name "ssgm.net";

default-lease-time 21600;

max-lease-time 43200;

}

 

以上內容可以直接複製粘貼到配置文件中。

 

配置PXE

 

新建文件夾mkdir /rhelos

拷貝iso鏡像內部文件到rhelos文件內,cp –rf  /media/* /rhelos/

編輯NFS配置文件:

vi /etc/exports    內容如下

/rhelos *(rw,sync)

 

啓動服務,service dhcpd start

Service nfs start

Service rpcbind start

如果這些服務不是自動啓動的,需要chkconfig配置下自動啓動。

mkdir /tftpboot     tftp的根目錄

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

注意:如果找不到這個文件,需要yum install syslinux,然後再/usr/share/syslinux/ 中拷貝pxelinux.0文件。

cp /media/p_w_picpaths/pxeboot/{vmlinuz,initrd.img}/tftpboot

mkdir /tftpboot/pxelinux.cfg

cp /mnt/isolinux/isolinux.cfgpxelinux.cfg/default

vim /tftpboot/pxelinux.cfg/default (修改配置如下:)

 

default linux

prompt 1

timeout 600

display boot.msg

F1 boot.msg

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

label linux

kernel vmlinuz

append ks=nfs:192.168.0.20:/rhelos/ks.cfginitrd=initrd.img (需要修改的地方)

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 -

設置timeout 10 /*超時時間爲10S */

 

生成ks.cfg安裝配置文件(拷貝到提供安裝的目錄 /rhelos目錄)

設置權限 chmod o+wx /rhelos/ks.cfg

可以根據/root/目錄下的anaconda-ks.cfg文件修改需要的系統需求。

(注意、clearpart all initlabel #如果ks.cfg腳本中不添加該語句,將不能實現自動化安裝)

nfs server=NFS服務器ip dir=光盤的位置 系統安裝文件存放的位置

network device eth0 bootprotodhcp(使用DHCP來實現自動分配IP地址)

啓動客戶端,加電+插上網線,設置網卡啓動,等待安裝完畢即可。

重啓系統就可以了。

以下爲我的ks.cfg參考配置:

# Kickstart file automatically generated byanaconda.

 

#version=DEVEL

install

text

nfs --server=192.168.0.20 --dir=/rhelos

key --skip

lang zh_CN.UTF-8

keyboard us

network --device eth0 --bootproto dhcp

rootpw --iscrypted$6$hBCzImAfUr/h6xaf$2nJtxJ/Bh1yAQUt2446ZmgseChRBBXAbBcThnPR9xWC7NbfsEWPb8IF1Vj9KqZ1oKX02ClusTb0BOFz3IJuI//

firewall --disabled

authconfig --enableshadow --passalgo=sha512

selinux --disabled

timezone Asia/Shanghai

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

# The following is the partitioninformation you requested

# Note that any partitions you deleted arenot expressed

# here so unless you clear all partitionsfirst, this is

# not guaranteed to work

#clearpart --none

clearpart --all --initlabel

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

part swap --size=2000

part / --fstype ext4 --size=1 --grow

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

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

 

 

 

%packages

@base

@chinese-support

@console-internet

@core

@debugging

@development

@dial-up

@mysql-client

@mysql

@system-management-snmp

@server-policy

python-dmidecode

sgpio

device-mapper-persistent-data

ftp

lftp

glibc-utils

systemtap-client

gdb-gdbserver

libstdc++-docs

gcc-gnat

gcc-objc

gcc-objc++

rp-pppoe

perl-DBD-MySQL

%end

 

以上配置文件爲最小化安裝並自定義安裝包的cfg文件。注意rootpw設置的root密碼,必須修改成你們自己的密碼,用我的,我可不給你們說密碼。

network --device eth0 --bootproto dhcp 這一項必須要設置的,否則,進入系統後,無法獲取ip,就找不到ks.cfg文件了。整個啓動過程中,需要獲得兩次ip纔可以的。這步很關鍵。

最後,重啓服務:

service dhcpd restart ;

service nfs restart ;

service xinetd restart;

service rpcbind restart


請注意標紅的設置內容。


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