[패키지] 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 서버의 리눅스 설치 소스를 이용하여 자동 설치가 된다.