forked from dmwm/deployment
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeploy
78 lines (70 loc) · 2.19 KB
/
deploy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# vim: set ft=sh sw=2 ts=8 et :
deploy_couchdb_variants="default offsite"
deploy_couchdb_deps()
{
deploy backend
deploy wmcore-auth
}
deploy_couchdb_prep()
{
mkproj database replication stagingarea backup
case $variant in default ) ;; * ) mkproxy ;; esac
}
deploy_couchdb_sw()
{
rm -f $project_auth/hmackey.ini
deploy_pkg -a couchdb/hmackey.ini comp external+couchdb
perl -p -i -e "s|{ROOT}|$root|g" $project_config/local.ini
case $variant in
default )
;;
* )
perl -p -i -e "s|bind_address = 0.0.0.0|bind_address = 127.0.0.1|g" $project_config/local.ini
(echo
echo "[ssl]"
echo "cert_file = $project_state/proxy/proxy.cert"
echo "key_file = $project_state/proxy/proxy.cert"
echo "cacert_file = $project_state/proxy/proxy.cert"
echo
echo "[replicator]"
echo "max_replication_retry_count = infinity"
) >> $project_config/local.ini
;;
esac
}
deploy_couchdb_post()
{
(mkcrontab
case $host in
vocms10[67] | vocms13[2689] | vocms16[13] )
disable ;;
* )
enable
sysboot
local cmd="$project_config/manage compact all 'I did read documentation'"
$nogroups || cmd="sudo -H -u _couchdb bashs -l -c \"${cmd}\""
echo "12 0 * * * $cmd"
# Daily backup the databases to other cluster machines
case $host in vocms140 ) tohost=vocms138 ;; vocms133 ) tohost=vocms132 ;; vocms127 ) tohost=vocms127 ;; * ) tohost= ;; esac
[ -z "$tohost" ] ||
echo "0 1 * * * $project_config/manage backup $tohost:$project_state/backup/$host 'I did read documentation'"
;;
esac) | crontab -
# Weekly archive backups to castor
case $host in
vocms138 | vocms132 | vocms127 )
klist -s # must have afs kerberos token
(acrontab -l | { fgrep -v -e " $host $project_config/" || true; }
echo "30 3 * * 0 $host $project_config/manage archive /castor/cern.ch/cms/archive/cmsweb/backups 'I did read documentation'") | acrontab
;;
* )
;;
esac
}
deploy_couchdb_auth()
{
perl -e \
'undef $/; print "[couch_cms_auth]\n";
print "hmac_secret = ", unpack("h*", <STDIN>), "\n"' < \
$root/current/auth/wmcore-auth/header-auth-key
}