LDAP (데이터베이스, 스키마, 구성)를 다른 시스템으로 마이그레이션하는 방법


16

openldap 2.4.40을 사용하고 있으며 기존 LDAP 데이터베이스, 구성 및 스키마 (기본적으로 LDAP 서버와 관련된 모든 것)를 새 컴퓨터로 마이그레이션해야합니다.

문제는 더 이상 이전 slapd.conf 파일이 아닌 cn = config 구성을 사용한다는 것입니다.

openldap 및 기타 타사 웹 사이트에서 제공하는 설명서는 최신 cn = config 구성 파일이있는 LDAP 서버가 아닌 slapd.conf LDAP 서버를 마이그레이션하는 데 도움이됩니다.

또한 새로운 스키마 (속성 유형 및 객체 클래스)가 있으며 가능한 한 쉽게 새로운 시스템으로 마이그레이션 할 수 있습니까?

스키마를 하나씩 재구성하고 새 컴퓨터에 하나씩 추가하는 것 외에 다른 방법이 필요합니다.

이것은 오래된 기계를 끄려는 의도로 수행됩니다.

TL; DR 기존 머신을 끄려는 의도로 LDAP 데이터베이스, 스키마, 구성을 1 개의 LDAP 서버에서 새 LDAP 서버로 편리하게 마이그레이션 할 수있는 방법이 있습니까?

감사합니다.

* 아래 답변 게시

-훌리오


2
솔루션을 질문에 대한 편집이 아니라 답변으로 게시해야합니다.
Sven

답변:


17

해결책 :

이 작업을 수행하기 위해 수행 한 작업은 다음과 같습니다.

  1. 주 서버에서 Slapd 중지
  2. 주 서버의 슬랩 캣 데이터베이스 (내 보내야 할 데이터베이스가 2 개 있습니다. "-n"태그를 사용합니다.

    slapcat -n 0 -l (config file location)
    

이것은 모든 스키마와 cn = config를 내보내고

    slapcat -n 1 -l <database backup ldif path>

켜면 LDAP에 보관 한 모든 사용자 데이터가 내보내집니다.

  1. SCP 2 ldif 파일을 새 서버에 저장하십시오 (서버에 LDAP를 설치하고 구성을 거의 동일하게 유지하여 쉽게 구성 할 수 있도록하십시오)
  2. 새 서버에서 충돌을 중지하십시오.
  3. 폴더의 내용을 삭제

    /etc/ldap/slapd.d
    
  4. slapadd를 사용하여 구성을 새 서버로 가져 오기

    slapadd -n 0 -l (config ldif location)
    

    -n 0은 LDAP에 구성을 다시 추가하기위한 것입니다.

    slapadd -n 1 -l (database ldif location)
    

    -n 1은 데이터베이스를 LDAP에 다시 추가하기위한 것입니다.

* 편집 : 어떻게 든 그 명령이 내 2nd 3rd .... 등에서 작동하지 않습니다. 내가 제대로 작동하는지 확인한 올바른 명령은

  slapadd -n 0 -F /etc/ldap/slapd.d -l <config backup ldif path>

  slapadd -n 1 -l <data backup ldif path>
  1. /etc/ldap/slapd.d 폴더 (chown 및 chmod)에서 권한을 변경하십시오. 나는 openldap에 그것을 chown하고 755로 chmod

/ var / lib / ldap 폴더 (chown 및 chmod)의 권한을 openldap으로 변경

TLS 연결을위한 인증서가있는 경우 인증서와 키를 이전 서버에서 새 서버로 동일한 정확한 위치에 복사하십시오. 장소에 대한 권한을 변경하십시오.

  1. 때리고 시작합니다.

가고 좋을 것입니다.

이것이 다른 사람들을 돕기를 희망합니다


소유자 ldap로 전환해야하는 / var / lib / ldap의 데이터베이스 파일에 대한 권한에 문제가있었습니다. 그 외에는 매우 매끄 럽습니다.
sheldonkreger

다행이 당신을 위해 잘 작동
J_LDAP

더 많은 투표가 필요합니다. 설정이 작동하도록 2 주 동안 사냥하고 테스트했습니다. 감사합니다
hanzo2001

내 게시물이 다른 사람을 도울 수있어서 기쁘다
J_LDAP

필자의 경우 스키마 만 예상대로 작동했으며 데이터가 복사되지 않았습니다. 실제로 대상의 데이터 세트 / var / lib / ldap에 사용자와 관련된 문자열이 포함되어 있지 않습니다. 아무 일도 없었습니다. 소스에서 대상 컴퓨터로 / var / lib / ldap의 데이터베이스를 수동으로 복사해야했습니다. 나는 다음 serverfault.com/questions/227813/openldap-replication-problem/...
파비아누 Tarlao

6

두 트리 ( cn=config및 일반 데이터)를 LDIF로 내보내고 새 서버에서 cn=config먼저 가져옵니다 ( 먼저). 끝난.

또한 cn=config기본적으로 LDIF 파일의 모음 일 뿐이며이 모음을 새 서버의 동일한 상대 위치 ( slapd실행하지 않는 동안 ) 에 복사하는 것이 가능할 수도 있습니다 .


정확히 어떻게 내보내나요? 스키마 (새 객체 클래스, 속성 유형)는 어떻습니까? 답변 주셔서 감사합니다
J_LDAP

스키마 cn=schema,cn=config (또는 이와 유사한) 정의 되어야 하며 LDIF 파일에 포함됩니다.
Sven

알았어 고마워 대답. 나중에 다시 시도하겠습니다. 정말 고맙습니다.
J_LDAP
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.