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 |