summaryrefslogtreecommitdiff
path: root/src/local/neo4j-mux/neo4j-mux-installer
blob: 3c0ca45b73e7856b0831ee325d937641cab69c39 (plain)
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash

#
# Multiplexed Neo4J instance installer
#
# generated config dir structure:
#
#   /etc/neo4j/mux-conf.d/
#   └── dom-x
#       ├── neo4j.properties
#       ├── neo4j-server.properties
#       └──  ...
#
# generated root dir structure:
#
#   /var/lib/neo4j/mux-root.d/
#   └── dom-x
#       ├── data/
#       ├── bin -> /var/lib/neo4j/bin
#       ├── conf -> /etc/neo4j/mux-conf.d/dom-y
#       ├── lib -> /usr/share/neo4j/lib
#       ├── plugins -> /usr/share/neo4j/plugins
#       └── system -> /usr/share/neo4j/system
#

die() {
    echo $1 1>&2; exit 1
}

install_neo4j_instance() {

    [[ -e "/etc/init.d/${RZ_NEO4J_SVC_NAME}" ]] && die "${RZ_NEO4J_SVC_NAME} already installed."

    install -v --owner=${NEO4J_USER} --group=adm --directory /etc/neo4j/mux-conf.d/${RZ_INSTANCE_NAME}
    install -v --owner=${NEO4J_USER} --group=adm --directory /etc/neo4j/mux-conf.d/${RZ_INSTANCE_NAME}
    install -v --owner=${NEO4J_USER} --group=adm --directory /etc/neo4j/mux-conf.d/${RZ_INSTANCE_NAME}/ssl
    install -v --owner=${NEO4J_USER} --group=adm --directory /var/lib/neo4j/mux-root.d/${RZ_INSTANCE_NAME}
    install -v --owner=${NEO4J_USER} --group=adm --directory /var/lib/neo4j/mux-root.d/${RZ_INSTANCE_NAME}/data

    cp /etc/neo4j/custom-logback.xml \
       /etc/neo4j/jmx.access \
       /etc/neo4j/jmx.password \
       /etc/neo4j/logging.properties \
       /etc/neo4j/neo4j-http-logging.xml \
       /etc/neo4j/neo4j.properties \
       /etc/neo4j/neo4j-server.properties \
       /etc/neo4j/neo4j-wrapper.conf \
       /etc/neo4j/mux-conf.d/${RZ_INSTANCE_NAME}

    cp /etc/neo4j/custom-logback.xml \
       /etc/neo4j/ssl/snakeoil.cert \
       /etc/neo4j/ssl/snakeoil.key \
       /etc/neo4j/mux-conf.d/${RZ_INSTANCE_NAME}/ssl

    ln -vs /etc/neo4j/mux-conf.d/${RZ_INSTANCE_NAME}          -T /var/lib/neo4j/mux-root.d/${RZ_INSTANCE_NAME}/conf
    ln -vs /var/lib/neo4j/bin                                      -T /var/lib/neo4j/mux-root.d/${RZ_INSTANCE_NAME}/bin
    ln -vs /usr/share/neo4j/lib                                    -T /var/lib/neo4j/mux-root.d/${RZ_INSTANCE_NAME}/lib
    ln -vs /usr/share/neo4j/plugins                                -T /var/lib/neo4j/mux-root.d/${RZ_INSTANCE_NAME}/plugins
    ln -vs /usr/share/neo4j/system                                 -T /var/lib/neo4j/mux-root.d/${RZ_INSTANCE_NAME}/system

    python /tmp/neo-m/gen_demain_neo4j_conf.py --domain ${RZ_INSTANCE_NAME}
}

DEFAULT_USER='neo4j'

NEO4J_HOME=`(cd  $(dirname $0)/.. && pwd)`
NEO4J_USER=neo4j

SCRIPT_NAME="${NEO4J_HOME}/bin/neo4j"

RZ_NEO4J_SVC_NAME='neo4j-service__domain-x'
SVC_INIT_SCRIPT_PATH=/etc/init.d/${RZ_NEO4J_SVC_NAME}

PID_FILE=/var/run/${RZ_NEO4J_SVC_NAME}

RZ_INSTANCE_NAME=$2

[ $UID != 0 ] && die 'must be root to continue.'
[ -z ${RZ_INSTANCE_NAME} ] && die 'RZ_INSTANCE_NAME arg missing, aborting'
[ -e "$PID_FILE" ] && die '${RZ_NEO4J_SVC_NAME} already running, please stop it before continuing'

case $1 in
    install)
        install_neo4j_instance

        tree /var/lib/neo4j/mux-root.d/
        tree /etc/neo4j/mux-conf.d/
    ;;
    uninstall)
        rm ${SVC_INIT_SCRIPT_PATH}
        rm -rf /etc/neo4j/mux-conf.d/${RZ_INSTANCE_NAME}
        rm -rf /var/lib/neo4j/mux-root.d/${RZ_INSTANCE_NAME}
    ;;
    *)
    echo "Usage: $0 <install|remove>"
    ;;
esac