Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

gdp / adm / gdplogd-install.sh @ master

History | View | Annotate | Download (3.76 KB)

1 d5799c5f Eric Allman
#!/bin/sh
2
3
#
4
#  Initialize GDP server hosts
5
#
6
#	This script should not be needed for ordinary clients.
7
#
8
#	This does not actually install the gdplogd software.
9
#	It is a helper script for the "make install" target in
10
#	gdplogd/Makefile that sets up the surrounding 
11
#
12
#	This should be portable to all environments.  In particular,
13
#	it is not dependent on a particular version of Linux (or
14
#	for that matter, Linux at all).
15
#
16
#	XXX  This assumes the Berkeley-based routers.  If you have
17
#	XXX  your own router you'll need to modify $EP_PARAMS/gdp
18
#	XXX  after this completes.
19
#
20
#	XXX  It also assumes you are in the eecs.berkeley.edu domain.
21
#	XXX  If you aren't you'll need to modify $EP_PARAMS/gdplogd
22
#	XXX  after this completes.
23
#
24
#	This script does not install a router or router
25
#	startup scripts.  The router is a separate package
26
#	and must be installed separately.
27
#
28
29
## be sure we're running as root
30
test `whoami` = "root" || exec sudo $0 "$@"
31
32
# we assume this is in the adm directory
33
cd `dirname $0`/..
34
GDP_SRC_ROOT=`pwd`
35
TMP=/tmp
36
. adm/common-support.sh
37
38
args=`getopt ir $*`
39
if [ $? != 0 ]
40
then
41
	echo "Usage: $0 [-i]"
42
	exit 1
43
fi
44
45
eval set -- "$args"
46
do_install=true
47
install_rest=false
48
while true
49
do
50
	case "$1"
51
	in
52
	  -i)
53
	  	do_install=false
54
		;;
55
56
	  -r)
57
		install_rest=true
58
		;;
59
60
	  --)
61
		shift
62
		break
63
		;;
64
	esac
65
	shift
66
done
67
68
# setup GDP user, basic directories, etc.
69
. adm/gdp-bin-setup.sh
70
71
. adm/gdp-version.sh
72
: ${GDP_VER=$GDP_VERSION_MAJOR}
73
: ${GDPLOGD_LOG:=$GDP_LOG_DIR/gdplogd.log}
74
: ${GDPLOGD_BIN:=$GDP_ROOT/sbin/gdplogd$GDP_VER}
75
export GDP_VER
76
77
echo "Installing gdplogd:"
78
(cd $GDP_SRC_ROOT/gdplogd && make install)
79
80
echo "Making server-specific directories"
81
mkdir_gdp $GDP_LOG_DIR
82
mkdir_gdp $GDP_VAR
83
mkdir_gdp $GDPLOGD_DATADIR 0750
84
mkdir_gdp /var/swarm
85
mkdir_gdp /var/swarm/gdp
86
mkdir_gdp /var/swarm/gdp/glogs
87
88
mkfile_gdp $GDPLOGD_LOG
89
$install_rest && mkfile_gdp $GDP_REST_LOG
90
91
info "Creating $EP_PARAMS/gdplogd"
92
{
93
	echo "swarm.gdplogd.gdpname=edu.berkeley.eecs.$hostname.gdplogd.physical"
94
	echo "swarm.gdplogd.runasuser=gdp"
95
} > $TMP/gdplogd.params
96
if [ ! -f $EP_PARAMS/gdplogd ]
97
then
98
	cp $TMP/gdplogd.params $EP_PARAMS/gdplogd
99
	chown ${GDP_USER}:${GDP_GROUP} $EP_PARAMS/gdplogd
100
	cat $EP_PARAMS/gdplogd
101
elif cmp -s $TMP/gdplogd.params $EP_PARAMS/gdplogd
102
then
103
	rm $TMP/gdplogd.params
104
else
105
	warn "$EP_PARAMS/gdplogd already exists; check consistency" 1>&2
106
	diff -u $TMP/gdplogd.params $EP_PARAMS/gdplogd
107
fi
108
109
info "Installing utility programs"
110
cd $GDP_SRC_ROOT
111
(cd util && make install)
112
113
info "Installing gdplogd wrapper script"
114
install -o ${GDP_USER} adm/gdplogd-wrapper.sh $GDP_ROOT/sbin/gdplogd${GDP_VER}-wrapper.sh
115
116
if $install_rest
117
then
118
	info "Installing gdp-rest wrapper script"
119
	install -o ${GDP_USER} adm/gdp-rest-wrapper.sh $GDP_ROOT/sbin/gdp-rest${GDP_VER}-wrapper.sh
120
fi
121
122
if [ -d /etc/rsyslog.d ]
123
then
124
	info "Installing rsyslog configuration"
125
	sh adm/customize.sh adm/60-gdp.conf.template /etc/rsyslog.d
126
	chown ${GDP_USER}:${GDP_GROUP} /etc/rsyslog.d/60-gdp.conf
127
fi
128
129
if [ -d /etc/logrotate.d ]
130
then
131
	info "Installing logrotate configuration"
132
	cp adm/gdp-logrotate.conf /etc/logrotate.d/gdp
133
fi
134
135
if [ "$INITSYS" = "systemd" ]
136
then
137
	info "Installing and enabling systemd service files"
138
	info "gdplogd.service ..."
139
	adm/customize.sh adm/gdplogd.service.template $TMP
140
	cp $TMP/gdplogd.service /etc/systemd/system/gdplogd$GDP_VER.service
141
	rm $TMP/gdplogd.service
142
	if $install_rest
143
	then
144
		info "gdp-rest.service ..."
145
		adm/customize.sh adm/gdp-rest.service.template /etc/systemd/system
146
	fi
147
	systemctl daemon-reload
148
	systemctl enable gdplogd$GDP_VER
149
	if $install_rest
150
	then
151
		systemctl enable gdp-rest
152
		warn "Startup scripts for gdp-rest are installed, but you will"
153
		warn "need to configure a web server to use the SCGI interface."
154
		warn "See README-CAAPI.md for advice."
155
	fi
156
else
157
	warn "No system initialization configured"
158
fi