Skip to content

Instantly share code, notes, and snippets.

@ozten
Created June 14, 2011 03:47
Show Gist options
  • Save ozten/1024273 to your computer and use it in GitHub Desktop.
Save ozten/1024273 to your computer and use it in GitHub Desktop.
LDAP Schema migration... brutual style
RECIPE_HOME=/home/ozten/Projects/ldap-recipie/version1
TMP_HOME=/tmp/ldif_output
echo "Resetting OpenLDAP"
apt-get remove -y --purge slapd ldap-utils
# Nuking directory databases
rm -Rf /var/lib/ldap/
apt-get install --no-download slapd ldap-utils
echo "cosine.ldif"
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
echo "nis.ldif"
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
echo "inetorgperson.ldif"
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
rm -Rf ${TMP_HOME}
mkdir ${TMP_HOME}
rm ${RECIPE_HOME}/schema_ldap_recipe.config
slaptest -f ${RECIPE_HOME}/schema_ldap_recipe.config -F ${TMP_HOME}
mv ${RECIPE_HOME}/recipe.ldif ${RECIPE_HOME}/schema_ldap_recipe_backup/recipe_`date +'%s'`.ldif
# 4 is a magic number... Peak into tmp to see what db # your app is on. Probably 4.
cat ${TMP_HOME}/cn=config/cn=schema/cn={4}recipe.ldif | \
sed "s/dn: cn={4}recipe/dn: cn=recipe,cn=schema,cn=config/" | \
sed "s/cn: {4}recipe/cn: recipe/" | \
grep -v -E "(structuralObjectClass|entryUUID|creatorsName|createTimestamp|entryCSN|modifiersName|modifyTimestamp)" > \
${RECIPE_HOME}/recipe.ldif
echo "Installing new schema recipe.ldif"
ldapadd -Y EXTERNAL -H ldapi:/// \
-f ${RECIPE_HOME}/recipe.ldif
echo "backend_ldap_recipe.ldif"
ldapadd -Y EXTERNAL -H ldapi:/// \
-f ${RECIPE_HOME}/backend_ldap_recipe.ldif
echo "frontend_ldap_recipe.ldif"
ldapadd -x -D cn=admin,dc=recipe,dc=com -w p \
-f ${RECIPE_HOME}/frontend_ldap_recipe.ldif
echo "data.ldif"
ldapadd -x -D cn=admin,dc=recipe,dc=com -w p \
-f ${RECIPE_HOME}/data.ldif
ldapsearch -xLLL -D cn=admin,dc=recipe,dc=com \
-b 'dc=recipe,dc=com' -w p -H ldap://localhost/ \
foodName=rawdealkraut
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment