Archon OS Install Kickstart HOWTO

Clunix Inc. Donghyun Kim <ryan@clunix.com>

1. Introduction

  이 문서는 (주)클루닉스에서 출시되는 Archon 서버에 기본적으로 설치되는 RedHat 6.2 기반의 Archon Restore CD를 자동으로 설치하는 방법과 그 구성에 대한 것이다. RedHat의 Kickstart install을 사용하였으며, (주)클루닉스에서 따로 필요로 하는 script patch, lcdd, install-test script등을 설치하는 작업이 포함된다.

2. RedHat Kickstart

  Kickstart는 OS install시 필요한 parameter를 파일에 저장하여 batch process로 OS를 일괄적으로 설치 할 수 있다. NFS, CDROM, HDD등에 OS install image를 설치하고 floopy나 cdrom등에서 kickstart config file을 읽어들여 설치한다.
  특히 대량의 서버에 OS를 설치해야 하는 경우 DHCP/BOOTP + NFS의 조합을 사용하여 설치를 용이하게 할 수 있다.

3. Archon Server Installation Procedure

   먼저 RedHat 6.2 기반의 Archon Restore CD를 설치한다. 여기에는 기본 RedHat 6.2에 security issue가 있는 몇몇 RPM들을 update하였으며, (주)클루닉스에서 작성한 OS tuning을 위한 patch를 적용하였다. 또한 Archon Server Install후 post install test를 위한 test script가 들어있으며, 이는 처음 booting시 NIC, MEM, HDD등을 테스트 한다. 이러한 작업 뒤에 network 관련 config file들을 초기화 하고, lcdd를 설치한다. 또한 시스템에 불필요한 daemon을 chkconfig를 사용하여 disable시키고, root, test 계정을 생성한다.
   이러한 작업을 위한 script들은 archon-6.2-post-install-0.2-2.i386.rpm으로 package화 하였으며 Archon Server Auto Installer CD에 의해 OS설치시 시스템에 복사되고, rpm은 복사후 시스템에서 삭제된다. 추후 추가의 post-install작업이 필요한 경우에는 이 rpm에 shell script형태로 넣어두면 된다.
   단, RedHat kickstart에서 %post 항목에 의해 실행되는 이 script들은 chroot 환경에서 동작하므로, 이를 유의한다. (CDROM으로 설치하는 경우 CDROM을 다시 mount하려면 %post --nochroot를 사용하여 chroot환경을 벗어나야만 사용가능하다.)
   Archon Server Auto Installer(ASAI) CD는 CDROM으로 부팅하여 자동으로 설치하는 작업을 기본으로 작성되었으며, CD내에 있는 boot-nfs.img를 사용하면 NFS서버로 동작하는 디스크에 ASAI CD를 풀어놓은 뒤에 NFS로 동시에 작업도 가능하다. 이에 DHCP/BOOTP등을 조합할 수도 있다.

4. Creating Archon Server Auto Installer CD
	1. Archon Restore CD Image를 풀어 놓는다.
	2. install method, partition, install package등을 적어둔 kickstart config file(ks-cd.cfg, 
	    ks-nfs.cfg)를 작성한다.
	3. post-install작업을 위한 archon-6.2-post-install-0.2-2.i386.rpm을 _PATH_/RedHat/RPMS에 
	   넣고 _PATH_/misc/src/anaconda/utils/genhdlist _PATH_ 를 실행시켜 등록시킨다.
	4-1. CDROM으로 부팅하는 경우에는 boot.img의 initrd.img에 ks-cd.cfg를 추가시킨 
	       boot-cd.img를 생성한다.

		mount -o loop -t msdos PATH/boot.img MOUNT_DIR1
		cd MOUNT_DIR1
		gzip -dc initrd.img > ungzip-initrd.img
		mount -o loop ./ungzip-initrd.img MOUNT_DIR2
		cp ks.cfg MOUNT_DIR2
		cd MOUNT_DIR1
		umount MOUNT_DIR2
		gzip ungzip-initrd.img
		mv -f ungzip-initrd.img.gz initrd.img
		umount MOUNT_DIR1
		mv PATH/boot.img boot-cd.img

	4-1a. boot-cd.img를 boot image로 사용한 bootable CD를 작성한다.

		mkisofs -v -r -T -J -V "Archon CD" -b PATH/boot-cd.img -c boot.cat 
		             -o archon-kick.iso CD_IMAGE_DIR/

	4-1b.	부팅후 syslinux prompt에서 linux ks=file:/ks-cd.cfg를 입력하거나 boot-cd.img내의 
	          syslinux.cfg를 다음과 같이 수정하여 syslinux prompt없이 바로 시작시킨다.

		default ks
		prompt 0
		timeout 600
		display boot.msg
		F1 boot.msg
		F2 general.msg
		F3 expert.msg
		F4 param.msg
		F5 rescue.msg
		F7 snake.msg
		label linux
		  kernel vmlinuz
		  append initrd=initrd.img local
		label text
		  kernel vmlinuz
		  append initrd=initrd.img local text
		label expert
		  kernel vmlinuz
		  append expert initrd=initrd.img local
		label ks
		  kernel vmlinuz
		  append ks=file:/ks-cd.cfg initrd=initrd.img local

	4-2. DHCP를 사용하지 않고 static IP를 설정하여 NFS로 부팅하는 경우, ks-nfs.cfg에는 network 
	       setting을 위한 network 항목과 install method를 nfs로 설정한다. 

		### Network Configuration
		network --bootproto static --ip 192.168.12.30 --netmask 255.255.255.0 --gateway \
		192.168.12.254 --nameserver 192.168.12.175

		### Source File Location
		nfs --server 192.168.12.175 --dir /ground/ryan/6.2-i386

	4-2a. bootnet.img에 ks-nfs.cfg를 ks.cfg로 저장하고 syslinux prompt없이 바로 시작하려면 
	         syslinux.cfg도 수정하여 boot-nfs.img를 만든다.

		mount -o loop -t msdos PATH/bootnet.img MOUNT_DIR1
		cp ks-nfs.cfg MOUNT_DIR1/ks.cfg
		cp syslinux-nfs.cfg MOUNT_DIR1/syslinux.cfg
		umount MOUNT_DIR1
		mv PATH/bootnet.img boot-nfs.img

		<syslinux-nfs.cfg의 내용>
		default ks
		prompt 0
		timeout 600
		display boot.msg
		F1 boot.msg
		F2 general.msg
		F3 expert.msg
		F4 param.msg
		F5 rescue.msg
		F7 snake.msg
		label linux
		  kernel vmlinuz
		  append initrd=initrd.img network
		label text
		  kernel vmlinuz
		  append initrd=initrd.img network text
		label expert
		  kernel vmlinuz
		  append expert initrd=initrd.img network
		label ks
		  kernel vmlinuz
		  append ks=floppy initrd=initrd.img network

	4-2b. boot-nfs.img를 floppy에 write하여 이 floppy로 NFS server (주소는 ks-nfs.cfg에서 지정)에 
	         접속하여 file을 install한다.

Appendix A - ks-cd.cfg

  다음은  6.2기반의 Archon Restore CD에 대한 ASAI CD용 kickstart file의 내용이다.

### KickStart File (ks.cfg) for boot-cd.img of CDROM installation
### For Archon Server based on RedHat 6.2
### This needs archon-6.2-post-install.tar.gz to do post-installation
### by ryan@clunix.com
### 2001.04.16

### Language Specification
lang en_US

### Network Configuration
#network --bootproto static --ip 192.168.12.30 --netmask 255.255.255.0 --gateway
#192.168.12.254 --nameserver 192.168.12.175

### Source File Location
cdrom

### Ethernet Device Configuration
#device ethernet wd --opts "io=0x280, irq=3"

### Keyboard Configuration
### Will get set to 'us' by default
### if nothing specified in /etc/sysconfig/keyboard
keyboard "us"

### Partitioning Information
### size : MB
zerombr yes
clearpart --all
part /boot --size 64 --ondisk sda
part / --size 4096 --ondisk sda
part swap --size 512 --ondisk sda
part /home --size 4096 --ondisk sda
part /data --size 1024 --grow --ondisk sda

install

### Mouse Configuration
mouse genericps/2 --emulthree

### Time Zone Configuration
### Will get set to 'US/Eastern' if ZONE is missing
### from /etc/sysconfig/clock or if file is missing entirely
timezone ROK

### X Configuration
### Will set up system for minimal resolution and color depth;
### may wish to run Xconfigurator manually after system installation
#xconfig --server "SVGA" --monitor "my monitor"
skipx

### Root Password Designation
### default passwd is root
#rootpw --iscrypted $1$P16liAjY$2Isabu0CiQGZDWvxBDXye/
rootpw root

### Authorization Configuration
auth --useshadow --enablemd5

### Lilo Configuration
lilo --location mbr

### Package Designation
%packages
@ GNOME
@ KDE
@ X Window System
@ DOS/Windows Connectivity
@ Kernel Development
@ Server
wget
ipvsadm
archon-6.2-post-install

# archon-6.2-post-install-0.2-2.i386.rpm을 설치하면 /tmp/archon-post-install에 script를 복사하고,
# install.sh을 실행하여 필요한 곳에 script들을 모두 복사한후 자신을 지운다.
# 이렇게 복사된 script들은 patch, test script등인데, test script는 archon server test작업 (rc.local)에
# 의해 한번 수행된 뒤 모두 삭제된다.

### Commands To Be Run Post-Installation
%post

cd /tmp/archon-post-install
./install.sh
cd /tmp
rpm -e archon-6.2-post-install

Appendix B - ks-nfs.cfg

다음은 NFS server (192.168.12.175:/ground/ryan/6.2-i386)를 사용한 kickstart config file의 내용이다.
### KickStart File (ks.cfg) for bootnet.img floopy of NFS installation
### For Archon Server based on RedHat 6.2
### This needs archon-6.2-post-install.tar.gz to do post-installation
### by ryan@clunix.com
### 2001.04.16

### Language Specification
lang en_US

### Network Configuration : 자신의 IP 192.168.12.30, NFS server IP 192.168.12.175
network --bootproto static --ip 192.168.12.30 --netmask 255.255.255.0 --gateway
192.168.12.254 --nameserver 192.168.12.175

### Source File Location
nfs --server 192.168.12.175 --dir /ground/ryan/6.2-i386

### Ethernet Device Configuration
#device ethernet wd --opts "io=0x280, irq=3"

### Keyboard Configuration
### Will get set to 'us' by default
### if nothing specified in /etc/sysconfig/keyboard
keyboard "us"

### Partitioning Information
### size : MB
zerombr yes
clearpart --all
part /boot --size 64 --ondisk sda
part / --size 4096 --ondisk sda
part swap --size 512 --ondisk sda
part /home --size 4096 --ondisk sda
part /data --size 1024 --grow --ondisk sda

install

### Mouse Configuration
mouse genericps/2 --emulthree

### Time Zone Configuration
### Will get set to 'US/Eastern' if ZONE is missing
### from /etc/sysconfig/clock or if file is missing entirely
timezone ROK

### X Configuration
### Will set up system for minimal resolution and color depth;
### may wish to run Xconfigurator manually after system installation
#xconfig --server "SVGA" --monitor "my monitor"
skipx

### Root Password Designation
### default passwd is root
#rootpw --iscrypted $1$P16liAjY$2Isabu0CiQGZDWvxBDXye/
rootpw root

### Authorization Configuration
auth --useshadow --enablemd5

### Lilo Configuration
lilo --location mbr

### Package Designation
%packages
@ GNOME
@ KDE
@ X Window System
@ DOS/Windows Connectivity
@ Kernel Development
@ Server
wget
ipvsadm
archon-6.2-post-install

### Commands To Be Run Post-Installation
%post

cd /tmp/archon-post-install
./install.sh
cd /tmp
rpm -e archon-6.2-post-install

Appendix C - References

Archon Server Auto Installer Files :
	ftp://dev.clunix.com/pub/archon/kickstart/archon-6.2-kickstart.tar.gz

Kickstart Documents :
        RedHat 6.2 
	http://www.redhat.com/support/manuals/RHL-6.2-Manual/ref-guide/ch-kickstart2.html
        RedHat 7.0
	http://www.redhat.com/support/manuals/RHL-7-Manual/ref-guide/ch-kickstart2.html
        RedHat 7.1 
	http://www.redhat.com/support/manuals/RHL-7.1-Manual/customization-guide/ch-kickstart2.html
        Kickstart HOWTO
	http://www.linuxdoc.org/HOWTO/KickStart-HOWTO.html