Ubuntu下的软件安装自动配置 regexisart
如需转载,请标明原文出处以及作者
陈锐 RuiChen @kiwik
2013/08/25 10:30:01
这两天配置keystone的LDAP后端,遇到一个问题,LDAP安装的过程中需要用户输入root的密码,并 确认密码。整个配置LDAP后端的过程都可以通过脚本自动化,但是就是这步安装LDAP输入用户密码的 地方卡住了。经过同事的提示,ubuntu下有个叫debconf的东西可以搞安装预配置,研究一下,呵呵, 果然可以。
步骤是这样的:
- 先用debconf-show + 包名查出预配置项,例如:
debconf-show slapd
查询slapd的预配置 项,星号是必选输入项。可以看出来slapd/password1
和slapd/password2
就是需要用户填入的密 码了,其他含义类推
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
- 在自动化脚本里,用
debconf-set-selections
设置然后安装,每个配置项格式为{包名} {配置项key} {配置项类型} {配置项value}
然后安装LDAP的过程就完全不需要人为干预了,大家要是有其他的软件需要自动安装,可以按照此方法尝试一下。
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
}