mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Factorize the actual slapd regeneration
This commit is contained in:
parent
a179e9107a
commit
2bbff1d264
1 changed files with 14 additions and 22 deletions
|
@ -14,6 +14,18 @@ do_init_regen() {
|
||||||
|
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
|
|
||||||
|
_regenerate_slapd_conf
|
||||||
|
|
||||||
|
# Enforce permissions
|
||||||
|
chown root:openldap /etc/ldap/slapd.ldif
|
||||||
|
chown -R openldap:openldap /etc/ldap/schema/
|
||||||
|
usermod -aG ssl-cert openldap
|
||||||
|
|
||||||
|
service slapd restart
|
||||||
|
}
|
||||||
|
|
||||||
|
_regenerate_slapd_conf() {
|
||||||
|
|
||||||
# Validate the new slapd config
|
# Validate the new slapd config
|
||||||
# To do so, we have to use the .ldif to generate the config directory
|
# To do so, we have to use the .ldif to generate the config directory
|
||||||
# so we use a temporary directory slapd_new.d
|
# so we use a temporary directory slapd_new.d
|
||||||
|
@ -28,13 +40,7 @@ do_init_regen() {
|
||||||
rm -Rf /etc/ldap/slapd.d
|
rm -Rf /etc/ldap/slapd.d
|
||||||
mv /etc/ldap/slapd_new.d /etc/ldap/slapd.d
|
mv /etc/ldap/slapd_new.d /etc/ldap/slapd.d
|
||||||
|
|
||||||
# Enforce permissions
|
|
||||||
chown root:openldap /etc/ldap/slapd.ldif
|
|
||||||
chown -R openldap:openldap /etc/ldap/schema/
|
|
||||||
chown -R openldap:openldap /etc/ldap/slapd.d/
|
chown -R openldap:openldap /etc/ldap/slapd.d/
|
||||||
usermod -aG ssl-cert openldap
|
|
||||||
|
|
||||||
service slapd restart
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do_pre_regen() {
|
do_pre_regen() {
|
||||||
|
@ -49,8 +55,7 @@ do_pre_regen() {
|
||||||
[ $curr_backend != 'mdb' ]; then
|
[ $curr_backend != 'mdb' ]; then
|
||||||
backup_dir="/var/backups/dc=yunohost,dc=org-${curr_backend}-$(date +%s)"
|
backup_dir="/var/backups/dc=yunohost,dc=org-${curr_backend}-$(date +%s)"
|
||||||
mkdir -p "$backup_dir"
|
mkdir -p "$backup_dir"
|
||||||
slapcat -b dc=yunohost,dc=org \
|
slapcat -b dc=yunohost,dc=org -l "${backup_dir}/dc=yunohost-dc=org.ldif"
|
||||||
-l "${backup_dir}/dc=yunohost-dc=org.ldif"
|
|
||||||
echo "$backup_dir" > "$tmp_backup_dir_file"
|
echo "$backup_dir" > "$tmp_backup_dir_file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -101,20 +106,7 @@ do_post_regen() {
|
||||||
|
|
||||||
# regenerate LDAP config directory from slapd.conf
|
# regenerate LDAP config directory from slapd.conf
|
||||||
echo "Regenerate LDAP config directory from slapd.ldif"
|
echo "Regenerate LDAP config directory from slapd.ldif"
|
||||||
|
_regenerate_slapd_conf
|
||||||
# Validate the new slapd config
|
|
||||||
# To do so, we have to use the .ldif to generate the config directory
|
|
||||||
# so we use a temporary directory slapd_new.d
|
|
||||||
rm -Rf /etc/ldap/slapd_new.d
|
|
||||||
mkdir /etc/ldap/slapd_new.d
|
|
||||||
slapadd -n0 -l /etc/ldap/slapd.ldif -F /etc/ldap/slapd_new.d/ 2>&1
|
|
||||||
# Actual validation (-Q is for quiet, -u is for dry-run)
|
|
||||||
slaptest -Q -u -F /etc/ldap/slapd_new.d
|
|
||||||
|
|
||||||
# Move to the new config
|
|
||||||
rm -Rf /etc/ldap/slapd.d
|
|
||||||
mv /etc/ldap/slapd_new.d /etc/ldap/slapd.d
|
|
||||||
chown -R openldap:openldap /etc/ldap/slapd.d/
|
|
||||||
|
|
||||||
if [[ -n "$backup_dir" && -f "${backup_dir}/dc=yunohost-dc=org.ldif" ]]; then
|
if [[ -n "$backup_dir" && -f "${backup_dir}/dc=yunohost-dc=org.ldif" ]]; then
|
||||||
# regenerate LDAP config directory and import database as root
|
# regenerate LDAP config directory and import database as root
|
||||||
|
|
Loading…
Add table
Reference in a new issue