这两天配置keystone的LDAP后端,遇到一个问题,LDAP安装的过程中需要用户输入root的密码,并确认密码。
整个配置LDAP后端的过程都可以通过脚本自动化,但是就是这步安装LDAP输入用户密码的地方卡住了。
经过同事的提示,ubuntu下有个叫debconf的东西可以搞安装预配置,研究一下,呵呵,果然可以。
步骤是这样的:
1、先用debconf-show + 包名查出预配置项
例如:debconf-show slapd 查询slapd的预配置项,星号是必选项
root@compute204:/var/log/keystone# debconf-show slapd * slapd/password1: (password omitted) slapd/internal/adminpw: (password omitted) slapd/internal/generated_adminpw: (password omitted) * slapd/password2: (password omitted) slapd/allow_ldap_v2: false slapd/password_mismatch: slapd/invalid_config: true shared/organization: openstack.org slapd/upgrade_slapcat_failure: slapd/no_configuration: false slapd/move_old_database: true slapd/dump_database_destdir: /var/backups/slapd-VERSION slapd/purge_database: false slapd/domain: openstack.org slapd/backend: HDB slapd/dump_database: when needed可以看出来slapd/password1和slapd/password2就是需要用户填入的密码了,其他含义类推
2、在自动化脚本里,用debconf-set-selections设置然后安装,每个配置项格式为 {包名} {配置项key} {配置项类型} {配置项value}
function install_ldap() { cat <<LDAP_PRESEED | debconf-set-selections slapd slapd/password1 password ${LDAP_PASS} slapd slapd/password2 password ${LDAP_PASS} LDAP_PRESEED apt-get -y --force-yes install slapd apt-get -y --force-yes install ldap-utils }然后安装LDAP的过程就完全不需要人为干预了
大家要是有其他的软件需要自动安装,可以按照此方法尝试一下。