Skip to content

Commit

Permalink
Merge pull request #85 from trucemop/docker
Browse files Browse the repository at this point in the history
Docker example update
  • Loading branch information
klucar committed Oct 10, 2016
2 parents 6cda9c4 + 186edeb commit 8f46ee0
Show file tree
Hide file tree
Showing 12 changed files with 199 additions and 458 deletions.
Expand Up @@ -179,7 +179,7 @@
"downsampleAggregator": "max",
"downsampleFillPolicy": "none",
"downsampleInterval": "1s",
"metric": "sys.cpu0.user",
"metric": "sys.cpu.user",
"refId": "A",
"tags": {
"host": ".*"
Expand Down Expand Up @@ -265,7 +265,7 @@
"downsampleAggregator": "max",
"downsampleFillPolicy": "none",
"downsampleInterval": "1s",
"metric": "sys.cpu0.user",
"metric": "sys.cpu.user",
"refId": "A",
"tags": {
"rack": ".*"
Expand Down Expand Up @@ -351,7 +351,7 @@
"downsampleAggregator": "max",
"downsampleFillPolicy": "none",
"downsampleInterval": "1s",
"metric": "sys.cpu0.user",
"metric": "sys.cpu.user",
"refId": "A",
"tags": {}
}
Expand Down
Expand Up @@ -179,7 +179,7 @@
"downsampleAggregator": "max",
"downsampleFillPolicy": "none",
"downsampleInterval": "1s",
"metric": "sys.cpu0.user",
"metric": "sys.cpu.user",
"refId": "A",
"tags": {
"host": ".*"
Expand Down Expand Up @@ -265,7 +265,7 @@
"downsampleAggregator": "max",
"downsampleFillPolicy": "none",
"downsampleInterval": "1s",
"metric": "sys.cpu0.user",
"metric": "sys.cpu.user",
"refId": "A",
"tags": {
"rack": ".*"
Expand Down Expand Up @@ -351,7 +351,7 @@
"downsampleAggregator": "max",
"downsampleFillPolicy": "none",
"downsampleInterval": "1s",
"metric": "sys.cpu0.user",
"metric": "sys.cpu.user",
"refId": "A",
"tags": {}
}
Expand Down
13 changes: 9 additions & 4 deletions server/Dockerfile
Expand Up @@ -5,14 +5,19 @@ MAINTAINER Jim Klucar "klucar@gmail.com"
VOLUME /timely-server-src
VOLUME /timely




RUN yum -y update && \
yum -y install java-1.8.0-openjdk-devel maven openssl apr && \
mkdir -p /timely/bin
yum -y install java-1.8.0-openjdk-devel maven openssl apr wget epel-release && \
yum -y install bouncycastle && \
mkdir -p /timely/bin && \
echo "security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider" >> /usr/lib/jvm/java-1.8.0-openjdk/jre/lib/security/java.security && \
ln -sf /usr/share/java/bcprov.jar /usr/lib/jvm/java-1.8.0-openjdk/jre/lib/ext/bcprov.jar

ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-1.b14.el7_2.x86_64
ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk

EXPOSE 9804 54321 54322

ENV TIMELY_VERSION 0.0.3-SNAPSHOT

#CMD /timely/bin/timely-standalone.sh
4 changes: 4 additions & 0 deletions server/bin/docker/deploy-env.sh
@@ -0,0 +1,4 @@
#!/bin/sh

export SRC_DIR=/timely-server-src
export TIMELY_DIR=/timely
9 changes: 7 additions & 2 deletions server/bin/docker/deploy-startup-standalone.sh
@@ -1,6 +1,11 @@
#!/bin/sh

WORKING="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

. "${WORKING}/deploy-env.sh"

set -e
/timely-server-src/bin/docker/deploy-timely-build.sh
/timely/bin/timely-standalone.sh
"${SRC_DIR}/bin/docker/genCerts.sh"
"${SRC_DIR}/bin/docker/deploy-timely-build.sh"
"${TIMELY_DIR}/bin/timely-standalone.sh"

8 changes: 6 additions & 2 deletions server/bin/docker/deploy-timely-build.sh
@@ -1,5 +1,9 @@
#!/bin/sh
#!/bin/bash

WORKING="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

. "${WORKING}/deploy-env.sh"

set -e
tar xzf /timely-server-src/target/timely-server-$TIMELY_VERSION-dist.tar.gz -C /timely --strip-components 1
tar xzf "${SRC_DIR}/target/timely-server-$TIMELY_VERSION-dist.tar.gz" -C "${TIMELY_DIR}" --strip-components 1

62 changes: 50 additions & 12 deletions server/bin/docker/deploy-wait-and-insert.sh
@@ -1,19 +1,57 @@
#!/bin/sh
#!/bin/bash

/timely-server-src/bin/docker/deploy-timely-build.sh
WORKING="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

. "${WORKING}/deploy-env.sh"

/timely-server-src/bin/docker/wait-for-it.sh timely:54322 -t 45
"${SRC_DIR}/bin/docker/deploy-timely-build.sh"

# create datasource in grafana
#curl -X POST -u admin:admin -H "Content-Type: application/json" -d \
#'{"name":"Timely","type":"opentsdb","url":"https://timely:54322","access":"proxy","jsonData":{"tsdbVersion":1,"tsdbResolution":1}}' \
#http://grafana:3000/api/datasources

# insert the dashboard
#curl -X POST -u admin:admin -H "Content-Type: application/json" \
#-d @/timely-server-src/bin/docker/standalone_test.json \
#http://grafana:3000/api/dashboards/db
"${SRC_DIR}/bin/docker/wait-for-it.sh" timely:54322 -t 45

/timely/bin/insert-test-data.sh

# enable app
curl -k -H "Content-Type: application/json" -d \
'{
"enabled":true
}' \
https://admin:admin@grafana:3000/api/plugins/timely-app/settings

# create data source
curl -k -H "Content-Type: application/json" -d \
'{
"name":"Timely",
"type":"timely-datasource",
"Access":"direct",
"jsonData":
{
"timelyHost":"localhost",
"httpsPort":"54322",
"wsPort":"54323",
"basicAuths":true
}
}' \
https://admin:admin@grafana:3000/api/datasources


# import the dashboard
curl -k -H "Content-Type: application/json" -d \
'{
"pluginId":"timely-datasource",
"path":"dashboards/standalone_test.json",
"overwrite":false,
"inputs":[{
"name":"*",
"type":"datasource",
"pluginId":"timely-datasource",
"value":"Timely"
}]
}' \
https://admin:admin@grafana:3000/api/dashboards/import

# star the dashboard
curl -k -X POST https://admin:admin@grafana:3000/api/user/stars/dashboard/1

"${TIMELY_DIR}/bin/insert-test-data.sh"

56 changes: 56 additions & 0 deletions server/bin/docker/genCerts.sh
@@ -0,0 +1,56 @@
#!/bin/bash

WORKING="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

. "${WORKING}/deploy-env.sh"

PASSPREFIX=pass:
KEYPASS=password
export PASSWORD=$PASSPREFIX$KEYPASS

if [ ! -d "${SRC_DIR}/pki" ]; then
mkdir "${SRC_DIR}/pki"
pushd "${SRC_DIR}/pki"

#Create a private key

openssl genrsa -aes256 -out CA.key -passout env:PASSWORD 4096

#Create a certificate request using the private key

openssl req -x509 -new -key CA.key -sha256 -nodes -days 365 -out CA.pem -passin env:PASSWORD -subj '/C=US/ST=Confusion/L=Here/O=Timely/OU=Server/CN=localhost/emailAddress=noreply@localhost/subjectAltName=DNS.1=127.0.0.1'

#Create your SSL material for Grafana

#Create the private key for the Grafana server

openssl genrsa -out grafana.key -passout env:PASSWORD 4096

#Generate a certificate signing request (CSR) with our Grafana private key

openssl req -new -key grafana.key -sha256 -nodes -out grafana.csr -subj '/C=US/ST=Confusion/L=Here/O=Timely/OU=Server/CN=localhost/emailAddress=noreply@localhost/subjectAltName=DNS.1=127.0.0.1'

#Use the CSR and the CA to create a certificate for the server (a reply to the CSR)

openssl x509 -req -in grafana.csr -CA CA.pem -CAkey CA.key -CAcreateserial -out grafana.crt -days 365 -passin env:PASSWORD

#Create your SSL material for Timely

#Create the private key for the Timely server

openssl genrsa -out timely.key 4096

#Generate a certificate signing request (CSR) with our Timely private key

openssl req -new -key timely.key -sha256 -nodes -subj '/C=US/ST=Confusion/L=Here/O=Timely/OU=Server/CN=localhost/emailAddress=noreply@localhost/subjectAltName=DNS.1=127.0.0.1' > timely.csr

#Use the CSR and the CA to create a certificate for the server (a reply to the CSR)

openssl x509 -req -in timely.csr -CA CA.pem -CAkey CA.key -CAcreateserial -out timely.crt -days 365 -passin env:PASSWORD

#Convert the private key to pkcs#8 format

openssl pkcs8 -topk8 -inform PEM -outform PEM -in timely.key -out timely-pkcs8.key -passout env:PASSWORD
popd
fi

4 changes: 2 additions & 2 deletions server/bin/docker/grafana/grafana.ini
Expand Up @@ -55,8 +55,8 @@ http_port = 3000
;enable_gzip = false

# https certs & key file
cert_file = /etc/grafana/pki/timely-cert.pem
cert_key = /etc/grafana/pki/timely-key.pem
cert_file = /timely-server-src/pki/grafana.crt
cert_key = /timely-server-src/pki/grafana.key

#################################### Database ####################################
[database]
Expand Down

0 comments on commit 8f46ee0

Please sign in to comment.