Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

gdp / adm / gdp-bin-setup.sh @ master

History | View | Annotate | Download (3.86 KB)

1 2786071d Eric Allman
#!/bin/sh
2
3
#
4
#  Set up system for binary installs.
5
#
6
#	Create gdp user, needed directories, etc.
7
#	Does not set up for compilation; for that use adm/gdp-setup.sh.
8
#
9
10
# we assume this is in the adm directory
11
cd `dirname $0`/..
12
TMP=/tmp
13
. adm/common-support.sh
14 ac015a81 Eric Allman
(cd gdp; make ../adm/gdp-version.sh)
15 2786071d Eric Allman
. adm/gdp-version.sh
16 991ea9f0 Eric Allman
17 390904c6 Eric Allman
#
18
#  Berkeley-specific configuration.  Can be overridden.
19
#
20
21
# externally visible routing nodes (gdp-02 and -04 firewalled)
22 991ea9f0 Eric Allman
berkeley_routers=`sed -e 's/#.*//' << 'EOF'
23
	gdp-01.eecs.berkeley.edu
24 390904c6 Eric Allman
#	gdp-02.eecs.berkeley.edu
25 991ea9f0 Eric Allman
	gdp-03.eecs.berkeley.edu
26 390904c6 Eric Allman
#	gdp-04.eecs.berkeley.edu
27 991ea9f0 Eric Allman
EOF
28 906f9437 Eric Allman
`
29 390904c6 Eric Allman
30
# Human-Oriented Name to GDPname Directory server
31
berkeley_hongd=gdp-hongd.cs.berkeley.edu
32
33
# Log (Data Capsule) creation service (GDPname)
34
berkeley_creation_service=edu.berkeley.eecs.gdp.service.creation
35
36
#
37
#  End of Berkeley-specific values
38
#
39 2786071d Eric Allman
40
## be sure we're running as root
41
test `whoami` = "root" || exec sudo $0 "$@"
42
43 390904c6 Eric Allman
#
44
#  Now the configuration we actually use
45
#
46
47
# numeric user id --- we pick one for consistency
48
: ${GDP_UID:=133}
49
50
# pick a router set.  Define GDP_ROUTERS to use private routers.
51
: ${GDP_ROUTERS:=$berkeley_routers}
52
53
# HONGD server
54
: ${GDP_HONGD:=$berkeley_hongd}
55
56
# DataCapsule creation service (GDPname)
57
: ${GDP_CREATION_SERVICE:=$berkeley_creation_service}
58
59
info "Preparing install into GDP_ROOT=${GDP_ROOT}"
60
info "                        GDP_ETC=${GDP_ETC}"
61
info "             GDP_USER:GDP_GROUP=${GDP_USER}:${GDP_GROUP}"
62
info "                        GDP_UID=${GDP_UID}"
63
info "                    GDP_ROUTERS=${GDP_ROUTERS}"
64
info "                      GDP_HONGD=${GDP_HONGD}"
65
info "           GDP_CREATION_SERVICE=${GDP_CREATION_SERVICE}"
66 2786071d Eric Allman
67
## create "gdp" group
68
if ! grep -q "^${GDP_GROUP}:" /etc/group
69
then
70
	info "Creating group $GDP_GROUP"
71 e435842c Eric Allman
	addgroup --system --gid $GDP_UID $GDP_GROUP
72 2786071d Eric Allman
fi
73
74
## create "gdp" user
75
if ! grep -q "^${GDP_USER}:" /etc/passwd
76
then
77
	info "Creating user $GDP_USER"
78 e435842c Eric Allman
	adduser --system --uid $GDP_UID --ingroup $GDP_GROUP $GDP_USER
79 390904c6 Eric Allman
else
80
	info "Using existing $GDP_USER"
81 2786071d Eric Allman
fi
82
83
umask 0022
84
85
# make the root directory
86
mkdir_gdp $GDP_ROOT
87
cd $GDP_ROOT
88
89
## create system directories
90
if [ "$GDP_ROOT" != "/usr" ]
91
then
92
	mkdir_gdp bin
93
	mkdir_gdp sbin
94
	mkdir_gdp lib
95
fi
96
97 9e62cb26 Eric Allman
# convert /etc/ep_adm_params => /etc/gdp/params
98
mkdir_gdp $GDP_ETC
99
EP_PARAMS=$GDP_ETC/params
100
if [ "$GDP_ETC" = "/etc/gdp" -o				\
101
     "$GDP_ETC" = "/usr/local/etc/gdp" -o		\
102
     "$GDP_ETC" = "/opt/local/etc/gdp" ]
103 2786071d Eric Allman
then
104 9e62cb26 Eric Allman
	if [ -d `dirname $GDP_ETC`/ep_adm_params -a ! -e $GDP_ETC/params ]
105
	then
106
		# relocate /etc/ep_adm_params to /etc/gdp/params
107
		mv `dirname $GDP_ETC`/ep_adm_params $GDP_ETC/params
108
	fi
109
	if [ ! -e `dirname $GDP_ETC`/ep_adm_params ]
110
	then
111
		# create legacy link if it doesn't already exist
112
		(cd `dirname $GDP_ETC`; ln -s gdp/params ep_adm_params)
113
	fi
114
fi
115
if [ ! -d $GDP_ETC/params ]
116 2786071d Eric Allman
then
117 9e62cb26 Eric Allman
	mkdir_gdp $EP_PARAMS
118
	(cd `dirname $GDP_ETC`; ln -s gdp/params ep_adm_params)
119 2786071d Eric Allman
fi
120
121
mkdir_gdp $GDP_KEYS_DIR 0750
122
123
## set up default runtime administrative parameters
124
hostname=`hostname`
125
126 991ea9f0 Eric Allman
# determine default router set
127
routers=`echo $GDP_ROUTERS |
128 2786071d Eric Allman
		tr ' ' '\n' |
129
		grep -v $hostname |
130
		shuf |
131
		tr '\n' ';' |
132 991ea9f0 Eric Allman
		sed -e 's/; *$//' `
133
if echo $GDP_ROUTERS | grep -q $hostname
134 2786071d Eric Allman
then
135
	routers="127.0.0.1; $routers"
136
fi
137
138 390904c6 Eric Allman
installparams() {
139
	if [ ! -f $EP_PARAMS/$1 ]
140
	then
141
		mkfile_gdp $EP_PARAMS/$1
142
		cp $TMP/$1.params $EP_PARAMS/$1
143
		cat $EP_PARAMS/$1
144
	elif cmp -s $TMP/$1.params $EP_PARAMS/$1
145
	then
146
		rm $TMP/$1.params
147
	else
148
		warn "$EP_PARAMS/$1 already exists; check consistency" 1>&2
149
		diff -u $TMP/$1.params $EP_PARAMS/$1
150
	fi
151
}
152
153 2786071d Eric Allman
info "Creating $EP_PARAMS/gdp"
154
{
155
	echo "swarm.gdp.routers=$routers"
156 390904c6 Eric Allman
	echo "swarm.gdp.hongdb.host=${GDP_HONGD}"
157 2786071d Eric Allman
	echo "#libep.time.accuracy=0.5"
158
	echo "#libep.thr.mutex.type=errorcheck"
159
	echo "libep.dbg.file=stdout"
160
} > $TMP/gdp.params
161 390904c6 Eric Allman
installparams gdp
162
163
info "Creating $EP_PARAMS/gdp-create"
164
{
165
	echo "swarm.gdp.creation-service.name=${GDP_CREATION_SERVICE}"
166
} > $TMP/gdp-create.params
167
installparams gdp-create