필자가 경험한 과정들이 비슷한 작업이 필요한 사람들에게 도움이 되길 바랍니다.
참고: 이 글에서는 솔라리스10 08/07 버전을 사용했지만 03/05 이전의 버전에서도 별 무리 없이 동작할 것입니다.
필요 조건
root 혹은 시스템 관리자로 로그인 하시기 바랍니다.
또한 여러분의 부트 서버를 DHCP 서버로 설정하시기 바랍니다. 필자의 머신의 경우는 DHCP 를 다른 서버에서 얻어오긴 했지만 고정 IP 들을 등록했기 때문에 이러한 과정은 필요치 않았습니다.
또한 tftp
와 nfs
서비스를 실행해야 합니다. 솔라리스10을 설치할때 시작 초기에 NFS 를 활성화 하였지만 tftp
는 서비스를 생성해 주어야 했습니다. 다행이도 이것은 매우 쉽습니다. 왜냐하면 거의 설정이 되어 있기 때문입니다. 여러분이 해야 할일은 단지 아래와 몇가지 변경 만을 수행하는 것입니다:
1. inetd.conf
파일을 수정합니다. 만약 vi
에 익숙하다면 그것을 사용하시기 바랍니다. 그렇지 않다면 다른 텍스트 에디터를 사용하셔도 됩니다. 필자의 머신은 모니터 혹은 키보드가 꼽혀 있지 않았기 때문에 SSH 터미널을 이용해서 수행 하였습니다.
# cd /etc # vi inetd.conf
2. 파일의 아래쪽으로 스크롤을 내리면 다음과 같은 라인을 발견하실 수 있습니다:
# TFTPD - tftp server (primarily used for booting) # tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
3. 마지막줄의 커멘트를 제거 함으로써 다음과 같이 문서를 저장합니다:
tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
4. :wq
를 입력한 후에 파일을 저장하고 vi
를 종료시킵니다.
5. inetconv
를 실행하여 서비스를 SMF 에 등록시킵니다:
# inetconv
6. 그다음에 svcadm
을 실행하여 서비스를 활성화 시킵니다. 이제 준비가 다 되었습니다:
# svcadm enable tftpd
이제 ZFS 스토리지 풀을 설정하고, 파일을 복사 한다읍에 설정 파일들을 설정하는 작업들이 남았습니다.
ZFS 스토리지 풀 설정하기
솔라리스 점프스타트 서버에 새로운 풀을 생성하였습니다:
# zpool create install c1t7d0
서버에 몇몇 사용하지 않는 예비 디스크들이 있었습니다. 그래서 이것을 솔라리스 점프스타트 서버 풀로 만들었고 그 다음에 share 들을 만들었습니다.
# zfs create install/config # zfs create install/boot # zfs set sharenfs=ro,anon=0 install # zfs set sharenfs=ro,anon=0 install/config # zfs set sharenfs=ro,anon=0 install/boot
다음으로 모든 디렉토리들이 존재 하는지 그리고 모든 것들이 정확하게 공유 되고 있는지 확인하였습니다:
# cd /install # ls -l drwxr-xr-x 4 root sys 5 Jan 8 10:25 boot drwxr-xr-x 2 root sys 9 Jan 8 10:16 config # # share - /install ro,anon=0 "" - /install/config ro,anon=0 "" - /install/boot ro,anon=0 ""
파일 복사하기
이제 솔라리스 HW807 SPARC 의 첫번째 CD 를 썬 엔터프라이즈 3500 서버에 집어 넣었습니다. cdrom
디렉토리로 이동한 다음에 setup_install_server
스크립트를 수행하였습니다:
# cd /cdrom/cdrom0/s0/Solaris_10/Tools # ./setup_install_server /install
스크립트가 실행되었고 필요한 파일들을 /install
디렉토리로 복사 하였습니다. 완료 후에는 루트 디렉토리로 이동 한 다음에 CD 를 배출 시켰습니다:
# cd / # eject cdrom
이제 두번째 CD 를 CD-ROM 에 넣고 Tools
디렉토리로 이동 해서 add_to_install_server
스크립트를 수행하였습니다:
# cd /cdrom/cdrom0/Solaris_10/Tools # ./add_to_install_server /install
5개의 CD 에 모든 파일들을 복사할때 까지 유사한 단계들을 진행하였고 언어 CD 또한 /install
디렉토리에 복사 되었습니다.
다시 디스크 1번을 Cd-ROM 에 집어 넣은 다음에 Misc
디렉토리로 이동하였습니다. 그다음 이후 단계에서 생성할 profile
과 rules
파일들을 체크하기 위해서 체크 스크립트를 복사 하였습니다:
# cd /cdrom/cdrom0/s0/Solaris_10/Misc/jumpstart_sample # cp check /install/config # cd /install/config
설정 파일들 설정하기
이제 부터가 재미있는 부분으로써 실질적으로 솔라리스 점프스타트에 필요한 파일들을 작성하는 시간입니다.
여러분은 디스크에서 샘플들을 복사해서 여러분에게 맞게 수정할 수 있습니다. 필자는 필자의 시스템의 용도를 알고 있기 때문에 고유의 파일들을 작성하였고 해당 파일들을 검사하고 rules.ok
파일을 생성하기 위해 체크 스크립트를 수행 하였습니다.
제일 처음 생성한 파일은 sysidcfg
입니다. 이 파일은 클라이언트가 초기 부팅 후에 어떠한 셋팅을 가질 지를 알려 줍니다. 만약 이 파일에 정보를 추가하지 않는다면 시스템은 모든 필요한 정보를 여러분에게 요청하게 됩니다. 필자는 vi
를 이용하여 /install/config
에 파일을 생성하였습니다:
# vi sysidcfg system_locale=en_US.ISO8859-1 timezone=US/Pacific timeserver=localhost terminal=vt100 name_service=NONE security_policy=NONE root_password=<encrypted password from /etc/shadow> network_interface=dmfe0 {hostname=<hostname of client> netmask=<your network's netmask> protocol_ipv6=no default_route=<your gateway>} :wq
그 다음은 rules
파일 입니다. 이 파일은 필자의 설정에서는 아주 간단합니다. 왜냐하면 오직 하나의 서버를 설정하기 때문입니다. rules
파일로 여러가지 작업들을 할 수 있습니다. 만약 솔라리스 CD에 포함되어 있는 샘플 rules
파일을 보신다면 이것을 어떻게 활용할 수 있을지 아이디어를 얻으실 수 있을 것입니다. 다음은 필자가 사용한 설정 입니다.
# vi rules hostname <hostname of client> - profile - :wq
begin
스크립트와 finish
스크립트를 사용하지 않는 이상 두개의 "-" 심볼은 반드시 위의 코드에 존재해야 합니다. 만약 사용하는 경우에는 "-" 심볼의 위치에 해당 스크립트들의 이름을 입력 합니다.
클라이언트를 부팅 하기 전에 여러분의 스크립트의 퍼미션을 확인 한 후에 chmod 755
를 수행 하시기 바랍니다. 이에 대한 좀 더 자세한 정보는 솔라리스 CD 의 /Solaris_10/Misc/jumpstart_samples
아래에서 샘플 rules
스크립트를 통해서 좀 더 얻으실 수 있습니다.
그 다음에 여러분은 rules
파일에 여러분이 정의한 대로 여러분의 profile
파일을 생성해야 합니다. 여러분은 rules
파일에 정의한 그대로 profile 파일의 이름을 사용해야 합니다. 필자는 profile 을 rules
파일에 지정했었기 때문에 파일의 이름은 profile 입니다.
필자의 profile
파일은 클라이언트의 파티션 사이즈, 설치 타입 및 클라이언트 타입까지 설정이 되어 있습니다.
다시 한번 vi
를 이용해서 파일을 생성하였습니다. 그러나 솔라리스 CD 안에는 여러가지 샘플들이 존재 함으로 여러분들은 필요에 맞게 수정해서 사용하실 수 있습니다. 중요한 것은 정확한 설치 타입을 아는 것입니다.
cluster
옵션은 소프트웨어 그룹에 따른 설치 타입을 지정 합니다. 다음의 테이블은 사용 가능한 값들을 나타내고 있습니다.
표 1: 소프트웨어 그룹과 그룹 이름들의 값
소프트웨어 그룹 |
그룹 이름 |
---|---|
Reduced Network Support Software Group |
SUNWCrnet |
Core System Support Software Group |
SUNWCreq |
End User Solaris Software Group |
SUNWCuser |
Developer Solaris Software Group |
SUNWCprog |
Entire Solaris Software Group |
SUNWCall |
Entire Solaris Software Group Plus OEM Support |
SUNWCXall |
필자는 다음과 같이 설정 하였습니다:
# vi profile install_type initial_install cluster SUNWCXall partitioning explicit filesys c0t0d0s0 14000 / filesys c0t0d0s1 2048 /var filesys c0t0d0s3 1024 swap filesys c0t0d0s7 19500 /export/home system_type standalone :wq
다음 단계는 파일들에 어떠한 실수도 존재하지 않는지 확인 하는 것입니다. 확인을 위해 check
스크립트를 수행 하였습니다.
# ./check
만약 아무런 이상이 없다면 여러분은 /install/config
디렉토리에 rules.ok
라 불리는 파일을 가지게 될 것입니다.
# ls -l -rwxr-xr-x 1 root root 59701 Jan 8 10:16 check -rw-r--r-- 1 root root 232 Jan 8 10:14 profile -rw-r--r-- 1 root root 32 Jan 8 10:15 rules -rw-r--r-- 1 root root 57 Jan 8 10:16 rules.ok -rw-r--r-- 1 root root 278 Jan 8 09:33 sysidcfg
올바르게 부팅 되도록 서버 설정하기
이제 실제로 부팅될 서버를 실제로 설정하는 재미있는 작업을 수행 합니다. 여러분은 클라이언트의 MAC 주소를 얻어와야 합니다. 여기에는 두가지 방법이 존재 합니다: 클라이언트에서 ifconfig -a
를 실행하거나 openboot
프롬프트에서 얻어오는 두가지 방법이 존재 합니다.
MAC 주소를 얻어온 다음 해당 정보를 여러분의 /etc/ethers
파일에 추가시켜 줍니다. 만약 이 파일을 가지고 있지 않다면 생성해 줍니다:
# cd /etc # vi ethers 0a:3b:ba:f5:d1:e6 <client hostname> :wq
그다음 여러분의 클라이언트를 /etc/hosts
파일에 추가 시켜 줍니다:
# vi hosts <ip.address.for.client> <client hostname> :wq
이제 부트 서버를 생성해야 합니다. CD-ROM 에 솔라리스10 디스크 1번을 집어 넣은 다음에 setup_install_server
를 다시 실행 합니다. 이번엔 -b
옵션과 /install/boot
디렉토리 옵션을 줍니다:
# cd /cdrom/cdrom0/s0/Solaris_10/Tools # ./setup_install_server -b /install/boot
위의 작업이 완료 되면 CD 를 배출 합니다:
# cd / # eject cdrom
클라이언트 설정하기
이제 클라이언트를 설정할 시간입니다. 아래와 같은 커맨드를 수행 하였습니다. 필자는 CD를 복사한 /install
디렉토리에서 직접적으로 실행 하였습니다.
주의: 아래의 작업은 CD 에서가 아닌 설치 이미지에서 반드시 수행 해야 합니다. 여러분이 커맨드를 실행한 위치가 클라이언트가 부트 이미지를 찾을 위치이기 때문입니다. 만약 CD 에서 설치 한다면 클라이언트는 CD 에서 부트 이미지를 찾을 것이고 여러분이 NFS 를 통해서 CD-ROM 을 공유하고 있지 한다면 커맨드는 실패할 것입니다.
# cd /install/Solaris_10/Tools # ./add_install_client -e 0a:3b:ba:f5:d1:e6 -s <server hostname>:/install -c <server hostname>:/install/config -p <server hostname>:/install/config <client hostname> sun4u
이전의 커맨드들은 필요한 모든 파일들을 생성하였습니다. 그러므로 클라이언트는 부팅이 가능하고 솔라리스 설치를 시작하는데에 필요한 모든 것들을 찾을 수 있습니다. 아래는 플래그가 의미하는 바를 정리한 것입니다:
-e
는 클라이언트의 MAC 주소를 지정합니다.-s
는 서버 설치 파일들의 위치를 지정합니다.-c
는 솔라리스 점프스타트 설정 장소를 지정합니다.-p
는sysidcfg
파일의 위치를 지정합니다.sun4u
는 클라이언트의 아키텍쳐를 지정합니다.
클라이언트 부팅하기
이제 클라이언트를 부팅할 준비가 되었습니다.
주의: 필자의 썬 Netra X1 서버에서 필자는 lights on management (LOM) 콘솔을 # 을 눌러서 들어갈 수 있었습니다. 그리고 break
를 LOM>
프롬프트에 입력하였습니다. OpenBoot 프롬프트로 들어가기 위해 필요한 어떤 작업이라도 수행하시기 바랍니다.
클라이언트에서 OpenBoot OK
프롬프트로 들어간 다음에 다음의 커맨드를 수행 합니다:
ok> boot net - install
필자가 해당 커맨드를 실행하였을때 클라이언트는 서버에 접속하였고 OS 를 다운로드한 다음에 설치 하였습니다. 필자가 해야할 일은 단지 기본 IPv4 설정을 사용하도록 알려 주는 것 뿐이었고 나머지는 알아서 수행 되었습니다.
저자에 관하여
Lucas Williams 는 UNIX 와 마이크로소프트 윈도우즈 시스템 관리자로 15년 이상 일해 왔습니다. 그는 리눅스, 솔라리스(2.6 부터 10 까지), 노벨 네트워킹, 마이크로 소프트 윈도우즈 NT 3.51 부터 서버 2008 까지의 다양한 경험이 있습니다. 스크립트 작성이 가능하고 프로덕션 환경에 배치하기전에 신기술들의 베타 테스트를 수행 합니다. 현재 그는 프로덕션 환경에서 서버를 배치할때 사용될 다양한 가상화 기술에 대해 연구하고 있습니다.
이 글의 영문 원본은
Setting Up JumpStart With Solaris 10 OS for SPARC Platforms and ZFS
에서 보실 수 있습니다.
"관리자코너" 카테고리의 다른 글
- 솔라리스 10 OS 또는 마이크로소프트 윈도우즈용 DHCP 클라이언트 설정 (댓글 0개 / 트랙백 0개) 2008/07/16
- 솔라리스10에서 PostgreSQL 를 설정 및 실행하는 방법 (댓글 26개 / 트랙백 1개) 2007/09/17
- 솔라리스 서비스 관리 설비 - 서비스 개발자를 위한 소개 (댓글 1개 / 트랙백 0개) 2006/08/23
- rsync 와 sudo 를 이용한 원격 업데이트 (댓글 0개 / 트랙백 0개) 2008/03/11
- 맥북 13인치 코어 2 듀오에 솔라리스10 설치하기 (댓글 2개 / 트랙백 0개) 2008/06/16
- 솔라리스 ZFS 환경에서의 NFS 퍼포먼스 관리 (댓글 0개 / 트랙백 0개) 2008/05/19
- USB로 부팅하기 - 설치 (댓글 28개 / 트랙백 1개) 2007/08/20
- 솔라리스 서비스 관리 설비 - 서비스 개발자를 위한 소개 (댓글 2개 / 트랙백 0개) 2006/09/23
- 멀티스레드 시스템의 리소스를 최대한 사용하기 위한 기본 예약 클래스 설정 (댓글 0개 / 트랙백 0개) 2008/07/15
- 솔라리스 8 마이그레이션 어시스턴트 (댓글 0개 / 트랙백 0개) 2008/03/13