-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathinstallinterfaceengine.txt
More file actions
81 lines (65 loc) · 3.12 KB
/
installinterfaceengine.txt
File metadata and controls
81 lines (65 loc) · 3.12 KB
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
#!/bin/sh
#exit immediately if a command exists with a non-zero status
set -e
#
# Usage:
# 'curl -SSL https://healthcatalyst.github.io/InstallScripts/installmirthconnect.txt | sh -s <mirthuser>'
#
echo "Starting setup..."
u="$(whoami)"
echo "User name: $u"
mirthuser="$1"
echo "==== Creating update script ===="
installfolder="/opt/install/"
mkdir -p $HOME/bin
if [[ ! -d "$installfolder" ]]; then
sudo mkdir -p $installfolder
sudo setfacl -m u:$u:rwx $installfolder
fi
echo "==== existing containers on this host ===="
docker ps -a
echo "==== existing images on this host ===="
docker images
echo "==== existing volumes on this host ===="
docker volume ls
# check to see if volume already exists. if not, create it
if [ -z $(docker volume ls -q --filter "name=mirthconnectdata") ]; then
echo "==== Creating persistent volume for Archive ===="
docker volume create --name fabric.docker.interfaceengine.data
fi
echo "stopping existing docker container"
docker stop fabric.docker.interfaceengine || echo 'no container to stop'
echo "removing docker container"
docker rm fabric.docker.interfaceengine || echo 'no container to remove'
echo "removing docker image"
docker rmi healthcatalyst/fabric.docker.interfaceengine || echo 'no image to remove'
echo "pulling latest docker image from repo"
docker pull healthcatalyst/fabric.docker.interfaceengine
echo "starting docker container with new image"
set -x
docker run -d -p 8080:8080 -p 8443:8443 -v fabric.docker.interfaceengine.data:/data --name fabric.docker.interfaceengine healthcatalyst/fabric.docker.interfaceengine
set +x
echo "sleeping until docker container is up"
until [ "`/usr/bin/docker inspect -f {{.State.Running}} fabric.docker.interfaceengine.`"=="true" ]; do
sleep 1s;
done;
docker exec fabric.docker.interfaceengine mkdir -p /data/archive
docker exec fabric.docker.interfaceengine mkdir -p /data/error
kerberosfile="krb5.conf"
kerberospath=$installfolder$kerberosfile
echo "Checking if [$kerberospath] exists"
if [[ -f "$kerberospath" ]]; then
echo "copying kerberos configuration file from $installfolder"
docker cp $installfolder/krb5.conf fabric.docker.interfaceengine:/etc/krb5.conf
docker cp $installfolder/SQLJDBCDriver.conf fabric.docker.interfaceengine:/opt/mirthconnect/conf/SQLJDBCDriver.conf
docker cp $installfolder/mirth.keytab fabric.docker.interfaceengine:/opt/mirthconnect/conf/mirth.keytab
docker exec fabric.docker.interfaceengine sed -i "\$a-Djava.security.auth.login.config=/opt/mirthconnect/conf/SQLJDBCDriver.conf" /opt/mirthconnect/mcservice.vmoptions
docker exec fabric.docker.interfaceengine sed -i "\$a-Djava.security.krb5.conf=/etc/krb5.conf" /opt/mirthconnect/mcservice.vmoptions
docker exec fabric.docker.interfaceengine sed -i -e 's/username@domain/"$mirthuser"/g' /opt/mirthconnect/startmirthandrenewcredentials.sh
docker exec fabric.docker.interfaceengine kinit $mirthuser -k -t /opt/mirthconnect/conf/mirth.keytab
docker restart fabric.docker.interfaceengine
else
echo "ERROR: No keberos configuration files found in [$kerberospath] so integrated security won't work"
fi
echo "==== Listing running docker containers ===="
docker ps