BigAdmin System Administration Portal
Perl 스크립트로 Sun Java System Directory Server를 정확하게 설치 및 구성
Print-friendly VersionPrint-friendly Version

번역 책임의 한계:
본 기사는 어느 정도의 인간의 간섭과 사후 편집을 포함하여 컴퓨터 소프트웨어 프로그램으로 번역되었습니다. 번역은 독자의 편리함을 위해 “있는 그대로” 제공되며, Sun은 번역된 문장 또는 페이지 전체로서의 정확성 또는 완전성에 대한 아무런 대표성이 없으며 어떠한 책임도 지지 않습니다. 사이트와 툴의 사용에 관한 추가 고지 사항에 대해서는 본 사이트의 이용 약관을 참조하십시오.

 
 
Perl 스크립트로 Sun Java System Directory Server를 정확하게 설치 및 구성

Sun Java System Directory Server Enterprise Edition 6.2(앞으로는 Directory Server라고 칭함)에는 향상된 명령줄 인터페이스(CLI)가 있습니다. 이 기사에서는 CLI와 Perl 스크립트를 사용하여 Directory Server의 설치 및 구성 프로세스를 자동화하여 오류를 방지하면서 시간과 노력을 절감하는 방법에 대해 살펴봅니다.

참고: 이 기사에 설명된 구성은 예제일 뿐입니다. 이 아키텍처에는 5개의 Directory Server 인스턴스와 서버당 5개의 접미어가 사용되고 있으며, 여러분의 배포에 적당하지 않을 수도 있습니다.

목차
 
배포 예
Perl 방법
전제 조건
Perl 스크립트 편집
기타 편집
스크립트 구문
결론
참조
 
배포 예

완전히 메시된 다중 마스터 복제(MMR)에 구성된 5개의 Directory Server 인스턴스를 배포하고, 각 인스턴스에 5개의 접미어가 있다고 가정합니다. 또한 다음 작업을 수행하게 될 것입니다.

  • 암호 적합성, 로그 속성 및 인덱스와 같은 각 서버 인스턴스의 관련 속성 설정

  • 액세스 제어 인터페이스(ACI)와 사용자 정의 스키마 추가

  • 25개의 모든 복제 약정 만들기

  • 간단한 스크립트로 1000개의 테스트 사용자 로드

관리 콘솔에서든 CLI에서든 상관없이 위의 작업을 각각 수행하는 데 몇 일이 걸릴 수 있는 등 작업에 많은 시간이 소요됩니다.

Perl 방법

이 시간 소모적인 일에 대한 효율적이고 효과적인 방법은 이 Perl 스크립트를 실행하는 것입니다. 이 스크립트는 다음 작업을 모두 수행하고, Directory Server를 구성 및 배포합니다.

  1. 5개의 Directory Server 인스턴스 만들기

  2. Directory Service Control Center(DSCC)에 각 인스턴스 등록

  3. 각 서버 인스턴스에 사용자 정의 스키마 추가

  4. 서버당 5개의 접미어 만들기

  5. 각 접미어에 복제 사용

  6. 사용자 정의 인덱스 만들기

  7. 사용자가 암호가 아닌 객체를 수정할 수 있게 하는 ACI 만들기

  8. 가져오기 캐시를 200MB로 설정

  9. 로그 회전 시간과 간격 설정

  10. 암호 호환성을 DS6-migration-mode로 설정

  11. 5개의 모든 인스턴스의 접미어 5개에 모두 해당하는 복제 약정 만들기

  12. 복제 초기화

  13. 사용자 데이터 가져오기

8GB의 메모리와 프로세서 두 개로 구성된 Solaris 10 OS의 SunFire V240 Server에 5개의 모든 Directory Server 인스턴스가 24분 이내에 위의 요구 사항을 모두 따르도록 구성되었음을 테스트를 통해 볼 수 있습니다. 여기에서 로그는 스크립트를 통해 생성됩니다.

또한 가상 시스템에서 다음 버전의 Solaris OS의 초기 배포판을 실행하는 MacBook Pro에서도 테스트를 수행했습니다. 스크립트는 31분 만에 실행되었습니다.

그림 1은 완전히 메시된 MMR에 있는 6개의 서버 인스턴스 예를 보여줍니다.

그림 1: 완전히 메시된 MMR에 있는 6개의 Directory Server 인스턴스(확대하려면 이미지를 클릭하십시오.)
 

전제 조건, 필수 편집 및 스크립트 구문에 대해 읽어 보십시오.

전제 조건

먼저 다음을 수행합니다.

  1. Directory Server의 ZIP 버전을 설치합니다.

    이 기사에서는 다음과 같이 /var/opt/dsee에 Directory Server가 설치되어 있다고 가정합니다.

    • dsadmdsconf/var/opt/dsee/ds6/bin에 있음
    • dsccreg/var/opt/dsee/dscc6/bin에 있음

  2. 브라우저 인터페이스 DSCC를 만들고 설치하여 실행되는지 확인합니다.

  3. Common Agent Container(CACAO)를 설치하고 실행되는지 확인합니다.
Perl 스크립트 편집

다음으로, Perl 스크립트를 편집합니다.

  1. 스크립트에서는 Directory Server의 ZIP 설치를 가정하므로, Directory Server의 설치 위치에 따라 ldapbasedsccbase 환경 변수를 적절히 편집합니다.

    # Location of Directory Server commands
    
    my $ldapbase = "/var/opt/dsee/ds6/bin/";
    
     
    # Location of DSCC commands
    
    my $dsccbase = "/var/opt/dsee/dscc6/bin/";
    
     
  2. confpath 변수를 편집하여 구성 파일 경로를 지정합니다.

    # Path for configuration data
    
    my $confpath = "/export/home/script/";
    
     
  3. numsuffix 변수를 편집하여 Directory Server에 구성할 접미어 수를 지정합니다.

    # Number of suffixes
    
    # This is the number of suffixes stored in the two-dimensional array below.
    
    # This example contains five suffixes, which translate to four columns since arrays begin
    at column 0, not 1.
    
    my $numsuffix;
    
    $numsuffix = 5;
    
     
  4. Directory Server 자격 증명을 편집합니다.

    참고: 암호가 포함되어 있는 파일의 경우에는 위의 2단계에서 경로가 앞에 와야 합니다.

    ### Directory Server credentials
    
    # Directory Server manager login name
    
    my $dm="";
    
    $dm = '"cn=directory manager"';
    
    # File that contains the Directory Server manager password
    
    my $dmpassfile="";
    
    $dmpassfile = $confpath."dman.txt";
    
     
  5. instdir 변수를 편집하여 Directory Server 인스턴스의 위치, 즉 Directory Server 인스턴스의 디렉토리를 지정합니다.

    # Location of instances
    
    my $instdir = "/var/opt/dsee6/instances/";
    
     
  6. 사용자 데이터가 있는 LDIF 파일과 사용자 정의 스키마가 포함된 파일을 편집하여 각 Directory Server 인스턴스에 이 파일들을 로드합니다.

    ### LDIF files
    
    # Custom schema added to each Directory Server instance
    
    my $schema="";
    $schema=$confpath."customschema.ldif";
    
    # LDIF file with user data to be imported into each Directory Server instance
    
    my $users="";
    $users="users.ldif";
    
     
  7. 다음 세 개의 배열을 편집합니다.

    • Directory Server 인스턴스 이름이 있는 1차원 배열(파일 시스템에 나타나는 모습)

    • 복제 토폴로지에서 각 접미어의 고유 번호가 있는 1차원 배열

    • 각 인스턴스에 대한 각 접미어 이름과 보안된 포트와 보안되지 않은 포트 이름이 있는 2차원 배열

    # One-dimensional array of the Directory Server instances
    
    my @instances = ("ins1" ,"ins2", "ins3", "ins4","ins5");
    
    # One-dimensional array of the replica IDs to ensure a unique replica ID for each suffix
    
    my @replicaIDs = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25);
    
    # Two-dimensional array of the suffixes and related data
    # Each column contains unique values for a suffix
    # Row 0 - suffix name
    # Row 1 - LDAP port
    # Row 2 - LDAPS port
    
    my @ldapdata =
    (["dc=example,dc=com","ou=usa,dc=example,dc=com","ou=eu,dc=example,dc=com","ou=aipac,dc
    =example,dc=com","ou=americas,dc=example,dc=com"],
    [11389,2389,3389,4389,5389],
    [11636,2636,3636,4636,5636],);
    
     
기타 편집

마지막으로 배포에 필요한 실제 구성으로 스크립트 본문을 편집합니다("Perl 방법"의 1-13단계).

스크립트 구문

다음은 스크립트 구문입니다.

#perl ds6deplconf.pl 호스트 이름

여기서 호스트 이름은 Directory Server를 실행하고 배포하며 구성하는 호스트의 짧은 이름입니다(정규화된 이름이 아님). 이에 대한 예는 다음과 같습니다.

#perl ds6deplconf.pl solaris-devx

Directory Server 인스턴스를 삭제하려면 cleanup.sh를 실행하고 재배포할 Perl 스크립트를 다시 실행하기만 하면 됩니다.

결론

이 기사에서 제안한 대로 자동화를 위해 Perl 스크립트를 실행하면 반복되는 수동 작업을 더 이상 수행할 필요가 없으며, 정확성과 통일성이 보장됩니다. 한 번 사용해 보십시오.

참조
BigAdmin
  
 
BigAdmin Upgrade Hub