If you install slapd from the commandline you’ll be prompted with a bunch of questions. If you install via some automation tool however, the story becomes a little different. There’s no prompt to input stuff the stuff setup needs, and you really don’t want to be prompted anyways. So… Let’s find all options available for this package.
debconf-get-selections | grep slapd
slapd slapd/password1 password
slapd slapd/internal/generated_adminpw password
slapd slapd/password2 password
slapd slapd/internal/adminpw password
# Potentially unsafe slapd access control configuration
slapd slapd/unsafe_selfwrite_acl note
slapd slapd/dump_database_destdir string /var/backups/slapd-VERSION
slapd slapd/move_old_database boolean true
slapd slapd/domain string
slapd slapd/invalid_config boolean true
slapd slapd/no_configuration boolean false
slapd slapd/password_mismatch note
# Do you want the database to be removed when slapd is purged?
slapd slapd/purge_database boolean false
slapd slapd/allow_ldap_v2 boolean false
slapd slapd/backend select MDB
slapd slapd/dump_database select when needed
slapd slapd/upgrade_slapcat_failure error
slapd shared/organization string
All these “zany” options. Which ones are needed?
DEBCONF_DEBUG=developer dpkg-reconfigure --frontend=noninteractive slapd 2>/tmp/debug.log
DEBCONF_DEBUG=developer
dumps debug code to stderr, which we cleverly dump to /tmp/debug.log
. Scanning through that log we see
debconf (developer): <-- INPUT medium slapd/no_configuration
debconf (developer): --> 30 question skipped
debconf (developer): <-- INPUT medium slapd/domain
debconf (developer): --> 30 question skipped
debconf (developer): <-- INPUT medium shared/organization
debconf (developer): --> 30 question skipped
debconf (developer): <-- INPUT high slapd/password1
debconf (developer): --> 30 question skipped
debconf (developer): <-- INPUT high slapd/password2
debconf (developer): --> 30 question skipped
debconf (developer): <-- INPUT low slapd/backend
debconf (developer): --> 30 question skipped
debconf (developer): <-- INPUT low slapd/purge_database
debconf (developer): --> 30 question skipped
debconf (developer): <-- INPUT low slapd/move_old_database
debconf (developer): --> 30 question skipped
debconf (developer): <-- INPUT medium slapd/allow_ldap_v2
debconf (developer): --> 30 question skipped
Set these options before you install slapd
.
Ansible example
- name: set slapd install options
shell: "echo \"{{ item }}\" | debconf-set-selections"
with_items:
- slapd slapd/no_configuration boolean false
- slapd slapd/domain string slipsprogrammor.no
- slapd shared/organization string Slips AS
- slapd slapd/password1 password adminpass
- slapd slapd/password2 password adminpass
- slapd slapd/backend select MDB
- slapd slapd/purge_database boolean false
- slapd slapd/move_old_database boolean true
- slapd slapd/allow_ldap_v2 boolean false
- name: install packages
package:
name: "{{ item }}"
with_items:
- slapd
- ldap-utils