Я перенес свою старую базу данных slapd на новый сервер, вот шаги, которые я предпринял:
1) на старом сервере запустить:
slapcat -n 0 -l config.ldif
slapcat -n 2 -l config.ldif
мне пришлось запустить slapcat -n 2 ... потому что с -n 1 я получаю slapcat: база данных не поддерживает необходимые операции.
2) скопируйте два файла ldif на новый сервер
3) установите openldap:
yum install -y openldap openldap-servers openldap-clients
4) редактируем config.ldif и меняем строчки
dn: olcDatabase={2}bdb,cn=config
olcDatabase: {2}bdb
быть
dn: olcDatabase={1}bdb,cn=config
olcDatabase: {1}bdb
5) запустите slapadd для двух файлов ldif:
slapadd -c -F /etc/openldap/slapd.d -n 0 -l config.ldif
В первый раз это дало мне ошибку о том, что olcOverlay не разрешен, поэтому я удалил строку для файла config.ldif, после чего все заработало.
slapadd -c -F /etc/openldap/slapd.d -n 1 -l data.ldif
это работало нормально.
6) запустите slapd, вот где моя проблема, slapd не запускается, и я получаю сообщение об ошибке:
olcDbDirectory: value #0: invalid path: Permission denied
config error processing olcDatabase={1}bdb,cn=config: olcDbDirectory: value #0: invalid path: Permission denied
мой olcDbDirectory в файле config.ldif установлен в / usr / local / openldap / ldap, и эта папка существует и принадлежит ldap: ldap, и ive даже пытался дать ему 777 разрешений, но я все равно получаю эту ошибку.
Я ожидал, что запустится slapd. Если бы кто-нибудь мог мне помочь, было бы замечательно, либо шаги, которые я мог пропустить, либо то, что я должен сделать, чтобы устранить эту ошибку.
Когда вы импортируете файл config.ldif, slapadd не перезаписывает существующий контент, развернутый при установке yum. Чтобы правильно импортировать конфигурацию, вы должны сначала удалить текущую конфигурацию:
rm -r /etc/openldap/slapd.d/cn=config*
sudo -u ldap slapadd -F /etc/openldap/slapd.d -n0 -l config.ldif
(Если вы бежите slapadd
как root, тогда вы должны chown -R ldap:ldap /etc/openldap/slapd.d
потом. sudo -u ldap
избегает необходимости делать это.)
Если вы все сделаете правильно, у slapadd все получится без нуждающийся -c
.