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 |