blob: 9638807fd260376f219e922c1484fd9cb35603eb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
#!/bin/bash
# set -x
# This script tries to install a bwLehrpool satellite server in a (hopefully)
# automatic fashion. It is only verified to work on a Debian 7.x distribution.
# While it may work on any recent Debian-derived distribution this is not
# guaranteed in any way.
#
# If there were any errors in running this script do the following steps to
# re-install:
# 1. Un-outcomment the call to purge_install near the end of this script.
# 2. re-run the script; ignore any errors like "ERROR 1045 (28000): Access
# denied for user 'root'@'localhost'". This is caused by mysql root password
# mismatch; it will vanish on the second run. purge_install will uninstall
# the packages given in PACKAGELIST_SERVER _and_ purge their configuration.
# 3. re-run the script again; then the mysql root password will be set to the
# queried password entry. Then the mysql databases and users will be deleted.
# 4. Out-comment the call to purge_install and run the script again for a clean
# install.
# This cumbersome way will be remedied in the future.
echo "#"
echo "# bwSuite Server and environment autoinstaller"
echo "#"
# Set and save some environmental variables:
OLDUMASK=$(umask)
OLD_DEBIAN_FRONTEND="$DEBIAN_FRONTEND"
# umask 0066 # in case we write something.
# For other variables see includes/00-variables.inc
export SELF="$(readlink -f "$0")"
export BASEDIR="$(dirname "${SELF}")"
#
#
# TRAPPING hierhin!
#
#
# First, to include includes include them:
echo -n "# Sourcing includes: "
for INCLUDE in "$BASEDIR"/includes/*.inc; do
echo -n "."
source "$INCLUDE"
done
echo " ok"
####### Main program #######
install_packages "$PACKAGELIST_SCRIPT" # Packages needed for script
setup_dhcp # dhcp: no dhclient but pump
prerequisites # config directory, locales
# query_passwords
set_passwords # only to be used within certain circumstances -
# see includes/query_user.
preset_mysql_root # so mysqld keeps quiet when installing
install_packages "$PACKAGELIST_SERVER" # Packages needed for server
check_users # Meet interesting users with uid>=1000 and kill them.
# user 65534/sync will be ignored.
add_users_groups # Adding necessary users and groups
sudo_config # Adding sudo config for user taskmanager
add_mysql_dbs_users # mysql stuff; adding databases and users
unpack_tar_gz "$BASEDIR/static_files/ftp-config.tar.gz" "-C /" # $1: tar.gz-file, $2: unpacking to directory
patch_pureftpd_config bwLehrpool bwLehrpool "$MYSQL_BWLEHRPOOL_PASS" # $1: user, $2: database, $3: Password
patch_atftpd_config
patch_lighttpd_config "$OPENSLXSRVDIR"/www # $1: lighttpd http root
install_bwSuite_server /opt/dmsd
install_taskmanager /opt/taskmanager
unpack_tar_gz "$BASEDIR/static_files/openslx.tar.gz" "-C $OPENSLXDIR"
unpack_tar_gz "$BASEDIR/static_files/openslx_www.tar.gz" "-C $OPENSLXSRVDIR/www"
unpack_tar_gz "$BASEDIR/static_files/openslx_tftp.tar.gz" "-C $OPENSLXSRVDIR"
unpack_tar_gz "$BASEDIR/static_files/ldadp.tgz" "-C /opt/ldadp"
set_directory_permissions
# NFS server configuration:
config_nfs
# This part drops a script and anchors it's execution within root's bashrc:
script_dropper
# Change motd to something openslx-ng-ier...
set_motd
# Activate 'purge_install' here - but be careful! This is for debugging purposes only!
#
# purge_install
# umask $OLDUMASK
exit 0
|