I have built a fully automated installation system directly using cn=config. I
have a file called config.ldif which contains a lot of %%MACROS%% and a tiny
perl script that replaces those macros with actual values depending on the
details of the particular installation. So, there isn't any of this silliness
of creating slapd.conf, converting it into cn=config, and then continuing -
that's an unnecessary step.
After I generate the real config.ldif from the template config.ldif, I simply
load it with slapadd to build my cn=config hierarchy.
slapadd \
-n0 \
-v \
-F ${CONF_DIR} \
-l ldifs/config.ldif