Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

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

History | View | Annotate | Download (3.86 KB)

1
#!/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
(cd gdp; make ../adm/gdp-version.sh)
15
. adm/gdp-version.sh
16

    
17
#
18
#  Berkeley-specific configuration.  Can be overridden.
19
#
20

    
21
# externally visible routing nodes (gdp-02 and -04 firewalled)
22
berkeley_routers=`sed -e 's/#.*//' << 'EOF'
23
	gdp-01.eecs.berkeley.edu
24
#	gdp-02.eecs.berkeley.edu
25
	gdp-03.eecs.berkeley.edu
26
#	gdp-04.eecs.berkeley.edu
27
EOF
28
`
29

    
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

    
40
## be sure we're running as root
41
test `whoami` = "root" || exec sudo $0 "$@"
42

    
43
#
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

    
67
## create "gdp" group
68
if ! grep -q "^${GDP_GROUP}:" /etc/group
69
then
70
	info "Creating group $GDP_GROUP"
71
	addgroup --system --gid $GDP_UID $GDP_GROUP
72
fi
73

    
74
## create "gdp" user
75
if ! grep -q "^${GDP_USER}:" /etc/passwd
76
then
77
	info "Creating user $GDP_USER"
78
	adduser --system --uid $GDP_UID --ingroup $GDP_GROUP $GDP_USER
79
else
80
	info "Using existing $GDP_USER"
81
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
# 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
then
104
	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
then
117
	mkdir_gdp $EP_PARAMS
118
	(cd `dirname $GDP_ETC`; ln -s gdp/params ep_adm_params)
119
fi
120

    
121
mkdir_gdp $GDP_KEYS_DIR 0750
122

    
123
## set up default runtime administrative parameters
124
hostname=`hostname`
125

    
126
# determine default router set
127
routers=`echo $GDP_ROUTERS |
128
		tr ' ' '\n' |
129
		grep -v $hostname |
130
		shuf |
131
		tr '\n' ';' |
132
		sed -e 's/; *$//' `
133
if echo $GDP_ROUTERS | grep -q $hostname
134
then
135
	routers="127.0.0.1; $routers"
136
fi
137

    
138
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
info "Creating $EP_PARAMS/gdp"
154
{
155
	echo "swarm.gdp.routers=$routers"
156
	echo "swarm.gdp.hongdb.host=${GDP_HONGD}"
157
	echo "#libep.time.accuracy=0.5"
158
	echo "#libep.thr.mutex.type=errorcheck"
159
	echo "libep.dbg.file=stdout"
160
} > $TMP/gdp.params
161
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