Skip to content
This repository was archived by the owner on Feb 12, 2021. It is now read-only.

Commit 5f8729b

Browse files
committed
ownCloud backups and MongoDB dumps, +mongo docker volume
1 parent 7309b44 commit 5f8729b

File tree

2 files changed

+124
-31
lines changed

2 files changed

+124
-31
lines changed

Makefile

Lines changed: 114 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,9 @@ prod:
9595

9696
hubdb:
9797
@ sudo mkdir -p $(PATH_HOST)/mongo/
98+
@ sudo mkdir -p ${PATH_HOST}/mongo_dump/
9899
@ $(call dockerize,hubdb,$(DOCKER_HUBDB_PRODUCTION))
99-
@ sudo docker exec hubdb /app/init_db.sh > /dev/null
100+
@ sudo docker exec hubdb /app/mongodb_init.sh > /dev/null
100101

101102

102103
hub:
@@ -183,7 +184,6 @@ ep-rm:
183184
fi
184185

185186

186-
187187
ep-cloud:
188188
@ sudo mkdir -p $(PATH_KEYS_EP_CLOUD)
189189
@ if [ ! -e $(PATH_KEYS_EP_CLOUD) ]; \
@@ -309,45 +309,130 @@ config-packages:
309309
config-mongodb:
310310
@ ( echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled )> /dev/null
311311
@ ( echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag )> /dev/null
312+
@ if(! grep --quiet 'mongodb_dump.sh' /var/spool/cron/crontabs/root ); \
313+
then \
314+
( \
315+
echo ''; \
316+
echo '# Dump MongoDB for backup'; \
317+
echo '#'; \
318+
echo '15 3 * * * docker exec hubdb /app/mongodb_dump.sh'; \
319+
echo '15 11 * * * docker exec hubdb /app/mongodb_dump.sh'; \
320+
echo '15 19 * * * docker exec hubdb /app/mongodb_dump.sh'; \
321+
) | tee -a /var/spool/crontabs/root; \
322+
fi
312323

313324

314325
config-bash:
315326
@ if(! grep --quiet 'function dockin()' $${HOME}/.bashrc ); \
316327
then \
317-
( \
318-
echo ''; \
319-
echo '# Function to quickly enter containers'; \
320-
echo '#'; \
321-
echo 'function dockin()'; \
322-
echo '{'; \
323-
echo ' if [ $$# -eq 0 ]'; \
324-
echo ' then'; \
325-
echo ' echo "Please pass a docker container to enter"'; \
326-
echo ' echo "Usage: dockin [containerToEnter]"'; \
327-
echo ' else'; \
328-
echo ' sudo docker exec -it $$1 /bin/bash'; \
329-
echo ' fi'; \
330-
echo '}'; \
331-
echo ''; \
332-
echo '# Aliases to frequently used functions and applications'; \
333-
echo '#'; \
334-
echo "alias c='dockin'"; \
335-
echo "alias d='sudo docker'"; \
336-
echo "alias e='sudo docker exec'"; \
337-
echo "alias i='sudo docker inspect'"; \
338-
echo "alias l='sudo docker logs -f'"; \
339-
echo "alias p='sudo docker ps -a'"; \
340-
echo "alias r='sudo docker rm -fv'"; \
341-
echo "alias s='sudo docker ps -a | less -S'"; \
342-
echo "alias m='make'"; \
343-
) | tee -a $${HOME}/.bashrc; \
328+
( \
329+
echo ''; \
330+
echo '# Function to quickly enter containers'; \
331+
echo '#'; \
332+
echo 'function dockin()'; \
333+
echo '{'; \
334+
echo ' if [ $$# -eq 0 ]'; \
335+
echo ' then'; \
336+
echo ' echo "Please pass a docker container to enter"'; \
337+
echo ' echo "Usage: dockin [containerToEnter]"'; \
338+
echo ' else'; \
339+
echo ' sudo docker exec -it $$1 /bin/bash'; \
340+
echo ' fi'; \
341+
echo '}'; \
342+
echo ''; \
343+
echo '# Aliases to frequently used functions and applications'; \
344+
echo '#'; \
345+
echo "alias c='dockin'"; \
346+
echo "alias d='sudo docker'"; \
347+
echo "alias e='sudo docker exec'"; \
348+
echo "alias i='sudo docker inspect'"; \
349+
echo "alias l='sudo docker logs -f'"; \
350+
echo "alias p='sudo docker ps -a'"; \
351+
echo "alias r='sudo docker rm -fv'"; \
352+
echo "alias s='sudo docker ps -a | less -S'"; \
353+
echo "alias m='make'"; \
354+
) | tee -a $${HOME}/.bashrc; \
344355
echo ""; \
345356
echo ""; \
346357
echo "Please log in/out for changes to take effect!"; \
347358
echo ""; \
348359
fi
349360

350361

362+
config-oc:
363+
# Add repository and install owncloud cmd client
364+
#
365+
@ echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/xUbuntu_14.10/ /' \
366+
| sudo tee /etc/apt/sources.list.d/owncloud-client.list
367+
@ wget -qO- http://download.opensuse.org/repositories/isv:ownCloud:desktop/xUbuntu_14.10/Release.key \
368+
| sudo apt-key add -
369+
@ sudo apt-get update
370+
@ sudo apt-get install -y owncloud-client
371+
372+
@ # Create backup script
373+
@ #
374+
@ if [ ! -e ${PATH_HOST}/oc_backup.sh ]; \
375+
then \
376+
( \
377+
echo '#!/bin/bash'; \
378+
echo '#'; \
379+
echo '# Backup script for ownCloud - run from the data dir!'; \
380+
echo '#'; \
381+
echo '# Exit on errors or unitialized variables'; \
382+
echo 'set -e -o nounset'; \
383+
echo ''; \
384+
echo ''; \
385+
echo '# Change to script directory'; \
386+
echo '#'; \
387+
echo 'SCRIPT_DIR=$$( cd $$( dirname $${BASH_SOURCE[0]} ) && pwd )'; \
388+
echo 'cd $${SCRIPT_DIR}'; \
389+
echo ''; \
390+
echo ''; \
391+
echo '# Copy non-sensitive MongoDB dumps to ./mongo_partial/'; \
392+
echo '#'; \
393+
echo 'sudo mkdir -p mongo_partial/'; \
394+
echo 'FROM=$\${PATH_HOST}'; \
395+
echo 'sudo cp mongo_dump/query_composer_development/delayed* mongo_partial/'; \
396+
echo 'sudo cp mongo_dump/query_composer_development/endpoints* mongo_partial/'; \
397+
echo 'sudo cp mongo_dump/query_composer_development/system* mongo_partial/'; \
398+
echo 'sudo cp mongo_dump/query_composer_development/users* mongo_partial/'; \
399+
echo ''; \
400+
echo ''; \
401+
echo '# Backup cert, dacs, drugref, keys and mongo_partial folders to ownCloud'; \
402+
echo '#'; \
403+
echo 'USERNAME=$\${OWNCLOUD_ID}'; \
404+
echo 'PASSWORD=$\${OWNCLOUD_PW}'; \
405+
echo 'OWNCLOUD=$\${OWNCLOUD_URL}'; \
406+
echo '#'; \
407+
echo 'OC_PATH=$${OWNCLOUD}/remote.php/webdav'; \
408+
echo '#'; \
409+
echo 'for DIR in \\'; \
410+
echo ' cert \\'; \
411+
echo ' dacs \\'; \
412+
echo ' drugref \\'; \
413+
echo ' keys \\'; \
414+
echo ' mongo_partial \\'; \
415+
echo ' recovery;'; \
416+
echo 'do'; \
417+
echo ' sudo owncloudcmd -u $${USERNAME} -p $${PASSWORD} $${DIR} $${OC_PATH}/$${DIR};'; \
418+
echo 'done'; \
419+
) | sudo tee -a \${PATH_HOST}/oc_backup.sh; \
420+
sudo chmod 700 \${PATH_HOST}/oc_backup.sh; \
421+
fi
422+
423+
@ # Add script to cron
424+
@ #
425+
@ if((! sudo test -e /var/spool/cron/crontabs/root )||(! sudo grep --quiet 'oc_backup.sh' /var/spool/cron/crontabs/root )); \
426+
then \
427+
( \
428+
echo ''; \
429+
echo '# Backup to ownCloud every 30 minutes'; \
430+
echo '#'; \
431+
echo '0,30 * * * * $\${PATH_HOST}/oc_backup.sh'; \
432+
) | sudo tee -a /var/spool/cron/crontabs/root; \
433+
fi
434+
435+
351436
######################
352437
# Docker Image Pulls #
353438
######################

config.env

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,14 @@ RELEASE_VERSION=0.1.1
1919
URL_HUB=hub.pdc.io
2020

2121

22-
# GitHub Branch Overrides
22+
# ownCloud backup details
23+
#
24+
OWNCLOUD_ID=hub.pdc.io
25+
OWNCLOUD_PW=<password>
26+
OWNCLOUD_URL=<https://...>
27+
28+
29+
# GitHub branch overrides
2330
#
2431
# Comment out to accept branch assigned by ${BUILD_MODE}
2532
#
@@ -111,6 +118,7 @@ PATH_KEYS_EP_CLOUD=${PATH_HOST}/keys/cloud_shared
111118
PATH_CERT=${PATH_HOST}/cert/
112119
PATH_DACS=${PATH_HOST}/dacs/
113120
PATH_MONGO=${PATH_HOST}/mongo/
121+
PATH_MONGO_DUMP=${PATH_HOST}/mongo_dump/
114122
PATH_DRUGREF=${PATH_HOST}/drugref/
115123

116124

@@ -141,7 +149,7 @@ DOCKER_HAPI_DEV_APPEND=-p ${PORT_HAPI}:${PORT_HAPI}
141149
DOCKER_HUB_PRODUCTION=--link hubdb:hubdb -v ${PATH_KEYS_HUB_AUTH}:/home/autossh/.ssh/:rw -v ${PATH_KEYS_HUB_SSH}:/etc/ssh/:rw -p ${PORT_AUTOSSH}:22 -p ${PORT_HUB_WEB}:3002
142150
DOCKER_HUB_DEV_APPEND=
143151
#
144-
DOCKER_HUBDB_PRODUCTION=-v ${PATH_MONGO}:/data/db/:rw
152+
DOCKER_HUBDB_PRODUCTION=-v ${PATH_MONGO}:/data/db/:rw -v ${PATH_MONGO_DUMP}:/data/dump/:rw
145153
DOCKER_HUBDB_DEV_APPEND=-p ${PORT_MONGO}:27017
146154
#
147155
DOCKER_QI_PRODUCTION=--link hubdb:hubdb

0 commit comments

Comments
 (0)