Fix fresh dirsrv installs on Ubuntu 20.04
This commit is contained in:
parent
8fe3670ce9
commit
590366639e
|
@ -1 +0,0 @@
|
|||
node.default['kosmos-dirsrv']['master_hostname'] = 'ldap.kosmos.org'
|
|
@ -0,0 +1,119 @@
|
|||
#!/bin/bash
|
||||
|
||||
. /usr/share/dirsrv/data/DSSharedLib
|
||||
|
||||
libpath_add "/usr/lib/x86_64-linux-gnu/dirsrv/"
|
||||
libpath_add ""
|
||||
libpath_add "/usr/lib/x86_64-linux-gnu"
|
||||
libpath_add "/usr/lib/x86_64-linux-gnu"
|
||||
|
||||
export LD_LIBRARY_PATH
|
||||
SHLIB_PATH=$LD_LIBRARY_PATH
|
||||
export SHLIB_PATH
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Usage: ldif2db [-Z serverID] -n backendname {-s includesuffix}* [{-x excludesuffix}*] {-i ldiffile}*"
|
||||
echo " [-c chunksize] [-g [string]] [-G namespace_id] [-O] [-E] [-q] [-v] [-h]"
|
||||
echo "Note: either \"-n backend\", \"-s includesuffix\", and \"-i ldiffile\" are required."
|
||||
echo "Options:"
|
||||
echo " -Z serverID - The server instance identifier"
|
||||
echo " -n backend - Backend database name. Example: userRoot"
|
||||
echo " -s inclduesuffix - Suffix to include"
|
||||
echo " -x excludesuffix - Suffix to exclude"
|
||||
echo " -i ldiffile - LDIF file name"
|
||||
echo " -c chunksize - Number of entries to process before starting a new pass"
|
||||
echo " -g [string] - String is \"none\" or \"deterministic\""
|
||||
echo " \"none\" - unique id is not generated"
|
||||
echo " \"deterministic\" - generate name based unique id (-G name)"
|
||||
echo " By default - generate time based unique id"
|
||||
echo " -G name - Namespace id for name based uniqueid (-g deterministic)"
|
||||
echo " -O - Do not index the attributes"
|
||||
echo " -E - Encrypt attributes"
|
||||
echo " -q - Quiet mode - suppresses output"
|
||||
echo " -v - Display version"
|
||||
echo " -h - Display usage"
|
||||
}
|
||||
|
||||
handleopts()
|
||||
{
|
||||
while [ "$1" != "" ]
|
||||
do
|
||||
if [ "$1" = "-q" ]; then
|
||||
return 1
|
||||
elif [ "$1" = "-Z" ]; then
|
||||
shift
|
||||
servid=$1
|
||||
elif [ "$1" = "-h" ]; then
|
||||
usage
|
||||
exit 0
|
||||
fi
|
||||
shift
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
while getopts "Z:vhd:i:g:G:n:s:x:NOCc:St:D:Eq" flag
|
||||
do
|
||||
case $flag in
|
||||
h) usage
|
||||
exit 0;;
|
||||
Z) servid=$OPTARG;;
|
||||
n) args=$args" -n \"$OPTARG\"";;
|
||||
i) args=$args" -i \"$OPTARG\"";;
|
||||
s) args=$args" -s \"$OPTARG\"";;
|
||||
x) args=$args" -x \"$OPTARG\"";;
|
||||
c) args=$args" -c \"$OPTARG\"";;
|
||||
d) args=$args" -d \"$OPTARG\"";;
|
||||
g) args=$args" -g \"$OPTARG\"";;
|
||||
G) args=$args" -G \"$OPTARG\"";;
|
||||
t) args=$args" -t \"$OPTARG\"";;
|
||||
D) args=$args" -D \"$OPTARG\"";;
|
||||
E) args=$args" -E";;
|
||||
v) args=$args" -v";;
|
||||
N) args=$args" -N";;
|
||||
C) args=$args" -C";;
|
||||
S) args=$args" -S";;
|
||||
O) args=$args" -O";;
|
||||
q) args=$args" -q";;
|
||||
?) usage
|
||||
exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $# -lt 4 ]
|
||||
then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ARGS=$@
|
||||
shift $(($OPTIND - 1))
|
||||
if [ $1 ]
|
||||
then
|
||||
echo "ERROR - Unknown option: $1"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# FIXME look up if not master
|
||||
initfile="/etc/default/dirsrv-master"
|
||||
if [ $? -eq 1 ]
|
||||
then
|
||||
usage
|
||||
echo "You must supply a valid server instance identifier. Use -Z to specify instance name"
|
||||
echo "Available instances: $initfile"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
. $initfile
|
||||
|
||||
handleopts $ARGS
|
||||
quiet=$?
|
||||
if [ $quiet -eq 0 ]; then
|
||||
echo importing data ...
|
||||
fi
|
||||
|
||||
eval /usr/sbin/ns-slapd ldif2db -D $CONFIG_DIR $args 2>&1
|
||||
|
||||
exit $?
|
|
@ -0,0 +1,22 @@
|
|||
# This file is sourced by dirsrv upon startup to set
|
||||
# the default environment for a single specific directory
|
||||
# server instances. To set defaults for all instances, edit
|
||||
# the file in the same directory called dirsrv.
|
||||
|
||||
# These settings are used by the start-dirsrv and
|
||||
# start-slapd scripts (as well as their associates stop
|
||||
# and restart scripts). Do not edit them unless you know
|
||||
# what you are doing.
|
||||
|
||||
# This file is in systemd EnvironmentFile format - see man systemd.exec
|
||||
|
||||
SERVER_DIR={{SERVER-DIR}}
|
||||
SERVERBIN_DIR={{SERVERBIN-DIR}}
|
||||
CONFIG_DIR={{CONFIG-DIR}}
|
||||
INST_DIR={{INST-DIR}}
|
||||
RUN_DIR={{RUN-DIR}}
|
||||
DS_ROOT={{DS-ROOT}}
|
||||
PRODUCT_NAME={{PRODUCT-NAME}}
|
||||
|
||||
# Put custom instance specific settings below here.
|
||||
# if using systemd, omit the "; export VARNAME" at the end
|
|
@ -7,8 +7,9 @@ long_description 'Installs/Configures 389 Directory Server'
|
|||
version '0.1.2'
|
||||
chef_version '>= 14.0'
|
||||
|
||||
depends "firewall"
|
||||
depends "apt"
|
||||
depends "firewall"
|
||||
depends "hostsfile"
|
||||
depends "ulimit"
|
||||
depends "backup"
|
||||
depends "kosmos-base"
|
||||
|
|
|
@ -3,10 +3,12 @@
|
|||
# Recipe:: default
|
||||
#
|
||||
|
||||
include_recipe "kosmos-dirsrv::hostsfile"
|
||||
|
||||
credentials = data_bag_item("credentials", "dirsrv")
|
||||
|
||||
dirsrv_instance "master" do
|
||||
hostname node['kosmos-dirsrv']['master_hostname']
|
||||
hostname "ldap.kosmos.local"
|
||||
admin_password credentials['admin_password']
|
||||
suffix "dc=kosmos,dc=org"
|
||||
end
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
#
|
||||
# Cookbook:: kosmos-dirsrv
|
||||
# Recipe:: hostsfile
|
||||
#
|
||||
|
||||
dirsrv_primary = search(:node, "role:dirsrv_primary AND chef_environment:#{node.chef_environment}").first
|
||||
|
||||
unless dirsrv_primary.nil?
|
||||
primary_ip = dirsrv_primary['knife_zero']['host']
|
||||
|
||||
hostsfile_entry primary_ip do
|
||||
hostname "ldap.kosmos.local"
|
||||
unique true
|
||||
end
|
||||
end
|
|
@ -34,6 +34,20 @@ action :create do
|
|||
inst_dir = "/etc/dirsrv/slapd-#{new_resource.instance_name}"
|
||||
service_name = "dirsrv@#{new_resource.instance_name}"
|
||||
|
||||
cookbook_file "/etc/dirsrv/config/template-initconfig" do
|
||||
source "template-initconfig"
|
||||
mode "0644"
|
||||
owner "dirsrv"
|
||||
group "dirsrv"
|
||||
end
|
||||
|
||||
cookbook_file "/usr/sbin/ldif2db" do
|
||||
source "ldif2db"
|
||||
mode "0755"
|
||||
owner "root"
|
||||
group "root"
|
||||
end
|
||||
|
||||
unless ::Dir.exists?(inst_dir)
|
||||
setup_config = "#{config[:conf_dir]}/setup-#{new_resource.instance_name}.inf"
|
||||
template setup_config do
|
||||
|
|
Loading…
Reference in New Issue