วิธีโอนย้าย LDAP (ฐานข้อมูลสคีมาการกำหนดค่า) ไปยังเครื่องอื่น


16

ฉันใช้ openldap 2.4.40 และฉันจำเป็นต้องย้ายฐานข้อมูล ldap ที่มีอยู่การกำหนดค่าและสคีมา (โดยทั่วไปทุกอย่างเกี่ยวกับเซิร์ฟเวอร์ ldap) ไปยังเครื่องใหม่

ปัญหาคือฉันใช้การกำหนดค่า cn = config ไม่ใช่ไฟล์ slapd.conf เก่าอีกต่อไป

เอกสารที่จัดทำโดย openldap และเว็บไซต์บุคคลที่สามอื่น ๆ จะช่วยในการโยกย้ายเซิร์ฟเวอร์ LDAP slapd.conf ไม่ใช่เซิร์ฟเวอร์ LDAP ที่มีไฟล์การกำหนดค่า cn = config ที่ใหม่กว่า

และฉันยังมี schema ใหม่ (จากประเภทและ objectclass) มีวิธีการโยกย้ายเหล่านี้ไปยังเครื่องใหม่ได้อย่างง่ายดายที่สุด?

ฉันต้องการวิธีอื่นนอกเหนือจากการกำหนดค่าใหม่และเพิ่มสคีมาของฉันด้วยตนเองทีละเครื่องในเครื่องใหม่

สิ่งนี้จะทำโดยมีเจตนาที่จะปิดเครื่องเก่าน่าจะเป็นไปได้

TL; DR มีวิธีใดที่จะย้ายฐานข้อมูล LDAP, schema, การกำหนดค่าจากเซิร์ฟเวอร์ LDAP 1 ไปยังเซิร์ฟเวอร์ LDAP ใหม่โดยสะดวกโดยมีเจตนาที่จะปิดเครื่องเก่า

ขอขอบคุณ.

* โพสต์คำตอบด้านล่าง

- จูลิโอ


2
คุณควรโพสต์โซลูชันเป็นคำตอบไม่ใช่การแก้ไขคำถามของคุณ
สเวน

คำตอบ:


17

การแก้ไขปัญหา :

ดังนั้นนี่คือสิ่งที่ฉันทำเพื่อให้งานนี้

  1. หยุด Slapd บนเซิร์ฟเวอร์หลัก
  2. ฐานข้อมูล Slapcat จากเซิร์ฟเวอร์หลัก (มี 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. หยุด slapd บนเซิร์ฟเวอร์ใหม่
  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

* แก้ไข: อย่างใดคำสั่งเหล่านั้นจะไม่ทำงานในวันที่ 2 ของฉัน .... และพยายามต่อไป ดังนั้นคำสั่งที่เหมาะสมที่ฉันยืนยันว่ามันใช้งานได้จริง

  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) ฉัน chown มันเพื่อ openldap และ chmod เป็น 755

เปลี่ยนสิทธิ์ในโฟลเดอร์ / var / lib / ldap (chown และ chmod) เป็น openldap ด้วย

หากคุณมีใบรับรองสำหรับการเชื่อมต่อ TLS คัดลอกใบรับรองและคีย์จากเซิร์ฟเวอร์เก่าไปยังเซิร์ฟเวอร์ใหม่ไปยังตำแหน่งที่แน่นอนเดียวกัน เปลี่ยนการอนุญาตในสถานที่

  1. เริ่ม slapd

และมันควรจะดีไป

ความหวังนี้ช่วยผู้อื่น


ฉันมีปัญหาเกี่ยวกับการอนุญาตไฟล์ฐานข้อมูลใน / var / lib / ldap ซึ่งจำเป็นต้องเปลี่ยนเป็นเจ้าของ ldap นอกเหนือจากนั้นมันราบรื่นมาก
sheldonkreger

ดีใจที่มันทำงานได้ดีสำหรับคุณ
J_LDAP

สิ่งนี้ต้องการ upvotes มากขึ้น ฉันกำลังตามล่าและทดสอบเป็นเวลา 2 สัปดาห์เพื่อให้การตั้งค่าของฉันทำงาน ขอบคุณ
hanzo2001

ดีใจที่โพสต์ของฉันสามารถช่วยเหลือผู้อื่นได้
J_LDAP

ในกรณีของฉันเฉพาะ schema ที่ทำงานตามที่คาดไว้ข้อมูลไม่ได้ถูกคัดลอก ในความเป็นจริงชุดข้อมูล / var / lib / ldap บนปลายทางไม่มีสตริงที่เกี่ยวข้องกับผู้ใช้ ... ดูเหมือนว่าไม่มีอะไรเกิดขึ้น ฉันต้องคัดลอกฐานข้อมูลด้วยตนเองใน / var / lib / ldap จากต้นทางไปยังเครื่องปลายทาง ฉันติดตามserverfault.com/questions/227813/openldap-replication-problem/…
Fabiano Tarlao

6

ส่งออกต้นไม้ทั้งสอง ( cn=configและข้อมูลปกติของคุณ) ไปยัง LDIF แล้วนำกลับมาที่เซิร์ฟเวอร์ใหม่ ( cn=configก่อน) เสร็จสิ้น

นอกจากนี้ยังcn=configเป็นเพียงชุดของไฟล์ LDIF และอาจเป็นไปได้ที่จะคัดลอกคอลเลกชันนี้ไปยังตำแหน่งที่สัมพันธ์กันบนเซิร์ฟเวอร์ใหม่ (ในขณะที่slapdไม่ได้ทำงาน)


ฉันจะส่งออกได้อย่างไร สิ่งที่เกี่ยวกับสคี (objectclass ใหม่, ขอบคุณสำหรับคำตอบ
J_LDAP

สกีมาควรกำหนดไว้ในcn=schema,cn=config(หรืออะไรทำนองนั้น) และจะอยู่ในไฟล์ LDIF
สเวน

ตกลงขอบคุณ fot คำตอบ ฉันจะลองอีกครั้งในภายหลัง ขอบคุณมาก.
J_LDAP
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.