BigAdmin System Administration Portal
SPARC 플랫폼 및 ZFS용의 Solaris 10 OS로 JumpStart 설치
Print-friendly VersionPrint-friendly Version
This content is submitted by a BigAdmin user. It has not been reviewed for technical accuracy by Sun Microsystems, though it may have been lightly edited to improve readability. If you find an error or would like to comment on the article, please contact the submitter or use the comment field at the bottom of the article. Community submissions may not follow Sun trademark guidelines. For information on Sun trademarks, please see http://www.sun.com/suntrademarks/.
 
 

SPARC 플랫폼 및 ZFS용의 Solaris 10 OS로 JumpStart 설치

Lucas Williams, 2008년 1월

소개

제가 설치한 것은 SPARC 플랫폼 및 ZFS용의 Solaris 10 운영 체제를 실행하는 Sun Enterprise 3500 서버 한 대와 Sun Netra X1 서버라고 하는 클라이언트 시스템 한 대였습니다. 그리고 회사가 착수할 프로젝트를 위해 클라이언트에 Solaris 10 OS를 설치해야 했습니다.

제가 처리한 다음 설치 과정이 비슷한 작업을 해야 하는 사람들에게 도움이 되길 바랍니다.

참고: 제가 사용한 버전은 Solaris 10 08/07 릴리스였지만 03/05까지의 이전 버전도 사용할 수 있습니다.

목차

이 자료는 다음 항목으로 구성됩니다.

전제 조건

루트나 다른 시스템 관리자로 로그인해야 합니다.

또한 부트 서버는 DHCP 서버여야 합니다. 하지만 제 시스템의 경우 다른 서버에서 DHCP를 가져왔고 정적 IP로 서버 설정을 했기 때문에, 이 작업은 수행하지 않았습니다.

또한 tftpnfs 서버가 실행 중이어야 합니다. 제 서버에 Solaris 10 OS를 설치했을 때 저는 시작 시 NFS를 활성화했지만 tftp를 위한 서비스를 생성해야 했습니다. 운좋게도 대부분 이미 설정되어 있어서 작업이 굉장히 쉬웠습니다. 수행해야 할 작업은 다음과 같은 몇 가지 간단한 변경을 수행하는 것뿐입니다.

1. inetd.conf 파일을 편집합니다. vi를 사용하는 것이 훨씬 편하다면 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(Service Management Facility)에 서비스를 추가합니다.

# inetconv

6. 그런 다음 svcadm을 실행하여 서비스를 활성화하면 이제 이동할 수 있습니다.

# svcadm enable tftpd

이제 ZFS 저장소 풀을 설정하고, 파일을 복사하고, 구성 파일을 설정합니다. 재미있는 작업이 될 것입니다.

ZFS 저장소 풀 설정

저는 Solaris JumpStart 서버에 새 풀을 생성했습니다.

# zpool create install c1t7d0

서버에서 사용되지 않는 여분의 디스크가 있어서 이 디스크를 Solaris JumpStart 서버 풀로 만들었습니다. 그런 다음 공유를 설정했습니다.

# 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   ""

파일 복사

Sun Enterprise 3500 서버의 CD-ROM 드라이브에 Solaris 10 HW807 SPARC 중 첫 번째 CD를 넣었습니다. 그런 다음 CD의 cdrom 디렉토리로 변경하여 setup_install_server 스크립트를 실행했습니다.

# cd /cdrom/cdrom0/s0/Solaris_10/Tools
# ./setup_install_server /install

스크립트가 실행되면서 /install 디렉토리에 필요한 파일이 복사되었습니다. 작업이 완료된 후 루트 디렉토리로 변경하고 CD를 꺼냈습니다.

# cd /
# eject cdrom

그런 다음 CD-ROM 드라이브에 두 번째 CD를 넣고 Tools 디렉토리로 변경한 다음 add_to_install_server 스크립트를 실행했습니다.

# cd /cdrom/cdrom0/Solaris_10/Tools
# ./add_to_install_server /install

5개의 OS CD에 있는 파일과 언어 CD가 모두 /install 디렉토리에 복사될 때까지 위의 단계를 비슷하게 수행했습니다.

Sun Enterprise 3500 서버의 CD-ROM 드라이브에 디스크 1을 다시 넣고 Misc 디렉토리로 변경했습니다. 그리고 다음 몇 단계에서 생성할 profilerules 파일을 확인하는 데 check 스크립트를 사용할 수 있도록 이 스크립트를 복사해 두었습니다.

# cd /cdrom/cdrom0/s0/Solaris_10/Misc/jumpstart_sample
# cp check /install/config
# cd /install/config

구성 파일 설정

이제부터는 실제로 Solaris JumpStart 서버가 실행되고 중지되도록 파일을 작성하는 재미있는 작업 부분입니다.

디스크에서 샘플을 복사하여 원하는 대로 적절하게 수정합니다. 시스템의 용도에 대해 알고 있었으므로 저만의 파일을 작성한 다음 check 스크립트를 실행하여 파일이 작동하는지 확인하고 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 파일에서 수행할 수 있는 작업은 매우 많습니다. Solaris CD에 포함된 샘플 rules 파일을 살펴보면 이 파일로 수행할 수 있는 작업에 대해 알 수 있습니다. 다음은 제가 사용했던 작업입니다.

# vi rules
hostname <hostname of client> - profile -

:wq

begin 스크립트와 finish 스크립트를 사용하지 않을 경우, 2개의 "-" 기호를 위 코드에서 사용해야 합니다. 이 경우 "-" 기호 위치에 여러분의 스크립트 이름을 넣게 됩니다.

클라이언트를 부트하기 전에 chmod 755를 사용하여 스크립트에 대한 사용 권한을 변경해야 합니다. 이에 대한 자세한 내용은 Solaris CD에서 /Solaris_10/Misc/jumpstart_samples의 샘플 rules 스크립트를 참조하십시오.

다음으로 rules 파일에 지정된 파일 이름을 사용하여 profile 파일을 만들어야 합니다. 이러한 항목들이 서로를 참조하는 방식을 살펴보면 매우 재미가 있습니다. 프로필 파일의 이름에는 rules 파일에 지정한 이름은 무엇이든 사용해야 합니다. profilerules 파일의 파일 이름으로 지정했으므로 제 파일의 이름은 profile입니다. profile 파일을 사용하면 클라이언트의 파티션 크기, 설치 유형 및 클라이언트 유형이 설정되는 방식이 지정됩니다.

다시 한 번 vi를 사용하여 파일을 만들었습니다. 하지만 Solaris CD에는 여러분의 필요에 맞게 편집할 수 있는 샘플 모음이 있습니다. 정확한 설치 유형을 아는 것이 중요합니다.

cluster 옵션을 사용하면 소프트웨어 그룹에 따라 설치 유형이 지정됩니다. 다음 표에서는 사용 가능한 값에 대해 설명합니다.

표 1: 소프트웨어 그룹 및 그룹 이름 값

축소된 네트워크 지원 소프트웨어 그룹
SUNWCrnet
코어 시스템 지원 소프트웨어 그룹
SUNWCreq
최종 사용자 Solaris 소프트웨어 그룹
SUNWCuser
개발자 Solaris 소프트웨어 그룹
SUNWCprog
전체 Solaris 소프트웨어 그룹
SUNWCall
전체 Solaris 소프트웨어 그룹(OEM 지원 포함)
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 프롬프트에서 얻는 2가지 방법을 사용할 수 있습니다.

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에 Solaris 10 OS용 디스크 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

위의 명령을 실행하면 필요한 모든 파일이 만들어집니다. 그러면 클라이언트가 부트를 수행하고, Solaris OS를 설치하는 데 필요한 모든 항목을 찾을 수 있습니다. 다음은 플래그의 의미에 대해 설명합니다.

  • -e는 클라이언트의 MAC 주소를 지정합니다.
  • -s는 서버의 설치 파일 위치를 지정합니다.
  • -c는 Solaris JumpStart 구성 위치를 지정합니다.
  • -psysidcfg 파일의 위치를 지정합니다.
  • sun4u는 클라이언트의 아키텍처를 지정합니다.

클라이언트 부트

이제 클라이언트를 부트하고 클라이언트에서 서버를 찾을 수 있습니다.

참고: Sun Netra X1 서버에서는 #을 누르고 LOM> 프롬프트에서 break를 입력하여 LOM(lights on management) 콘솔로 이동할 수 있었습니다. OpenBoot 프롬프트로 이동할 수 있도록 필요한 작업은 무엇이든 수행하십시오.

클라이언트의 OpenBoot OK 프롬프트에서 다음 명령을 실행합니다.

ok> boot net - install

제 경우 이 명령을 실행했을 때 클라이언트가 서버에 연결되고, OS를 다운로드하여 설치를 시작했습니다. 제가 수행했던 작업은 감지된 기본 IPv4 설정을 사용하라고 지시한 것 뿐이고, 재부트하여 콘솔 모드로 실행하도록 하는 등 나머지 작업은 클라이언트에서 모두 수행했습니다.

저자 정보

Lucas Williams는 15년이 넘게 UNIX와 Microsoft Windows 시스템 관리자로 일하고 있습니다. Linux, Solaris OS(릴리스 2.6부터 10까지), Novell Networking, Microsoft Windows NT 3.51부터 Microsoft Windows Server 2008에 이르기까지 다양한 사용 경력이 있습니다. 다양한 시스템을 쉽게 관리할 수 있도록 스크립트를 작성하고, 생산 환경에 새 기술을 배포하기 전에 해당 기술에 대한 베타 테스트도 수행합니다. 현재 생산 환경에서 서버를 배포하는 데 가상화를 사용할 수 있도록 다양한 방법으로 작업하고 있습니다.

The information and links on this page have been provided by a BigAdmin user. The submitter is solely responsible for such information and links. Sun is not responsible for the availability of external sites or resources, and does not endorse and is not responsible or liable for any content, advertising, products, or other materials on or available from such sites or resources. Sun will not be responsible or liable, directly or indirectly, for any actual or alleged damage or loss caused by or in connection with use of or reliance on the information posted here, or goods or services available on or through any external site or resource.
 
 
BigAdmin