diff --git a/contrib/devstack/extras.d/70-barbican.sh b/contrib/devstack/extras.d/70-barbican.sh index c8fd6f46..2b71c5bf 100755 --- a/contrib/devstack/extras.d/70-barbican.sh +++ b/contrib/devstack/extras.d/70-barbican.sh @@ -9,10 +9,15 @@ if is_service_enabled barbican; then echo_summary "Installing Barbican" install_barbican install_barbicanclient + if is_service_enabled barbican-dogtag; then + echo_summary "Installing Dogtag" + install_dogtag_components + fi elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then echo_summary "Configuring Barbican" configure_barbican - if [[ -n $BARBICAN_USE_DOGTAG ]]; then + if is_service_enabled barbican-dogtag; then + echo_summary "Configuring Dogtag plugin" configure_dogtag_plugin fi configure_barbicanclient diff --git a/contrib/devstack/lib/barbican b/contrib/devstack/lib/barbican index 164033d7..a23636f1 100755 --- a/contrib/devstack/lib/barbican +++ b/contrib/devstack/lib/barbican @@ -68,7 +68,7 @@ function configure_barbicanclient { # configure_dogtag_plugin - Change config to use dogtag plugin function configure_dogtag_plugin { - openssl pkcs12 -in /root/.dogtag/pki-tomcat/ca_admin_cert.p12 -passin pass:PASSWORD -out $BARBICAN_CONF_DIR/kra_admin_cert.pem -nodes + sudo openssl pkcs12 -in /root/.dogtag/pki-tomcat/ca_admin_cert.p12 -passin pass:PASSWORD -out $BARBICAN_CONF_DIR/kra_admin_cert.pem -nodes sudo chown $USER $BARBICAN_CONF_DIR/kra_admin_cert.pem iniset $BARBICAN_CONF dogtag_plugin dogtag_port 8373 iniset $BARBICAN_CONF secretstore enabled_secretstore_plugins dogtag_crypto @@ -156,7 +156,7 @@ function init_barbican { function install_barbican { # Install package requirements if is_fedora; then - install_package sqlite-devel + install_package sqlite-devel openldap-devel fi # TODO(ravips): We need this until barbican gets into devstack ERROR_ON_CLONE=False @@ -330,6 +330,139 @@ function create_barbican_accounts { } +# Dogtag functions +# ---------------- + +function install_389_directory_server { + # Make sure that 127.0.0.1 resolves to localhost.localdomain (fqdn) + sudo sed -i "s/^127\.0\.0\.1.*/127\.0\.0\.1\tlocalhost.localdomain localhost/" /etc/hosts + + install_package 389-ds-base + sudo mkdir -p /etc/389-ds + + # Instead of spawning a sub-shell to cat this whole chunk into the desired + # file. I just cat it into a temporary file that this user will have access + # to, and subsequently use elevated privileges to move the already made + # file where we need it to be. + cat > .tmp.setup.inf < .tmp.ca.cfg < .tmp.kra.cfg < /etc/389-ds/setup.inf < /etc/dogtag/ca.cfg < /etc/dogtag/kra.cfg <