[패키지] NFS Server 와 DHCP Server 를 이용하여 네트워크로 리눅스 설치 하기

## NFS Server 와 DHCP Server 를 이용하여 네트워크로 리눅스 설치 하기 ##

작성자 : 서진우 (alang@sysmng.com)

작성일 : 2003년 7월 25일

부팅 디스켓이나 설치 CD로 부팅 후 DHCP 서버에서 IP를 활당 받아 네트워크 가능 상태로 만든 후

NFS 서버에 Mount 하여 해당 서버에 있는 리눅스 패키지를 자동으로 설치 하는 방법임

이 방법의 장점으로는 ..

네트워크 환경에서 CD 를 통한 설치 보다 3~4 정도의 빠른 속도로 설치가 가능하고, 설치의 모든

과정을 자동화 하여 관리자가 설치 하는 동안 콘솔에서 설치 상황을 지켜 볼 필요가 없다는 장점

이 있습니다.

이와 같은 방법으로 리눅스 설치 서버를 만드는데 필요한 구성을 살펴 보도록 하겠습니다.

1. 부팅이미지로 부팅하면서 네트워크에 참여하도록 하는 DHCP 서버

2. 리눅스 패키지 소스를 제공하는 NFS 서버

3. 설치 과정을 자동화 해주는 ks.cfg 설정 파일

4. 부팅 이미지를 포함한 부팅 CD 나 플로피

1. DHCP 서버 설치 및 설정 하기

# rpm -Uvh dhcp-devel-3.0pl1-23.rpm

# rpm -Uvh dhcp-3.0pl1-23.rpm

# vi /etc/dhcpd.conf

——————————————————————————————–

ddns-update-style interim;

ignore client-updates;

default-lease-time 600;

max-lease-time 7200;

option subnet-mask 255.255.255.128;

option broadcast-address 211.241.202.255;

option routers 211.241.202.254;

option domain-name-servers 211.241.202.223 ;

option domain-name “technet.clunix.com”;

subnet 211.241.202.128 netmask 255.255.255.128 {

   range 211.241.202.224 211.241.202.226;

}

——————————————————————————————-

# vi /etc/sysconfig/dhcpd

——————————————————————————————

# Command line options here

DHCPDARGS=eth0

——————————————————————————————

# /etc/rc.d/init.d/dhcpd restart

2. NFS 서버 설정 하기

/data/redhat/rh7.3full 에 CD1,CD2,CD3의 RPM 패키지를 한곳에 모아 둡니다.

그런 후 ..

# vi /etc/exports

—————————————————————————————-

/data/redhat/rh7.3full  *(ro,no_root_squash)

—————————————————————————————

# /etc/rc.d/init.d/portmap restart   // nfs 서비스를 하기 위해서는 portmap 데몬이 필요함

# /etc/rc.d/init.d/nfs restart

간단한 테스트

# mount -t nfs localhost:/data/redhat/rh7.3full /tmp

# umount /tmp

3. ks.cfg 파일 설정 하기

/data/redhat/rh7.3full 에 ks.cfg 파일을 만든다.

# vi /data/redhat/rh7.3full/ks.cfg

————————————————————————————–

# Kickstart file automatically generated by anaconda.

lang en_US

langsupport –default en_US.iso885915 en_US.iso885915

keyboard us

mouse none

text

#cdrom    // One CD 로 설치 시에는 주석 제거 ..

# nfs server 를 이용시에는 아래 방식으로 ..

nfs –server alang1.clunix.com –dir /data/redhat/rh7.3full

zerombr yes

clearpart –all

part / –size 2500

part /usr –size 5120

# –recommended 는 자동 설정, 즉 물리적인 메모리의 1.5배를 잡는다.

part swap –recommended

# –grew 는 남은 하드 공간을 모두 활당

part /home –size 1 –grow

installtimezone Asia/Seoul

# 패스워드 설정후 /etc/shadow 에 있는 암호화된 패스워드 부분을 복사

rootpw –iscrypted $1$QBdt6.fL$UXiGASDqbWIA.hOAJb62D.

firewall –medium –trust eth0 –ssh

authconfig –enableshadow –enablemd5

lilo –location mbr

skipx

# 패키지 부분은 실제 설치할 패키지 정보만을 넣는다.

# 리눅스 설치 후 /root/anaconda-ks.cfg 파일의 정보를 참조함.

%packages

@ Classic X Window System

@ X Window System

@ Network Support

@ DNS Name Server

@ Network Managed Workstation

@ Utilities

@ Software Development

@ Kernel Development

compat-libstdc++

VFlib2-devel

Xaw3d-devel

ddd

cups-devel

doxygen

glib2-devel

Glide3-devel

rhn_register-gnome

kernel-smp

lesstif-devel

openmotif-devel

pygtk-devel

nmap-frontend

libcap-devel

alchemist-devel

rsync

freetype-devel

vnc

audiofile-devel

pygtk2-devel

xpdf

imlib-devel

bind-devel

usbview

gtk+-devel

gnuplot

arpwatch

python2-devel

libpcap

pygnome-devel

memprof

shapecfg

XFree86-devel

WindowMaker

lesstif

openssh-askpass

up2date-gnome

vnc-server

libmng-devel

libungif-devel

bindconf

libxml-devel

glib-devel

WindowMaker-libs

netpbm-devel

kWnn-devel

ical

# 설치 후 적용할 스크립트 내용

%post –interpreter /bin/bash

#### setting IP ADDR ############################

stringZ=`cat /proc/cmdline`

for service in $stringZ

do

  if [ `expr match “$service” “ksip=”` -eq “5” ] ; then

    IPADDR=${service:5}

  fi

  if [ `expr match “$service” “ksnm=”` -eq “5” ] ; then

    NAME=${service:5}

  fi

done

echo “DEVICE=eth0” > /etc/sysconfig/network-scripts/ifcfg-eth0

echo “BOOTPROTO=static”  >> /etc/sysconfig/network-scripts/ifcfg-eth0

echo “IPADDR=${IPADDR}”  >> /etc/sysconfig/network-scripts/ifcfg-eth0

echo “NETMASK=255.255.255.128” >> /etc/sysconfig/network-scripts/ifcfg-eth0

echo “ONBOOT=yes”  >> /etc/sysconfig/network-scripts/ifcfg-eth0

echo “NETWORKING=yes”       >  /etc/sysconfig/network

echo “HOSTNAME=${NAME}”     >> /etc/sysconfig/network

#################################################

##### setting services off ###################################

chkconfig kudzu off

chkconfig reconfig off

chkconfig ipchains off

chkconfig nfslock off

chkconfig nfs off

chkconfig portmap off

chkconfig keytable off

chkconfig apmd off

chkconfig rawdevices off

chkconfig sendmail off

chkconfig gpm off

chkconfig anacron off

chkcchkconfig netfs off

chkconfig autofs off

chkconfig atd off

chkconfig netfs off

chkconfig autofs off

———————————————————————————————-

4. 부팅 매체로 리눅스를 설치 할 시스템을 부팅 시키고 설치 프롬프트가 나왔을때

다음과 같이 입력합니다.

boot : ks ks=nfs:[nfs_server_ip 혹은 호스트명]:/data/redhat/rh7.3full/ks.cfg ksip=[설치서버의 >기본 IP]

ksnm=[설치서버의 호스트명]

그럼 ..nfs 서버의 리눅스 설치 소스를 이용하여 자동 설치가 된다.

서진우

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.