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'
|
|
119
site-cookbooks/kosmos-dirsrv/files/ldif2db
Executable file
119
site-cookbooks/kosmos-dirsrv/files/ldif2db
Executable file
@ -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 $?
|
22
site-cookbooks/kosmos-dirsrv/files/template-initconfig
Normal file
22
site-cookbooks/kosmos-dirsrv/files/template-initconfig
Normal file
@ -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'
|
version '0.1.2'
|
||||||
chef_version '>= 14.0'
|
chef_version '>= 14.0'
|
||||||
|
|
||||||
depends "firewall"
|
|
||||||
depends "apt"
|
depends "apt"
|
||||||
|
depends "firewall"
|
||||||
|
depends "hostsfile"
|
||||||
depends "ulimit"
|
depends "ulimit"
|
||||||
depends "backup"
|
depends "backup"
|
||||||
depends "kosmos-base"
|
depends "kosmos-base"
|
||||||
|
@ -3,10 +3,12 @@
|
|||||||
# Recipe:: default
|
# Recipe:: default
|
||||||
#
|
#
|
||||||
|
|
||||||
|
include_recipe "kosmos-dirsrv::hostsfile"
|
||||||
|
|
||||||
credentials = data_bag_item("credentials", "dirsrv")
|
credentials = data_bag_item("credentials", "dirsrv")
|
||||||
|
|
||||||
dirsrv_instance "master" do
|
dirsrv_instance "master" do
|
||||||
hostname node['kosmos-dirsrv']['master_hostname']
|
hostname "ldap.kosmos.local"
|
||||||
admin_password credentials['admin_password']
|
admin_password credentials['admin_password']
|
||||||
suffix "dc=kosmos,dc=org"
|
suffix "dc=kosmos,dc=org"
|
||||||
end
|
end
|
||||||
|
15
site-cookbooks/kosmos-dirsrv/recipes/hostsfile.rb
Normal file
15
site-cookbooks/kosmos-dirsrv/recipes/hostsfile.rb
Normal file
@ -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}"
|
inst_dir = "/etc/dirsrv/slapd-#{new_resource.instance_name}"
|
||||||
service_name = "dirsrv@#{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)
|
unless ::Dir.exists?(inst_dir)
|
||||||
setup_config = "#{config[:conf_dir]}/setup-#{new_resource.instance_name}.inf"
|
setup_config = "#{config[:conf_dir]}/setup-#{new_resource.instance_name}.inf"
|
||||||
template setup_config do
|
template setup_config do
|
||||||
|
Loading…
x
Reference in New Issue
Block a user