mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-14 22:43:57 +00:00
Merge remote branch 'origin/master'
This commit is contained in:
commit
19ea623c83
2115 files changed
+400667
-60650
No files matched your search
@@ -35,3 +35,7 @@ captures
|
||||
/.recommenders/
|
||||
/java/.recommenders/
|
||||
java/com.sap.sailing.selenium.test/com.sap.sailing.selenium.test (No Proxy) individual.launch
|
||||
|
||||
## Kubernetes
|
||||
kubernetes/aws-alb-ingress-controller.yaml
|
||||
java/com.sap.sailing.gwt.ui/360_VR_Wimbachklamm.mp4
|
||||
Regular → Executable
File mode changed.
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# mountnvmeswap Formats and mounts a yet unpartitioned NVMe volume as swap
|
||||
#
|
||||
# chkconfig: 2345 95 10
|
||||
# description: Formats and mounts a yet unpartitioned NVMe volume as swap
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: mountnvmeswap
|
||||
# Required-Start: $local_fs $network
|
||||
# Should-Start:
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Formats and mounts a yet unpartitioned NVMe volume as swap
|
||||
# Description: Formats and mounts a yet unpartitioned NVMe volume as swap
|
||||
### END INIT INFO
|
||||
|
||||
# Source function library.
|
||||
. /etc/init.d/functions
|
||||
|
||||
RETVAL=0
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start)
|
||||
/usr/local/bin/mountnvmeswap
|
||||
;;
|
||||
stop)
|
||||
;;
|
||||
status)
|
||||
swapon -s | grep /dev/nvme0n1
|
||||
RETVAL=$?
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|status|stop}"
|
||||
RETVAL=3
|
||||
esac
|
||||
|
||||
exit $RETVAL
|
||||
@@ -12,8 +12,15 @@
|
||||
# that the new replica never becomes PRIMARY by setting the priority to 0
|
||||
#
|
||||
AVAILABILITY_ZONE=eu-west-1c
|
||||
INSTANCE_TYPE=i2.xlarge
|
||||
IMAGE_ID=ami-0e5f927ef86e00bd2
|
||||
INSTANCE_TYPE=i3.xlarge
|
||||
# eu-west-1:
|
||||
IMAGE_ID=ami-054a4c20d297ab81e
|
||||
# eu-west-2:
|
||||
#IMAGE_ID=ami-0c0907685eae2dbab
|
||||
# eu-west-1:
|
||||
SECURITY_GROUP_ID=sg-0a9bc2fb61f10a342
|
||||
# eu-west-2:
|
||||
#SECURITY_GROUP_ID=sg-02649c35a73ee0ae5
|
||||
KEY_NAME=Axel
|
||||
REPLICA_SET_NAME=
|
||||
REPLICA_SET_PRIMARY=
|
||||
@@ -57,8 +64,7 @@ do
|
||||
exit 4;;
|
||||
esac
|
||||
done
|
||||
|
||||
aws ec2 run-instances --placement AvailabilityZone=$AVAILABILITY_ZONE --instance-type $INSTANCE_TYPE --security-group-ids sg-0a9bc2fb61f10a342 --image-id $IMAGE_ID --count 1 --user-data "REPLICA_SET_NAME=$REPLICA_SET_NAME
|
||||
aws ec2 run-instances --placement AvailabilityZone=$AVAILABILITY_ZONE --instance-type $INSTANCE_TYPE --security-group-ids ${SECURITY_GROUP_ID} --image-id $IMAGE_ID --count 1 --user-data "REPLICA_SET_NAME=$REPLICA_SET_NAME
|
||||
REPLICA_SET_PRIMARY=$REPLICA_SET_PRIMARY
|
||||
REPLICA_SET_PRIORITY=$REPLICA_SET_PRIORITY
|
||||
REPLICA_SET_VOTES=$REPLICA_SET_VOTES" --ebs-optimized --key-name $KEY_NAME --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=MongoDB Replica Set $REPLICA_SET_NAME P$REPLICA_SET_PRIORITY}]" "ResourceType=volume,Tags=[{Key=Name,Value=MongoDB Replica Set $REPLICA_SET_NAME P$REPLICA_SET_PRIORITY}]"
|
||||
REPLICA_SET_VOTES=$REPLICA_SET_VOTES" --ebs-optimized --key-name $KEY_NAME --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=MongoDB Replica Set $REPLICA_SET_NAME P$REPLICA_SET_PRIORITY},{Key=mongo-replica-sets,Value=$REPLICA_SET_NAME}]" "ResourceType=volume,Tags=[{Key=Name,Value=MongoDB Replica Set $REPLICA_SET_NAME P$REPLICA_SET_PRIORITY}]"
|
||||
@@ -277,11 +277,13 @@ if [[ "$@" == "release" ]]; then
|
||||
cp -v $PROJECT_HOME/java/target/refreshInstance.sh $ACDIR/
|
||||
|
||||
cp -v $PROJECT_HOME/java/target/env.sh $ACDIR/
|
||||
cp -v $PROJECT_HOME/java/target/env-default-rules.sh $ACDIR/
|
||||
cp -v $PROJECT_HOME/java/target/defineReverseProxyMappings.sh $ACDIR/
|
||||
cp -v $p2PluginRepository/configuration/config.ini configuration/
|
||||
|
||||
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/jetty.xml configuration/jetty/etc
|
||||
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/jetty-http.xml configuration/jetty/etc
|
||||
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/jetty-deployer.xml configuration/jetty/etc
|
||||
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/jetty-deploy.xml configuration/jetty/etc
|
||||
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/realm.properties configuration/jetty/etc
|
||||
cp -v $PROJECT_HOME/java/target/configuration/monitoring.properties configuration/
|
||||
cp -v $PROJECT_HOME/java/target/configuration/mail.properties configuration/
|
||||
@@ -335,7 +337,7 @@ INSTALL_FROM_RELEASE=$SIMPLE_VERSION_INFO
|
||||
SSH_CMD="ssh $REMOTE_SERVER_LOGIN"
|
||||
SCP_CMD="scp -r"
|
||||
|
||||
echo "Packaged release $PROJECT_HOME/dist/$SIMPLE_VERSION_INFO.tar.gz! I've put an env.sh that matches the current branch to $PROJECT_HOME/dist/$SIMPLE_VERSION_INFO/env.sh!"
|
||||
echo "Packaged release $PROJECT_HOME/dist/$SIMPLE_VERSION_INFO.tar.gz! I've put an env.sh that matches the current branch to $PROJECT_HOME/dist/$SIMPLE_VERSION_INFO/env.sh!"
|
||||
|
||||
echo "Checking the remote connection..."
|
||||
REMOTE_HOME=`ssh $REMOTE_SERVER_LOGIN 'echo $HOME/releases'`
|
||||
@@ -597,6 +599,7 @@ if [[ "$@" == "build" ]] || [[ "$@" == "all" ]]; then
|
||||
echo "Maven version used: `mvn --version`"
|
||||
echo "JAVA_HOME used: $JAVA_HOME"
|
||||
(cd com.sap.$PROJECT_TYPE.targetplatform.base; mvn -fae -s $MAVEN_SETTINGS $clean compile 2>&1 | tee -a $START_DIR/build.log)
|
||||
(cd com.amazon.aws.aws-java-api; ./createLocalAwsApiP2Repository.sh | tee -a $START_DIR/build.log)
|
||||
# now get the exit status from mvn, and not that of tee which is what $? contains now
|
||||
MVN_EXIT_CODE=${PIPESTATUS[0]}
|
||||
echo "Maven exit code is $MVN_EXIT_CODE"
|
||||
@@ -604,7 +607,7 @@ if [[ "$@" == "build" ]] || [[ "$@" == "all" ]]; then
|
||||
(cd com.sap.$PROJECT_TYPE.targetplatform/scripts; ./createLocalTargetDef.sh)
|
||||
extra="$extra -Dp2-local" # activates the p2-target.local profile in java/pom.xml
|
||||
else
|
||||
echo "INFO: Using remote p2 repo (http://p2.sapsailing.com/p2/sailing/)"
|
||||
echo "INFO: Using remote p2 repos (http://p2.sapsailing.com/p2/sailing/ and http://p2.sapsailing.com/p2/aws-sdk/)"
|
||||
fi
|
||||
|
||||
# back to root!
|
||||
@@ -810,11 +813,13 @@ if [[ "$@" == "install" ]] || [[ "$@" == "all" ]]; then
|
||||
cp -v $p2PluginRepository/configuration/config.ini configuration/
|
||||
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/jetty.xml configuration/jetty/etc
|
||||
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/jetty-http.xml configuration/jetty/etc
|
||||
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/jetty-deployer.xml configuration/jetty/etc
|
||||
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/jetty-deploy.xml configuration/jetty/etc
|
||||
cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/realm.properties configuration/jetty/etc
|
||||
|
||||
if [ ! -f "$ACDIR/env.sh" ]; then
|
||||
cp -v $PROJECT_HOME/java/target/env.sh $ACDIR/
|
||||
cp -v $PROJECT_HOME/java/target/env-default-rules.sh $ACDIR/
|
||||
cp -v $PROJECT_HOME/java/target/defineReverseProxyMappings.sh $ACDIR/
|
||||
cp -v $PROJECT_HOME/java/target/configuration/monitoring.properties $ACDIR/configuration/
|
||||
cp -v $PROJECT_HOME/java/target/configuration/mail.properties $ACDIR/configuration/
|
||||
cp -v $PROJECT_HOME/java/target/configuration/logging.properties $ACDIR/configuration/
|
||||
@@ -830,6 +835,7 @@ if [[ "$@" == "install" ]] || [[ "$@" == "all" ]]; then
|
||||
|
||||
# make sure to read the information from env.sh
|
||||
. $ACDIR/env.sh
|
||||
. $ACDIR/env-default-rules.sh
|
||||
|
||||
echo "$VERSION_INFO System:" > $ACDIR/configuration/jetty/version.txt
|
||||
|
||||
@@ -894,12 +900,14 @@ if [[ "$@" == "remote-deploy" ]]; then
|
||||
$SCP_CMD $p2PluginRepository/configuration/config.ini $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/
|
||||
$SCP_CMD $PROJECT_HOME/java/target/configuration/jetty/etc/jetty.xml $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/jetty/etc
|
||||
$SCP_CMD $PROJECT_HOME/java/target/configuration/jetty/etc/jetty-http.xml $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/jetty/etc
|
||||
$SCP_CMD $PROJECT_HOME/java/target/configuration/jetty/etc/jetty-deployer.xml $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/jetty/etc
|
||||
$SCP_CMD $PROJECT_HOME/java/target/configuration/jetty/etc/jetty-deploy.xml $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/jetty/etc
|
||||
$SCP_CMD $PROJECT_HOME/java/target/configuration/jetty/etc/realm.properties $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/jetty/etc
|
||||
$SCP_CMD $PROJECT_HOME/java/target/configuration/monitoring.properties $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/
|
||||
$SCP_CMD $PROJECT_HOME/java/target/configuration/mail.properties $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/
|
||||
|
||||
$SCP_CMD $PROJECT_HOME/java/target/env.sh $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/
|
||||
$SCP_CMD $PROJECT_HOME/java/target/env-default-rules.sh $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/
|
||||
$SCP_CMD $PROJECT_HOME/java/target/defineReverseProxyMappings.sh $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/
|
||||
$SCP_CMD $PROJECT_HOME/java/target/start $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/
|
||||
$SCP_CMD $PROJECT_HOME/java/target/stop $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/
|
||||
$SCP_CMD $PROJECT_HOME/java/target/status $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/
|
||||
|
||||
Executable
+837
@@ -0,0 +1,837 @@
|
||||
<Macro ArchiveRewrite>
|
||||
# new ARCHIVE, based on i3.2xlarge, 64GB RAM and 1.9TB swap
|
||||
Use Rewrite 172.31.20.241 8888
|
||||
# new ARCHIVE, based on i3.2xlarge, 64GB RAM and 1.9TB swap
|
||||
# Use Rewrite 172.31.26.29 8888
|
||||
</Macro>
|
||||
|
||||
<Macro Headers>
|
||||
SetEnvIf Request_Method POST REQUEST_IS_POST=1
|
||||
SetEnvIf Request_URI ^/gateway.* REQUEST_IS_POST=1
|
||||
SetEnvIf Request_URI ^/gwt/RegattaOverview.* REQUEST_IS_POST=1
|
||||
SetEnvIf Request_URI ^/?$ REQUEST_IS_POST=1
|
||||
|
||||
Header set Expires "Sun, 19 Nov 1978 05:00:00 GMT" env=REQUEST_IS_POST
|
||||
Header set Cache-Control no-cache,no-store,must-revalidate,post-check=0,pre-check=0 env=REQUEST_IS_POST
|
||||
|
||||
AddOutputFilterByType DEFLATE text/plain
|
||||
AddOutputFilterByType DEFLATE text/html
|
||||
AddOutputFilterByType DEFLATE text/xml
|
||||
AddOutputFilterByType DEFLATE text/json
|
||||
AddOutputFilterByType DEFLATE application/json
|
||||
AddOutputFilterByType DEFLATE text/css
|
||||
AddOutputFilterByType DEFLATE image/gif
|
||||
AddOutputFilterByType DEFLATE image/png
|
||||
AddOutputFilterByType DEFLATE image/jpeg
|
||||
AddOutputFilterByType DEFLATE application/xml
|
||||
AddOutputFilterByType DEFLATE application/xhtml+xml
|
||||
AddOutputFilterByType DEFLATE application/rss+xml
|
||||
AddOutputFilterByType DEFLATE application/javascript
|
||||
AddOutputFilterByType DEFLATE application/x-javascript
|
||||
|
||||
AllowEncodedSlashes NoDecode
|
||||
</Macro>
|
||||
|
||||
<Macro Headers-Tennis>
|
||||
AllowEncodedSlashes On
|
||||
|
||||
SetEnvIf Request_Method POST REQUEST_IS_POST=1
|
||||
SetEnvIf Request_URI ^/?$ REQUEST_IS_POST=1
|
||||
|
||||
Header set Expires "Sun, 19 Nov 1978 05:00:00 GMT" env=REQUEST_IS_POST
|
||||
Header set Cache-Control no-cache,no-store,must-revalidate,post-check=0,pre-check=0 env=REQUEST_IS_POST
|
||||
|
||||
<IfModule mod_mime.c>
|
||||
AddType text/css .css
|
||||
AddType application/x-javascript .js
|
||||
AddType text/x-component .htc
|
||||
AddType text/html .html .htm
|
||||
AddType text/richtext .rtf .rtx
|
||||
AddType image/svg+xml .svg .svgz
|
||||
AddType text/plain .txt
|
||||
AddType text/xsd .xsd
|
||||
AddType text/xsl .xsl
|
||||
AddType text/xml .xml
|
||||
AddType video/asf .asf .asx .wax .wmv .wmx
|
||||
AddType video/avi .avi
|
||||
AddType image/bmp .bmp
|
||||
AddType application/java .class
|
||||
AddType video/divx .divx
|
||||
AddType application/msword .doc .docx
|
||||
AddType application/vnd.ms-fontobject .eot
|
||||
AddType application/x-msdownload .exe
|
||||
AddType image/gif .gif
|
||||
AddType application/x-gzip .gz .gzip
|
||||
AddType image/x-icon .ico
|
||||
AddType image/jpeg .jpg .jpeg .jpe
|
||||
AddType application/vnd.ms-access .mdb
|
||||
AddType audio/midi .mid .midi
|
||||
AddType video/quicktime .mov .qt
|
||||
AddType audio/mpeg .mp3 .m4a
|
||||
AddType video/mp4 .mp4 .m4v
|
||||
AddType video/mpeg .mpeg .mpg .mpe
|
||||
AddType application/vnd.ms-project .mpp
|
||||
AddType application/x-font-otf .otf
|
||||
AddType application/vnd.oasis.opendocument.database .odb
|
||||
AddType application/vnd.oasis.opendocument.chart .odc
|
||||
AddType application/vnd.oasis.opendocument.formula .odf
|
||||
AddType application/vnd.oasis.opendocument.graphics .odg
|
||||
AddType application/vnd.oasis.opendocument.presentation .odp
|
||||
AddType application/vnd.oasis.opendocument.spreadsheet .ods
|
||||
AddType application/vnd.oasis.opendocument.text .odt
|
||||
AddType audio/ogg .ogg
|
||||
AddType application/pdf .pdf
|
||||
AddType image/png .png
|
||||
AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx
|
||||
AddType audio/x-realaudio .ra .ram
|
||||
AddType application/x-shockwave-flash .swf
|
||||
AddType application/x-tar .tar
|
||||
AddType image/tiff .tif .tiff
|
||||
AddType application/x-font-ttf .ttf .ttc
|
||||
AddType audio/wav .wav
|
||||
AddType audio/wma .wma
|
||||
AddType application/vnd.ms-write .wri
|
||||
AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw
|
||||
AddType application/zip .zip
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_deflate.c>
|
||||
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
|
||||
<IfModule mod_setenvif.c>
|
||||
<IfModule mod_headers.c>
|
||||
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
|
||||
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
<IfModule filter_module>
|
||||
# HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
|
||||
FilterDeclare COMPRESS
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/html'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/css'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/plain'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/x-component'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/javascript'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/json'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/xhtml+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/rss+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/atom+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/vnd.ms-fontobject'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/svg+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/x-icon'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/gif'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/jpeg'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/png'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/x-font-ttf'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$font/opentype'"
|
||||
FilterChain COMPRESS
|
||||
FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
|
||||
</IfModule>
|
||||
|
||||
<IfModule !mod_filter.c>
|
||||
# Legacy versions of Apache
|
||||
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
|
||||
AddOutputFilterByType DEFLATE application/javascript
|
||||
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
|
||||
AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
|
||||
AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
</Macro>
|
||||
|
||||
<Macro Rewrite $IP $PORT>
|
||||
ProxyPass "/" "http://$IP:$PORT/" nocanon
|
||||
# This is what is was before, requiring AllowEncodedSlashes On instead of NoDecode:
|
||||
# RewriteRule ^/(.*)$ http://$IP:$PORT/$1 [P,L]
|
||||
ProxyPassReverse / http://$IP:$PORT/
|
||||
ProxyPreserveHost On
|
||||
</Macro>
|
||||
|
||||
<Macro SSL>
|
||||
SSLEngine On
|
||||
SSLCertificateFile /etc/pki/tls/certs/star_sapsailing_com.crt
|
||||
SSLCertificateKeyFile /etc/pki/tls/private/star_sapsailing_com.key
|
||||
SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
|
||||
</Macro>
|
||||
|
||||
<Macro SSL-sail-insight>
|
||||
SSLEngine On
|
||||
SSLCertificateFile /etc/letsencrypt/live/sail-insight.com/cert.pem
|
||||
SSLCertificateKeyFile /etc/letsencrypt/live/sail-insight.com/privkey.pem
|
||||
SSLCertificateChainFile /etc/letsencrypt/live/sail-insight.com/fullchain.pem
|
||||
</Macro>
|
||||
|
||||
<Macro SSL-Tennis>
|
||||
SSLEngine On
|
||||
SSLCertificateFile /etc/pki/tls/certs/star_saptennis_com.crt
|
||||
SSLCertificateKeyFile /etc/pki/tls/private/star_saptennis_com.key
|
||||
SSLCertificateChainFile /etc/pki/tls/certs/saptennis_chain.crt
|
||||
</Macro>
|
||||
|
||||
<Macro Status $HOSTNAME $PATH>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
<Location /$PATH>
|
||||
SetHandler server-status
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
</Location>
|
||||
CustomLog logs/services_log combined
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Status-SSL $HOSTNAME $PATH>
|
||||
<VirtualHost *:443>
|
||||
ServerName $HOSTNAME
|
||||
Use SSL
|
||||
<Location /$PATH>
|
||||
SetHandler server-status
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
</Location>
|
||||
CustomLog logs/services_log combined
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Home-ARCHIVE $HOSTNAME>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
RewriteEngine on
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Home.html" [L,NE]
|
||||
Use ArchiveRewrite
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Home-ARCHIVE-SSL-Redirect $HOSTNAME>
|
||||
Use RedirectPermanentToSSL $HOSTNAME
|
||||
Use Home-ARCHIVE-SSL $HOSTNAME
|
||||
</Macro>
|
||||
|
||||
<Macro Tennis-With-SSL $HOSTNAME $IP $PORT $PATH>
|
||||
<VirtualHost *:443>
|
||||
ServerName $HOSTNAME
|
||||
Use Headers-Tennis
|
||||
Use SSL-Tennis
|
||||
RewriteEngine on
|
||||
RewriteRule ^(/)?$ https://$HOSTNAME/$PATH [L,NE]
|
||||
RewriteRule ^/(.*)$ http://$IP:$PORT/$1 [P,L]
|
||||
ProxyPassReverse / http://$IP:$PORT/
|
||||
ProxyPreserveHost On
|
||||
CustomLog logs/tennis_log combined
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Tennis-With-SSL-Plain $HOSTNAME $IP $PORT>
|
||||
<VirtualHost *:443>
|
||||
ServerName $HOSTNAME
|
||||
Use Headers-Tennis
|
||||
Use SSL-Tennis
|
||||
RewriteEngine on
|
||||
RewriteRule ^/(.*)$ http://$IP:$PORT/$1 [P,L]
|
||||
ProxyPassReverse / http://$IP:$PORT/
|
||||
ProxyPreserveHost On
|
||||
CustomLog logs/tennis_log combined
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Home-ARCHIVE-SSL $HOSTNAME>
|
||||
<VirtualHost *:443>
|
||||
ServerName $HOSTNAME
|
||||
Use SSL
|
||||
Use Headers
|
||||
RewriteEngine on
|
||||
RewriteRule ^(/)?$ "https://$HOSTNAME/gwt/Home.html" [L,NE]
|
||||
Use ArchiveRewrite
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Home $HOSTNAME $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
RewriteEngine on
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Home.html" [L,NE]
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Home-SSL-Redirect $HOSTNAME $IP $PORT>
|
||||
Use RedirectPermanentToSSL $HOSTNAME
|
||||
Use Home-SSL $HOSTNAME $IP $PORT
|
||||
</Macro>
|
||||
|
||||
<Macro Tennis-SSL-Redirect $HOSTNAME>
|
||||
Use RedirectPermanentToSSL $HOSTNAME
|
||||
</Macro>
|
||||
|
||||
<Macro Tennis-SSL-Redirect-WWW $HOSTNAME>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
RedirectPermanent / https://www.$HOSTNAME/
|
||||
CustomLog logs/tennis_log combined
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Home-SSL $HOSTNAME $IP $PORT>
|
||||
<VirtualHost *:443>
|
||||
ServerName $HOSTNAME
|
||||
Use SSL
|
||||
Use Headers
|
||||
RewriteEngine on
|
||||
RewriteRule ^(/)?$ "https://$HOSTNAME/gwt/Home.html" [L,NE]
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Plain $HOSTNAME $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
Use Headers
|
||||
RewriteEngine on
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Tennis-Plain $HOSTNAME $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
Use Headers
|
||||
RewriteEngine on
|
||||
Use Rewrite $IP $PORT
|
||||
CustomLog logs/tennis_log combined
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
<Macro RedirectPermanentToSSL $HOSTNAME>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
RedirectPermanent / https://$HOSTNAME/
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Plain-SSL-Redirect $HOSTNAME $IP $PORT>
|
||||
Use RedirectPermanentToSSL $HOSTNAME
|
||||
Use Plain-SSL $HOSTNAME $IP $PORT
|
||||
</Macro>
|
||||
|
||||
<Macro Plain-SSL $HOSTNAME $IP $PORT>
|
||||
<VirtualHost *:443>
|
||||
ServerName $HOSTNAME
|
||||
Use SSL
|
||||
Use Headers
|
||||
RewriteEngine on
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro HardRedirect $HOSTNAME $TARGETURL>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
Use Headers
|
||||
RedirectMatch /(.*)$ $TARGETURL/
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro LiveCenterWithLanguageSubstitution-ARCHIVE $HOSTNAME $EVENTUUID>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Home.html?locale=de#/event/:eventId=$EVENTUUID" [L,NE]
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^/en$"
|
||||
RewriteRule ^(/en)?$ "http://$HOSTNAME/gwt/Home.html?locale=en#/event/:eventId=$EVENTUUID" [L,NE]
|
||||
|
||||
Use ArchiveRewrite
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro LiveCenterWithLanguageSubstitution $HOSTNAME $EVENTUUID $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Home.html?locale=de#/event/:eventId=$EVENTUUID" [L,NE]
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^/en$"
|
||||
RewriteRule ^(/en)?$ "http://$HOSTNAME/gwt/Home.html?locale=en#/event/:eventId=$EVENTUUID" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro RibDashboard $HOSTNAME $LEADERBOARD_NAME $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
# The following matches the query string and captures it in group %1 for the RewriteRule to use before the fragment
|
||||
RewriteCond %{QUERY_STRING} "^(.*)$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/dashboards/RibDashboard.html?leaderboardName=$LEADERBOARD_NAME&%1" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
|
||||
<Macro RegattaOverview-WithLeaderboard-WithLanguage $HOSTNAME $EVENTUUID $LANG $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/RegattaOverview.html?event=$EVENTUUID&locale=$LANG&enableLeaderboard=true" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro RegattaOverview-WithLanguage $HOSTNAME $EVENTUUID $LANG $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/RegattaOverview.html?event=$EVENTUUID&locale=$LANG" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro RegattaOverview-WithLeaderboard $HOSTNAME $EVENTUUID $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/RegattaOverview.html?event=$EVENTUUID&enableLeaderboard=true" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Event $HOSTNAME $EVENTUUID $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
# The following matches the query string and captures it in group %1 for the RewriteRule to use before the fragment
|
||||
RewriteCond %{QUERY_STRING} "^(.*)$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Home.html?%1#/event/:eventId=$EVENTUUID" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Event-SSL-Redirect $HOSTNAME $EVENTUUID $IP $PORT>
|
||||
Use RedirectPermanentToSSL $HOSTNAME
|
||||
Use Event-SSL $HOSTNAME $EVENTUUID $IP $PORT
|
||||
</Macro>
|
||||
|
||||
<Macro Event-SSL $HOSTNAME $EVENTUUID $IP $PORT>
|
||||
<VirtualHost *:443>
|
||||
ServerName $HOSTNAME
|
||||
Use SSL
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
# The following matches the query string and captures it in group %1 for the RewriteRule to use before the fragment
|
||||
RewriteCond %{QUERY_STRING} "^(.*)$"
|
||||
RewriteRule ^(/)?$ "https://$HOSTNAME/gwt/Home.html?%1#/event/:eventId=$EVENTUUID" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Series-SSL $HOSTNAME $SERIESUUID $IP $PORT>
|
||||
<VirtualHost *:443>
|
||||
ServerName $HOSTNAME
|
||||
Use SSL
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
# The following matches the query string and captures it in group %1 for the RewriteRule to use before the fragment
|
||||
RewriteCond %{QUERY_STRING} "^(.*)$"
|
||||
RewriteRule ^(/)?$ "https://$HOSTNAME/gwt/Home.html?%1#/series/events/:seriesId=$SERIESUUID" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Series-SSL-Redirect $HOSTNAME $EVENTUUID $IP $PORT>
|
||||
Use RedirectPermanentToSSL $HOSTNAME
|
||||
Use Series-SSL $HOSTNAME $EVENTUUID $IP $PORT
|
||||
</Macro>
|
||||
|
||||
<Macro Series $HOSTNAME $SERIESUUID $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
# The following matches the query string and captures it in group %1 for the RewriteRule to use before the fragment
|
||||
RewriteCond %{QUERY_STRING} "^(.*)$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Home.html?%1#/series/events/:seriesId=$SERIESUUID" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro EventRegattaIntro $HOSTNAME $EVENTUUID $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Home.html#/regatta/overview/:eventId=$EVENTUUID" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Event-WithLanguage $HOSTNAME $EVENTUUID $LANG $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Home.html?locale=$LANG#EventPlace:eventId=$EVENTUUID" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Series-ARCHIVE-SSL-Redirect $HOSTNAME $SERIESUUID>
|
||||
Use RedirectPermanentToSSL $HOSTNAME
|
||||
Use Series-ARCHIVE-SSL $HOSTNAME $SERIESUUID
|
||||
</Macro>
|
||||
|
||||
<Macro Series-ARCHIVE $HOSTNAME $SERIESUUID>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Home.html?%1#/series/events/:leaderboardGroupId=$SERIESUUID" [L,NE]
|
||||
|
||||
Use ArchiveRewrite
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Series-ARCHIVE-SSL $HOSTNAME $SERIESUUID>
|
||||
<VirtualHost *:443>
|
||||
ServerName $HOSTNAME
|
||||
Use SSL
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
# The following matches the query string and captures it in group %1 for the RewriteRule to use before the fragment
|
||||
RewriteCond %{QUERY_STRING} "^(.*)$"
|
||||
RewriteRule ^(/)?$ "https://$HOSTNAME/gwt/Home.html?%1#/series/events/:leaderboardGroupId=$SERIESUUID" [L,NE]
|
||||
|
||||
Use ArchiveRewrite
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Event-ARCHIVE-SSL-Redirect $HOSTNAME $EVENTUUID>
|
||||
Use RedirectPermanentToSSL $HOSTNAME
|
||||
Use Event-ARCHIVE-SSL $HOSTNAME $EVENTUUID
|
||||
</Macro>
|
||||
|
||||
<Macro Event-ARCHIVE $HOSTNAME $EVENTUUID>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Home.html#/event/:eventId=$EVENTUUID" [L,NE]
|
||||
|
||||
Use ArchiveRewrite
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Event-ARCHIVE-SSL $HOSTNAME $EVENTUUID>
|
||||
<VirtualHost *:443>
|
||||
ServerName $HOSTNAME
|
||||
Use SSL
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
# The following matches the query string and captures it in group %1 for the RewriteRule to use before the fragment
|
||||
RewriteCond %{QUERY_STRING} "^(.*)$"
|
||||
RewriteRule ^(/)?$ "https://$HOSTNAME/gwt/Home.html?%1#/event/:eventId=$EVENTUUID" [L,NE]
|
||||
|
||||
Use ArchiveRewrite
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
|
||||
<Macro RegattaOverview $HOSTNAME $EVENTUUID $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
# The following matches the query string and captures it in group %1 for the RewriteRule to use before the fragment
|
||||
RewriteCond %{QUERY_STRING} "^(.*)$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/RegattaOverview.html?event=$EVENTUUID&%1" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Events $HOSTNAME $EVENTNAME $EXTRA $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/events/$EVENTNAME/$EXTRA" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Spectator-WithParam $HOSTNAME $GROUPNAME $EXTRA $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Spectator.html?leaderboardGroupName=$GROUPNAME&$EXTRA" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Spectator-WithLanguage $HOSTNAME $GROUPNAME $LANG $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Spectator.html?leaderboardGroupName=$GROUPNAME&showRaceDetails=true&locale=$LANG" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Spectator $HOSTNAME $GROUPNAME $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Spectator.html?leaderboardGroupName=$GROUPNAME&showRaceDetails=true" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Leaderboard $HOSTNAME $GROUPNAME $NAME $IP $PORT>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Leaderboard.html?name=$NAME&leaderboardGroupName=$GROUPNAME&showRaceDetails=true&root=leaderboardGroupPanel" [L,NE]
|
||||
|
||||
Use Rewrite $IP $PORT
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Leaderboard-WithParam $HOSTNAME $GROUPNAME $NAME $EXTRA>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Leaderboard.html?name=$NAME&leaderboardGroupName=$GROUPNAME&$EXTRA" [L,NE]
|
||||
|
||||
Use Rewrite-ARCHIVE1
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Spectator-ARCHIVE $HOSTNAME $GROUPNAME>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Spectator.html?leaderboardGroupName=$GROUPNAME&showRaceDetails=true" [L,NE]
|
||||
|
||||
Use ArchiveRewrite
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Spectator-ARCHIVE-SSL-Redirect $HOSTNAME $GROUPNAME>
|
||||
Use RedirectPermanentToSSL $HOSTNAME
|
||||
Use Spectator-ARCHIVE-SSL $HOSTNAME "$GROUPNAME"
|
||||
</Macro>
|
||||
|
||||
<Macro Spectator-ARCHIVE-SSL $HOSTNAME $GROUPNAME>
|
||||
<VirtualHost *:443>
|
||||
ServerName $HOSTNAME
|
||||
Use SSL
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "https://$HOSTNAME/gwt/Spectator.html?leaderboardGroupName=$GROUPNAME&showRaceDetails=true" [L,NE]
|
||||
|
||||
Use ArchiveRewrite
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Spectator-ARCHIVE-WithParam $HOSTNAME $GROUPNAME $EXTRA>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Spectator.html?leaderboardGroupName=$GROUPNAME&$EXTRA" [L,NE]
|
||||
|
||||
Use ArchiveRewrite
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Events-ARCHIVE $HOSTNAME $EVENTNAME $EXTRA>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/events/$EVENTNAME/$EXTRA" [L,NE]
|
||||
|
||||
Use ArchiveRewrite
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Spectator-DEV $HOSTNAME $GROUPNAME>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Spectator.html?leaderboardGroupName=$GROUPNAME&showRaceDetails=true" [L,NE]
|
||||
|
||||
Use Rewrite 172.31.18.218 8888
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Spectator-DEV-WithParam $HOSTNAME $GROUPNAME $EXTRA>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/gwt/Spectator.html?leaderboardGroupName=$GROUPNAME&$EXTRA" [L,NE]
|
||||
|
||||
Use Rewrite 172.31.18.218 8888
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
|
||||
<Macro Events-DEV $HOSTNAME $EVENTNAME $EXTRA>
|
||||
<VirtualHost *:80>
|
||||
ServerName $HOSTNAME
|
||||
|
||||
Use Headers
|
||||
|
||||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_URI} "^(/)?$"
|
||||
RewriteRule ^(/)?$ "http://$HOSTNAME/events/$EVENTNAME/$EXTRA" [L,NE]
|
||||
|
||||
Use Rewrite 172.31.18.218 8888
|
||||
</VirtualHost>
|
||||
</Macro>
|
||||
@@ -0,0 +1,263 @@
|
||||
# Default - NEVER move this or change anything here unless you know what you're doing
|
||||
# This first VirtualHost catches all port 80 HTTP traffic that is not caught by
|
||||
# any explicitly matching VirtualHost for port 80 declared further down below.
|
||||
# It redirects to the URI used, replacing https for http
|
||||
<VirtualHost *:80>
|
||||
AllowEncodedSlashes NoDecode
|
||||
ServerName somenonexistingsubdomainname.sapsailing.com
|
||||
# New approach: a single RewriteRule that catches all HTTP requests, mapping them to corresponding HTTPS requests
|
||||
RewriteEngine on
|
||||
RewriteCond %{HTTP:X-Forwarded-Proto} !https
|
||||
RewriteCond %{HTTPS} off
|
||||
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
|
||||
CustomLog logs/redirect_log sapsailing_httpd_redirect_combined env=!original_client_ip
|
||||
CustomLog logs/redirect_log sapsailing_httpd_redirect_combined_first_forwarded_for_ip env=original_client_ip
|
||||
</VirtualHost>
|
||||
|
||||
# The explicit rewrite from http://sapsailing.com with missing subdomain name to https://www.sapsailing.com:
|
||||
<VirtualHost *:80>
|
||||
ServerName sapsailing.com
|
||||
# New approach: a single RewriteRule that catches all HTTP requests, mapping them to corresponding HTTPS requests
|
||||
RewriteEngine on
|
||||
RewriteCond %{HTTP:X-Forwarded-Proto} !https
|
||||
RewriteCond %{HTTPS} off
|
||||
RewriteRule ^.*$ https://www.sapsailing.com%{REQUEST_URI} [L,R=301,NE]
|
||||
CustomLog logs/access_log sapsailing_httpd_redirect_combined env=!original_client_ip
|
||||
CustomLog logs/access_log sapsailing_httpd_redirect_combined_first_forwarded_for_ip env=original_client_ip
|
||||
# Old approach: RedirectPermanent for each :80 VirtualHost
|
||||
# RedirectPermanent / https://www.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
# WWW as the default virtual host for HTTPS access to port 443 because it's listed as the first on :443
|
||||
Use Home-ARCHIVE-SSL-Redirect www.sapsailing.com
|
||||
|
||||
<VirtualHost *:443>
|
||||
# a rewrite rule to map sapsailing.com to www.sapsailing.com for HTTPS requests
|
||||
ServerName sapsailing.com
|
||||
Use SSL
|
||||
RewriteEngine on
|
||||
RewriteRule ^.*$ https://www.sapsailing.com%{REQUEST_URI} [L,R=301,NE]
|
||||
CustomLog logs/access_log sapsailing_httpd_redirect_combined env=!original_client_ip
|
||||
CustomLog logs/access_log sapsailing_httpd_redirect_combined_first_forwarded_for_ip env=original_client_ip
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName jobs.sapsailing.com
|
||||
Use SSL
|
||||
CustomLog logs/jobs_log combined env=!original_client_ip
|
||||
CustomLog logs/jobs_log first_forwarded_for_ip env=original_client_ip
|
||||
DocumentRoot /home/trac/static/jobs
|
||||
<Directory /home/trac/static/jobs>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride All
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName kw2013.sapsailing.com
|
||||
RedirectPermanent / http://livecenter.kieler-woche.de/en/
|
||||
</VirtualHost>
|
||||
|
||||
# sail-insight.com
|
||||
<VirtualHost *:443>
|
||||
ServerName sail-insight.com
|
||||
ServerAlias www.sail-insight.com
|
||||
Use SSL-sail-insight
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
Alias / /home/trac/sail-insight-website/
|
||||
<Directory /home/trac/sail-insight-website>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride All
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
# P2 repository
|
||||
<VirtualHost *:443>
|
||||
ServerName p2.sapsailing.com
|
||||
Use SSL
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
Alias /p2 /home/trac/p2-repositories
|
||||
<Directory /home/trac/p2-repositories>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
# Git Viewer -->
|
||||
<VirtualHost *:80>
|
||||
ServerName gitlist.sapsailing.com
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
DocumentRoot /var/www/gitlist
|
||||
AddHandler php5-script .php
|
||||
AddType text/html .php
|
||||
DirectoryIndex index.php
|
||||
<Directory /var/www/gitlist>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride All
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
# Maven Repositories -->
|
||||
<VirtualHost *:443>
|
||||
ServerName maven.sapsailing.com
|
||||
Use SSL
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
Alias /maven /home/trac/maven-repositories
|
||||
<Directory /home/trac/maven-repositories>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName bugzilla.sapsailing.com
|
||||
Use SSL
|
||||
RewriteEngine On
|
||||
RewriteRule ^/?$ https://bugzilla.sapsailing.com/bugzilla [L]
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
Alias /bugzilla /usr/share/bugzilla
|
||||
<Directory /usr/share/bugzilla>
|
||||
AddHandler cgi-script .cgi
|
||||
Options +Indexes +ExecCGI +FollowSymLinks
|
||||
DirectoryIndex index.cgi
|
||||
AllowOverride Limit Options FileInfo Indexes AuthConfig
|
||||
</Directory>
|
||||
# Additional Perl modules
|
||||
<IfModule mod_env.c>
|
||||
SetEnv PERL5LIB /root/perl5/lib/perl5:/root/perl5/lib/perl5/x86_64-linux-thread-multi
|
||||
</IfModule>
|
||||
</VirtualHost>
|
||||
|
||||
# Error pages -->
|
||||
<VirtualHost *:443>
|
||||
ServerName status.sapsailing.com
|
||||
Use SSL
|
||||
DocumentRoot /var/www/errorpages
|
||||
|
||||
<Directory /var/www/errorpages >
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
DirectoryIndex index.html
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
<Location /internal-server-status>
|
||||
SetHandler server-status
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
Allow from all
|
||||
#Allow from 46.142.162.18 localhost 127.0.0.1 *
|
||||
</Location>
|
||||
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
</VirtualHost>
|
||||
|
||||
# PIWIK analytics -->
|
||||
<VirtualHost *:80>
|
||||
ServerName analysis.sapsailing.com
|
||||
Alias / /var/www/piwik/
|
||||
<Directory /var/www/piwik/ >
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
DirectoryIndex index.php
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
</VirtualHost>
|
||||
|
||||
# Wiki -->
|
||||
<VirtualHost *:443>
|
||||
ServerName wiki.sapsailing.com
|
||||
Use SSL
|
||||
RewriteEngine on
|
||||
RewriteRule ^/(.*) http://localhost:4567/$1 [P,L]
|
||||
ProxyPassReverse / http://localhost:4567/
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName stg.static.sapsailing.com
|
||||
RedirectPermanent / http://static.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName releases.sapsailing.com
|
||||
DocumentRoot /home/trac/releases
|
||||
|
||||
<Directory /home/trac/releases>
|
||||
Options +Indexes +FollowSymLinks
|
||||
</Directory>
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName static.sapsailing.com
|
||||
Use SSL
|
||||
DocumentRoot /var/www/static
|
||||
|
||||
<Directory /var/www/static>
|
||||
Order Deny,Allow
|
||||
Allow from all
|
||||
Options -Indexes +FollowSymLinks -ExecCGI
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName dev.sapsailing.com
|
||||
RedirectPermanent / https://dev.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName hudson.sapsailing.com
|
||||
RedirectPermanent / https://hudson.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName hudson.sapsailing.com
|
||||
Use SSL
|
||||
RewriteEngine on
|
||||
RewriteRule ^/(.*) http://172.31.28.17:8080/$1 [P,L]
|
||||
ProxyPassReverse / http://172.31.28.17:8080/
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName jenkins.sapsailing.com
|
||||
RedirectPermanent / https://jenkins.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName jenkins.sapsailing.com
|
||||
Use SSL
|
||||
RewriteEngine on
|
||||
RewriteRule ^/(.*) http://172.31.17.141:8080/$1 [P,L]
|
||||
ProxyPassReverse / http://172.31.17.141:8080/
|
||||
CustomLog logs/services_log combined env=!original_client_ip
|
||||
CustomLog logs/services_log first_forwarded_for_ip env=original_client_ip
|
||||
</VirtualHost>
|
||||
|
||||
@@ -0,0 +1,338 @@
|
||||
|
||||
# Default - NEVER move this or change anything here
|
||||
<VirtualHost *:80>
|
||||
ServerName sapsailing.com
|
||||
RedirectPermanent / https://www.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName jobs.sapsailing.com
|
||||
RedirectPermanent / https://jobs.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName jobs.sapsailing.com
|
||||
Use SSL
|
||||
CustomLog logs/jobs_log combined
|
||||
DocumentRoot /home/trac/static/jobs
|
||||
<Directory /home/trac/static/jobs>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride All
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName a.dummy.sapsailing.com
|
||||
RewriteEngine on
|
||||
RewriteCond %{HTTP:X-Forwarded-Proto} !https
|
||||
RewriteCond %{HTTPS} off
|
||||
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName kw2013.sapsailing.com
|
||||
RedirectPermanent / http://livecenter.kieler-woche.de/en/
|
||||
</VirtualHost>
|
||||
|
||||
# P2 repository
|
||||
<VirtualHost *:80>
|
||||
ServerName p2.sapsailing.com
|
||||
CustomLog logs/services_log combined
|
||||
Alias /p2 /home/trac/p2-repositories
|
||||
<Directory /home/trac/p2-repositories>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName p2.sapsailing.com
|
||||
Use SSL
|
||||
CustomLog logs/services_log combined
|
||||
Alias /p2 /home/trac/p2-repositories
|
||||
<Directory /home/trac/p2-repositories>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
# Git Viewer -->
|
||||
<VirtualHost *:80>
|
||||
ServerName gitlist.sapsailing.com
|
||||
CustomLog logs/services_log combined
|
||||
DocumentRoot /var/www/gitlist
|
||||
AddHandler php5-script .php
|
||||
AddType text/html .php
|
||||
DirectoryIndex index.php
|
||||
<Directory /var/www/gitlist>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride All
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
# Maven Repositories -->
|
||||
<VirtualHost *:80>
|
||||
ServerName maven.sapsailing.com
|
||||
CustomLog logs/services_log combined
|
||||
Alias /maven /home/trac/maven-repositories
|
||||
<Directory /home/trac/maven-repositories>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName maven.sapsailing.com
|
||||
Use SSL
|
||||
CustomLog logs/services_log combined
|
||||
Alias /maven /home/trac/maven-repositories
|
||||
<Directory /home/trac/maven-repositories>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
# Bugzilla -->
|
||||
Alias /bugzilla/var/lib/bugzilla/data/webdot /var/lib/bugzilla/data/webdot
|
||||
Alias /bugzilla /usr/share/bugzilla
|
||||
|
||||
<Directory /usr/share/bugzilla>
|
||||
AddHandler cgi-script .cgi
|
||||
Options +Indexes +ExecCGI +FollowSymLinks
|
||||
DirectoryIndex index.cgi index.html
|
||||
AllowOverride Limit Options FileInfo
|
||||
AddType application/vnd.mozilla.xul+xml .xul
|
||||
AddType application/rdf+xml .rdf
|
||||
</Directory>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName bugzilla.sapsailing.com
|
||||
RedirectPermanent / https://bugzilla.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName bugzilla.sapsailing.com
|
||||
Use SSL
|
||||
CustomLog logs/services_log combined
|
||||
#ServerPath /bugzilla
|
||||
#DocumentRoot /usr/share/bugzilla
|
||||
Alias /bugzilla /usr/share/bugzilla
|
||||
<Directory /usr/share/bugzilla>
|
||||
AddHandler cgi-script .cgi
|
||||
Options +Indexes +ExecCGI +FollowSymLinks
|
||||
DirectoryIndex index.cgi
|
||||
AllowOverride Limit Options FileInfo
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
# Various Services like p2 repository and bugzilla -->
|
||||
<VirtualHost *:80>
|
||||
ServerName bugzilla.sapsailing.com
|
||||
|
||||
CustomLog logs/services_log combined
|
||||
#ServerPath /bugzilla
|
||||
#DocumentRoot /usr/share/bugzilla
|
||||
|
||||
Alias /bugzilla /usr/share/bugzilla
|
||||
Alias /p2 /home/trac/p2-repositories
|
||||
Alias /maven /home/trac/maven-repositories
|
||||
Alias /maven-riccardo /home/riccardo/maven-repositories
|
||||
Alias /mrtg /var/www/mrtg
|
||||
|
||||
<Directory /var/www/mrtg >
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
DirectoryIndex index.html
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
<Directory /usr/share/bugzilla>
|
||||
AddHandler cgi-script .cgi
|
||||
Options +Indexes +ExecCGI +FollowSymLinks
|
||||
DirectoryIndex index.cgi
|
||||
AllowOverride Limit Options FileInfo
|
||||
</Directory>
|
||||
|
||||
<Directory /home/trac/p2-repositories>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
|
||||
<Directory /home/trac/maven-repositories>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
<Directory /home/riccardo/maven-repositories>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
# Error pages -->
|
||||
<VirtualHost *:80>
|
||||
ServerName status.sapsailing.com
|
||||
DocumentRoot /var/www/errorpages
|
||||
|
||||
<Directory /var/www/errorpages >
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
DirectoryIndex index.html
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
<Location /internal-server-status>
|
||||
SetHandler server-status
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
Allow from all
|
||||
#Allow from 46.142.162.18 localhost 127.0.0.1 *
|
||||
</Location>
|
||||
|
||||
CustomLog logs/services_log combined
|
||||
</VirtualHost>
|
||||
|
||||
# PIWIK analytics -->
|
||||
<VirtualHost *:80>
|
||||
ServerName analysis.sapsailing.com
|
||||
Alias / /var/www/piwik/
|
||||
<Directory /var/www/piwik/ >
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
DirectoryIndex index.php
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
CustomLog logs/services_log combined
|
||||
</VirtualHost>
|
||||
|
||||
# Wiki -->
|
||||
<VirtualHost *:80>
|
||||
ServerName wiki.sapsailing.com
|
||||
RedirectPermanent / https://wiki.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName wiki.sapsailing.com
|
||||
Use SSL
|
||||
RewriteEngine on
|
||||
RewriteRule ^/(.*) http://localhost:4567/$1 [P,L]
|
||||
ProxyPassReverse / http://localhost:4567/
|
||||
CustomLog logs/services_log combined
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName mrtg.sapsailing.com
|
||||
RedirectPermanent / http://static.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName stg.static.sapsailing.com
|
||||
RedirectPermanent / http://static.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName releases.sapsailing.com
|
||||
DocumentRoot /home/trac/releases
|
||||
|
||||
<Directory /home/trac/releases>
|
||||
Order Deny,Allow
|
||||
Allow from all
|
||||
Options Indexes FollowSymLinks -ExecCGI
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
CustomLog logs/services_log combined
|
||||
</VirtualHost>
|
||||
|
||||
# Static files -->
|
||||
<VirtualHost *:80>
|
||||
ServerName static.sapsailing.com
|
||||
DocumentRoot /var/www/static
|
||||
|
||||
<Directory /var/www/static>
|
||||
Order Deny,Allow
|
||||
Allow from all
|
||||
Options -Indexes FollowSymLinks ExecCGI
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
CustomLog logs/services_log combined
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName erlebniswelt.sapsailing.com
|
||||
DocumentRoot /var/www/static/fcb
|
||||
|
||||
<Directory /var/www/static/fcb>
|
||||
Options +Indexes -FollowSymLinks +MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName static.sapsailing.com
|
||||
Use SSL
|
||||
DocumentRoot /var/www/static
|
||||
|
||||
<Directory /var/www/static>
|
||||
Order Deny,Allow
|
||||
Allow from all
|
||||
Options -Indexes FollowSymLinks ExecCGI
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
CustomLog logs/services_log combined
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName dev.sapsailing.com
|
||||
RedirectPermanent / https://dev.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName hudson.sapsailing.com
|
||||
RedirectPermanent / https://hudson.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName hudson.sapsailing.com
|
||||
Use SSL
|
||||
RewriteEngine on
|
||||
RewriteRule ^/(.*) http://172.31.28.17:8080/$1 [P,L]
|
||||
ProxyPassReverse / http://172.31.28.17:8080/
|
||||
CustomLog logs/services_log combined
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName jenkins.sapsailing.com
|
||||
RedirectPermanent / https://jenkins.sapsailing.com/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName jenkins.sapsailing.com
|
||||
Use SSL
|
||||
RewriteEngine on
|
||||
RewriteRule ^/(.*) http://172.31.17.141:8080/$1 [P,L]
|
||||
ProxyPassReverse / http://172.31.17.141:8080/
|
||||
CustomLog logs/services_log combined
|
||||
</VirtualHost>
|
||||
|
||||
@@ -0,0 +1,443 @@
|
||||
#
|
||||
# Spectator $IP $PORT $HOSTNAME $GROUPNAME
|
||||
#
|
||||
# Spectator-WithParam $IP $PORT $HOSTNAME $GROUPNAME $EXTRA
|
||||
#
|
||||
# Leaderboard $IP $PORT $HOSTNAME $GROUPNAME $NAME
|
||||
#
|
||||
# Leaderboard-WithParam $IP $PORT $HOSTNAME $GROUPNAME $NAME $EXTRA
|
||||
#
|
||||
# Make sure to always use "" as delimiters for strings containing spaces
|
||||
# After a change please perform a service httpd reload
|
||||
#
|
||||
# ATT: There is a special macro called Spectator-ARCHIVE that contains
|
||||
# the fixed IP adress and port for the archive server. You can find it
|
||||
# in /etc/httpd/conf.d/000-macros.conf at the beginning of the file. Feel free
|
||||
# to add other macros there.
|
||||
|
||||
###################################
|
||||
############ DEDICATED ###########
|
||||
|
||||
## DEV Server
|
||||
Use Plain-SSL-Redirect dev.sapsailing.com 172.31.28.17 8888
|
||||
Use Plain-SSL dualstack-dev.sapsailing.com 172.31.28.17 8888
|
||||
|
||||
###################################
|
||||
######### SHARED INSTANCE #########
|
||||
|
||||
|
||||
###################################
|
||||
############# ARCHIVE #############
|
||||
|
||||
# 2.4mR IDM 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect idm24mR2015.sapsailing.com "c51c9915-a8f0-4a31-a0e2-127d557b7ea0"
|
||||
|
||||
# 29er Worlds 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect 29erWorlds2016.sapsailing.com "4b381745-1d29-4bda-b388-4a0b7e94dc98"
|
||||
|
||||
####### 49er Worlds - Euros ######
|
||||
|
||||
## 49er Oceania 2019
|
||||
Use Series-ARCHIVE-SSL-Redirect 49eroceania2019.sapsailing.com "b4a6e4ef-9a07-4832-9268-05cce3941b46"
|
||||
|
||||
## 49er Euros 2020
|
||||
Use Event-ARCHIVE-SSL-Redirect 49erEuros2020.sapsailing.com "bc806190-1c04-4222-b21b-898a08b97e54"
|
||||
|
||||
# 49er / FX Princess Sofia Trophy 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect trofeoprincesasofia2016.sapsailing.com "445d072c-fe95-4cc3-ba49-874d4cd43325"
|
||||
# ATC Regatta 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect atcregatta2015.sapsailing.com "9c1d57bf-29c8-440f-becd-4862bc0f43fe"
|
||||
|
||||
# 49er JWC 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect 49erJWC2015.sapsailing.com "9605d85c-867e-438c-a74b-47da896f476e"
|
||||
|
||||
# 49er Euros
|
||||
Use Event-ARCHIVE-SSL-Redirect 49er-n17-euros2017.sapsailing.com "2288808b-2697-48e9-893a-76ccf00ee94d"
|
||||
Use Event-Archive-SSL-Redirect 49erEuros2016.sapsailing.com "ccb1b062-fe59-4a1c-a15e-f30795ac3c7f"
|
||||
Use Event-ARCHIVE-SSL-Redirect 49ereuros2015.sapsailing.com "2b684db8-683d-4479-925b-5962085b7ae1"
|
||||
Use Event-ARCHIVE-SSL-Redirect 49er-euros2013.sapsailing.com "232ce9c3-ac84-47c8-b77d-eec782400877"
|
||||
Use Event-ARCHIVE-SSL-Redirect 49er-euros2012.sapsailing.com "22c7942e-eb3d-462a-9d59-600468044bb2"
|
||||
|
||||
# 49er Worlds
|
||||
Use Event-ARCHIVE-SSL-Redirect 49erworlds2020.sapsailing.com "ee70229c-9836-4025-9096-1b5050152b1e"
|
||||
Use Series-ARCHIVE-SSL-Redirect 49erworlds2019.sapsailing.com "e5a65f0a-b9b4-4630-b0b0-ad1fd7727518"
|
||||
Use Event-ARCHIVE-SSL-Redirect 49erworlds2016.sapsailing.com "98e52dd5-2765-4f71-8ebc-82284be07fbc"
|
||||
|
||||
# 505 Worlds & IDMs
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2019.sapsailing.com "fbfa43cc-ff0d-42b9-96c5-6d218c636a62"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2018.sapsailing.com "4d2909ab-d05a-4a94-80b1-dba50bd4729e"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2017.sapsailing.com "4e070be8-51a8-4633-87fc-533f3f54f7d4"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2016.sapsailing.com "8f5daf0f-210f-435f-97bd-c6aff11af3d2"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2015.sapsailing.com "b1e78f52-ce52-4b71-ac30-452599faf4a1"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2014.sapsailing.com "94e1e240-8a3d-466b-9f39-419f311eaace"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2013.sapsailing.com "35dc9389-b59d-4ebd-8f6b-432065642f40"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505idm2013.sapsailing.com "9130f36f-d1c3-4080-ac5b-a2104b8fbfd0"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2012.sapsailing.com "64e2b631-1a97-4270-9383-14481c8e960f"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2011.sapsailing.com "a10c4fad-c07c-44f5-8241-614a165daae1"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2010.sapsailing.com "ba1f5e28-7552-4277-ac32-e440a3432fb7"
|
||||
|
||||
## 6mR Worlds 2017 Vancouver
|
||||
Use Event-ARCHIVE-SSL-Redirect 6mworlds2017.sapsailing.com "3fbe1757-652c-48d6-a7a5-3a611c82589b"
|
||||
|
||||
## 8 meter worlds 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect 8mworlds2017.sapsailing.com "bd1df974-aa7d-4d56-98ca-de0a50bbe0b6"
|
||||
|
||||
## Aeroe Rund 2018
|
||||
Use Event-ARCHIVE-SSL-Redirect aeroe-rund2018.sapsailing.com "7a16b434-6952-457b-9b7c-010875f6bfd3"
|
||||
|
||||
# Audi Business Cup
|
||||
Use Event-ARCHIVE-SSL-Redirect audibusinesscup2015.sapsailing.com "080b6c09-0110-4b51-a209-dc3cf8b9f669"
|
||||
|
||||
## BAR Test Oman
|
||||
Use Event-ARCHIVE-SSL-Redirect bar-test.sapsailing.com "ec3dd898-9f02-472c-a783-06907cb9ef03"
|
||||
Use Event-ARCHIVE-SSL-Redirect ACWS-test.sapsailing.com "ec3dd898-9f02-472c-a783-06907cb9ef03"
|
||||
|
||||
# Bart's Bash
|
||||
Use Event-ARCHIVE-SSL-Redirect bartsbash2015.sapsailing.com "905457f5-5ccb-4fea-8219-8300eed637ad"
|
||||
Use Event-ARCHIVE-SSL-Redirect bartsbash2014.sapsailing.com "b2e2b264-134c-4ef2-b592-53562fd0f835"
|
||||
|
||||
# Bodenseewoche 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect bodenseewoche2015.sapsailing.com "fef6c510-eefe-470f-a9a9-dcf6293ec116"
|
||||
|
||||
## CRW 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect crw2016.sapsailing.com "56f62045-de57-4c5e-be6c-a2339d9c9ece"
|
||||
|
||||
## Eastern Economic Forum 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect forumvostok2016.sapsailing.com "5093220d-875f-4909-9ad0-46476639ee97"
|
||||
|
||||
# ESS
|
||||
Use Event-ARCHIVE-SSL-Redirect ess2018.sapsailing.com "61af2433-21b4-4a74-8f82-58b582db3944"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess2017.sapsailing.com "467b55e8-eab8-4f4b-bf5e-830221fe25dc"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess2016.sapsailing.com "a6025457-2880-4fe9-b9d6-ad943ef78025"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2015.sapsailing.com "70054aa2-b381-4e77-8e17-840ee1b6190d"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2014.sapsailing.com "8e5bef73-7d55-45ed-951a-72ef375ae1b6"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2013.sapsailing.com "1487bc65-be3b-4dbc-951d-a1390e9619e0"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2012.sapsailing.com "863a5c30-cbea-4f1c-8fb1-54fffa6b7319"
|
||||
|
||||
##Hansesail 2017 (operated by melanie.coldewey@sap.com)
|
||||
Use Event-ARCHIVE-SSL-Redirect hansesail2017.sapsailing.com "0e76df1e-c61f-4845-8681-4b60d4de7cb3"
|
||||
|
||||
## Helga Cup 2019
|
||||
Use Event-ARCHIVE-SSL-Redirect helgacup2019.sapsailing.com "94f7932a-4518-4c58-9f77-d43682b002f6"
|
||||
|
||||
## IDM Drachen 2012
|
||||
Use Event-ARCHIVE-SSL-Redirect drachenidm2012.sapsailing.com "a42beb95-4885-45f1-9ed7-91159a6e4f6a"
|
||||
|
||||
## IDM FINN 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect idmfinn2017.sapsailing.com "9af4c6fd-a9ff-43b6-9927-323db03bab31"
|
||||
|
||||
## IDM Star
|
||||
Use Event-ARCHIVE-SSL-Redirect idmstar2016.sapsailing.com "5a05f9b9-2f70-46f7-99e1-c069b418bc20"
|
||||
Use Event-ARCHIVE-SSL-Redirect staridm2013.sapsailing.com "a43b8f96-1e77-448a-9b8a-0f586f1bb18f"
|
||||
|
||||
## IDM Travemünde 2011
|
||||
Use Event-ARCHIVE-SSL-Redirect idm2011.sapsailing.com "9577d5ae-b27f-4e76-bf26-580950baf904"
|
||||
|
||||
## Kiellauf 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect kiellauf2017.sapsailing.com "acccaf32-3173-4ee2-afd2-5e09a00cdf53"
|
||||
|
||||
## Kieler Woche
|
||||
Use Event-ARCHIVE-SSL-Redirect kw2020.sapsailing.com "246dcd4a-c33e-482b-b63f-4e389f9c554a"
|
||||
Use Event-ARCHIVE-SSL-Redirect kw2019.sapsailing.com "ecf57f2a-9d4b-4918-aef3-07543ed0c4ec"
|
||||
Use Event-ARCHIVE-SSL-Redirect kw2018.sapsailing.com "1a73aaef-7386-4178-8a11-14ced71e1d8c"
|
||||
Use Event-ARCHIVE-SSL-Redirect kw2017.sapsailing.com "4d3df446-43bc-46a1-9146-3e1caf6ed757"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2016.sapsailing.com "cc12361a-236b-4ddf-b68d-42ca785cd4d6"
|
||||
Use Event-ARCHIVE-SSL-Redirect audiultracup2016.sapsailing.com "c4f9793f-c492-46a0-8af2-a543d5dab588"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2015.sapsailing.com "a9d6c5d5-cac3-47f2-9b5c-506e441819a1"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2014.sapsailing.com "3713fbd7-a62b-439b-bec1-bea732c5d895"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2013.sapsailing.com "3e4145a7-5473-4670-83e6-fd5ee364f7eb"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2012.sapsailing.com "0c0db838-b199-4309-a2a4-90bebe85ffe8"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2011.sapsailing.com "8be013de-d49d-49ea-9e73-4e7c7970aec0"
|
||||
|
||||
## Kornati Cup 2019
|
||||
Use Event-ARCHIVE-SSL-Redirect kornaticup2019.sapsailing.com "b3735a2e-bdd6-4cf7-91a7-87d388c954b4"
|
||||
|
||||
## Medemblik Regatta
|
||||
Use Event-ARCHIVE-SSL-Redirect medemblik2019.sapsailing.com "c7e7589c-b5ef-4e7d-93ff-3cd18527976b"
|
||||
Use Event-ARCHIVE-SSL-Redirect medemblik2018.sapsailing.com "36b3a1ff-34ef-48ab-86e3-aebbbcac55c4"
|
||||
|
||||
## Mini 650 Pacific Challenge 2013
|
||||
Use Spectator-ARCHIVE-SSL-Redirect mini650pc2013.sapsailing.com "Mini 650 Pacific Challenge 2013"
|
||||
|
||||
## Nord Stream Race
|
||||
Use Event-ARCHIVE-SSL-Redirect nordstreamrace2019.sapsailing.com "1fc9069a-0ee8-4ca9-ba62-4ab6c410c909"
|
||||
Use Event-ARCHIVE-SSL-Redirect nordstreamrace2018.sapsailing.com "9791acc7-79f7-4c3b-9cde-7b5dede49cc2"
|
||||
|
||||
## Norwegian Grundig Cup (on norwegian league server)
|
||||
Use Event-ARCHIVE-SSL-Redirect grundigcup2016-norway.sapsailing.com "6caf564b-f2b4-4b51-8667-50049ecb8581"
|
||||
|
||||
## Olympic Games
|
||||
Use Event-ARCHIVE-SSL-Redirect olympics2016.sapsailing.com "e6dbae49-aa2f-49fc-a7eb-82e24cdc307f"
|
||||
Use Event-ARCHIVE-SSL-Redirect olympics2012.sapsailing.com "901963ed-743d-41db-9727-1c3b73e78ddd"
|
||||
|
||||
## Olympic Testevent 2019 - Enoshima
|
||||
Use Event-ARCHIVE-SSL-Redirect tokyo2019.sapsailing.com "6389fb9d-12e1-47ef-9831-ddab8cf9598f"
|
||||
|
||||
## Pitter Croatia Coast Cup 2019
|
||||
Use Event-ARCHIVE-SSL-Redirect croatiacoastcup2019.sapsailing.com "8b798fbb-65b0-49d6-b126-cfd02b1c1fd3"
|
||||
|
||||
## Red Bull Foiling Generation 2018 Final
|
||||
Use Event-ARCHIVE-SSL-Redirect rbfg2018.sapsailing.com "1e330c0e-9dbf-4fa0-9817-1e11e17bea55"
|
||||
|
||||
## RosAtom
|
||||
Use Event-ARCHIVE-SSL-Redirect rsc2016.sapsailing.com "3aab9f92-0d83-411c-bfc9-c9032079a749"
|
||||
Use Event-ARCHIVE-SSL-Redirect rosatomcup2015.sapsailing.com "f3a8c574-d23d-44d8-9316-3afb7ee0d39c"
|
||||
|
||||
## SAP Opti Cup SCGN 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect sapopticup2015.sapsailing.com "dff7d969-9858-4dff-b2f2-a45018a2f755"
|
||||
|
||||
## SCGN Test 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect scgn-test.sapsailing.com "5ca2b18a-0a55-4591-910c-1f1f35be51f2"
|
||||
|
||||
# SCGN Training
|
||||
Use Event-ARCHIVE-SSL-Redirect scgn-training.sapsailing.com "004147c6-3991-4a02-bc50-72b8e5b8027c"
|
||||
|
||||
## Sejlerskole Cup 2014
|
||||
Use Event-ARCHIVE-SSL-Redirect sejlerskolecup-2014.sapsailing.com "d75063dd-f579-4a46-836c-5cc017a71e44"
|
||||
|
||||
## STG meets Berlin Match Race 2012
|
||||
Use Event-ARCHIVE-SSL-Redirect obmr2012.sapsailing.com "2dd8de86-6564-4189-9aa0-8666f26dbb5b"
|
||||
|
||||
# Surfing World Cup Sylt 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect worldcupsylt2015.sapsailing.com "9eb910b8-bb61-4113-8263-1667cd37ac76"
|
||||
|
||||
## Tempest Worlds 2019
|
||||
Use Event-ARCHIVE-SSL-Redirect tempestworlds2019.sapsailing.com "72038d9e-5add-40f8-beea-5116d568facb"
|
||||
|
||||
## Thetis 2018
|
||||
Use Event-ARCHIVE-SSL-Redirect thetis2018.sapsailing.com "8964d8e0-0368-4581-8df8-6ade3543a94a"
|
||||
|
||||
## Travemünder Woche
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2018.sapsailing.com "4e71526d-a25f-4f41-adc0-d92c60738134"
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2017.sapsailing.com "7784129f-7832-49f1-a5f0-b8d66aa5560c"
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2016.sapsailing.com "86e9e60c-0b16-4941-b14a-166ed4dcabff"
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2015.sapsailing.com "82c5adb5-2dac-40fb-aa18-3b8057365e57"
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2014.sapsailing.com "5133df37-0092-42c8-a9cb-7a087ae00219"
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2013.sapsailing.com "b0a721cf-89c3-486c-9a84-25e1aaeb3225"
|
||||
|
||||
## USODA 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect usoda2016.sapsailing.com "46c85236-087e-418f-84f9-aee24dac948f"
|
||||
|
||||
## VANPro
|
||||
Use Event-ARCHIVE-SSL-Redirect VANpro2016.sapsailing.com "2316ce7d-be93-4ffc-8613-cb6ffa475153"
|
||||
|
||||
## Vulcain Trophy 2014 - SAP Grand Prix
|
||||
Use Event-ARCHIVE-SSL-Redirect vulcaintrophy2014.sapsailing.com "09f39909-5d72-40d2-b6e9-4ea7c908a0dc"
|
||||
Use Event-ARCHIVE-SSL-Redirect vulcaintrophy2014-proam.sapsailing.com "ca9daa7d-c966-4e89-bc50-ce598e2f2a56"
|
||||
|
||||
## WMRT 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect wmrt2016.sapsailing.com "cfbe9100-75d6-474a-8d58-3ef8b19cdf25"
|
||||
|
||||
## World Sailing Conference Cup 2019
|
||||
Use Event-ARCHIVE-SSL-Redirect bermuda2019.sapsailing.com "a865eda3-b8df-4cf8-bcf1-6bd6a1ca45bb"
|
||||
|
||||
# YES 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect yes2015.sapsailing.com "fb44d803-15d3-4fe1-852d-28346346ebc3"
|
||||
Use Event-ARCHIVE-SSL-Redirect yes2014.sapsailing.com "6b3dfa41-8553-4abc-8b02-7e3423a59041"
|
||||
Use Event-ARCHIVE-SSL-Redirect yes2012.sapsailing.com "7732cfba-23ff-44a7-9b5d-733d1d92e467"
|
||||
|
||||
|
||||
######### World Cups #############
|
||||
|
||||
## Hempel World Cup Series 2020
|
||||
Use Event-ARCHIVE-SSL-Redirect hwcs2020-round2.sapsailing.com "70bf91ae-17d9-43af-b36b-e9b0cc172d48"
|
||||
Use Event-ARCHIVE-SSL-Redirect hwcs2020-round1.sapsailing.com "2d42185c-c914-4042-814f-14108218b3a3"
|
||||
|
||||
## World Cup Series 2019
|
||||
Use Event-ARCHIVE-SSL-Redirect wcs2019-marseille.sapsailing.com "ba606057-ced3-444d-9425-fd89ae36ca18"
|
||||
Use Event-ARCHIVE-SSL-Redirect wcs2019-genoa.sapsailing.com "587e5fef-53ea-47f0-a71b-1fc29053b4f0"
|
||||
Use Event-ARCHIVE-SSL-Redirect wcs2019-miami.sapsailing.com "f393a743-dd49-450f-ab8b-d11522b266f2"
|
||||
Use Event-ARCHIVE-SSL-Redirect wcs2019-enoshima.sapsailing.com "bb4c7908-56a4-4b6e-9942-4ffd20c59fdc"
|
||||
|
||||
## Hempel Sailing World Championships Aarhus 2018
|
||||
Use Event-ARCHIVE-SSL-Redirect worlds2018.sapsailing.com "4544f986-8235-426d-ad3e-6a3500b12edc"
|
||||
|
||||
## World Cup Series 2018
|
||||
Use Event-ARCHIVE-SSL-Redirect wcs2018-marseille.sapsailing.com "d5c7440a-27fb-4b9f-a64d-5beb1a2907fd"
|
||||
Use Event-ARCHIVE-SSL-Redirect wcs2018-hyeres.sapsailing.com "74e27348-ee53-4b1c-b042-3a6f09c27bb2"
|
||||
Use Event-ARCHIVE-SSL-Redirect wcs2018-miami.sapsailing.com "f90391b0-022d-47a1-9dec-293acaa8b3c0"
|
||||
Use Event-ARCHIVE-SSL-Redirect wcs2018-gamagori.sapsailing.com "1e8a9ae8-4a48-4de2-99c5-308169c37b76"
|
||||
|
||||
## Sailing World Championships Test Event 2017 Aarhus
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2017-aarhus.sapsailing.com "c452f5e8-1bec-4e7b-b459-32f6b820add6"
|
||||
|
||||
## Sailing World Cup 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2017-santander.sapsailing.com "3b79f093-d52f-440b-9fc4-2fb9e0cc70c9"
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2017-hyeres.sapsailing.com "8962f211-6e79-422a-85c5-397aaff8d050"
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2017-miami.sapsailing.com "b82f9012-47d8-4e9e-b3b2-a690c1db0fe3"
|
||||
|
||||
## SWC Worldcup Finale Melbourne 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2016-melbourne.sapsailing.com "dd2edeed-b9eb-483e-b3e9-d4761d0d58d2"
|
||||
|
||||
## SWC Qingdao
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2016-qingdao.sapsailing.com "ea0caed8-3182-424e-91a7-6add65e1357d"
|
||||
|
||||
####### Championsleague ##########
|
||||
|
||||
## Alandia Nordic Club Sailing Championship 2019
|
||||
Use Event-ARCHIVE-SSL-Redirect ncs2019-championships.sapsailing.com "ead70d8e-0fca-4aa0-bf83-e66c19de8ab3"
|
||||
|
||||
## Sailing Champions League 2019
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2019-final.sapsailing.com "e59f2681-94ca-4a9d-b815-c4995b17d26e"
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2019-qualifier3.sapsailing.com "ccd72544-b7c1-4775-949a-ad5ac26b562f"
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2019-qualifier2.sapsailing.com "dd4eb3ce-dce0-4e8f-bfdb-ff1219f6fde1"
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2019-qualifier1.sapsailing.com "5b3d782a-d6eb-420f-852e-44e6d36b8869"
|
||||
|
||||
## SAILING Champions League 2018
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2018-final.sapsailing.com "0503a3d7-2b50-4825-84b4-7bcfd6cd4730"
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2018-semifinal2.sapsailing.com "74f7e1c6-9d19-4751-9083-60f00c9b8053"
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2018-semifinal1.sapsailing.com "ccd8a484-f2be-4dbd-9474-c457fefd6536"
|
||||
|
||||
##Sailing Champions League 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2017.sapsailing.com "e6da37a1-773f-4dc5-b7e8-7753d3308386"
|
||||
|
||||
## Sailing Championsleague 2016 (Petersburg / Porto Cervo)
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2016.sapsailing.com "810a5132-849f-49e0-828c-ace23289f0ac"
|
||||
|
||||
# Championsleague 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect championsleague2015.sapsailing.com "f40d9162-9008-4516-9110-33ab0f17d6a0"
|
||||
Use Event-ARCHIVE-SSL-Redirect championsleague2014.sapsailing.com "eb326f1b-81e8-468b-89cb-10131a8d8459"
|
||||
|
||||
############ Leagues #############
|
||||
|
||||
## Austrian Sailing League
|
||||
Use Series-ARCHIVE-SSL-Redirect austrianleague2019.sapsailing.com "882b8061-d7bc-4d76-a3c5-daa57296b0f8"
|
||||
Use Series-ARCHIVE-SSL-Redirect austrianleague2018.sapsailing.com "d5b4fba4-903e-4e0f-86e7-93162c527640"
|
||||
Use Series-ARCHIVE-SSL-Redirect austrianleague2017.sapsailing.com "94d23c5e-4cef-47d7-92c7-f8ed77ec486c"
|
||||
Use Series-ARCHIVE-SSL-Redirect austrianleague2016.sapsailing.com "526d2f9e-7abf-42b1-af7f-212f0ec4c3e6"
|
||||
Use Series-ARCHIVE-SSL-Redirect austrianleague2015.sapsailing.com "9543fd96-9bf4-4795-960a-f4d96b9d8a38"
|
||||
|
||||
## German Sailing League
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2019.sapsailing.com "e8c27965-7636-4bb6-883b-98a29df31f50"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2019.sapsailing.com "8c59828d-cad7-4e84-b86b-433d844010cc"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2018.sapsailing.com "2ebdd4fe-a111-4b9e-87ed-03f4bc3d9805"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2018.sapsailing.com "537ad3d5-e0bd-43af-86c4-ed2c0c3eabc9"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2017.sapsailing.com "9ee75a6e-60c2-4a69-993c-b38f45be29ad"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2017.sapsailing.com "b2567e08-26d9-45c1-b5e0-8c410c8db18b"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2016.sapsailing.com "39cae2e8-6243-4b34-8c23-18e9d82b6cc4"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2016.sapsailing.com "4cd7f524-fa47-45b7-ae48-71e693337415"
|
||||
Use Event-ARCHIVE-SSL-Redirect bundesliga2016-relegation.sapsailing.com "3b54a7ce-7585-4935-8564-522988484fb2"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2015.sapsailing.com "e63c2a3e-5afe-45ae-847f-ba98a1707f04"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2015.sapsailing.com "aa99d93f-9444-4611-bb5e-be9cca0de6a7"
|
||||
Use Event-ARCHIVE-SSL-Redirect bundesliga2015-relegation.sapsailing.com "0fb650c5-51c8-44c9-8b4f-cb5d3e2def9a"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2014.sapsailing.com "be6aaa29-1754-4de0-bc82-5c0c395f080e"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2014.sapsailing.com "8b982dc7-d20e-45f2-9941-f3a48fb3a0f3"
|
||||
Use Event-ARCHIVE-SSL-Redirect businesscup2014-hamburg.sapsailing.com "fd2e442b-6e79-4cc7-af23-01eb8eeb061e"
|
||||
Use Event-ARCHIVE-SSL-Redirect bundesliga2013.sapsailing.com "a6abca6e-9711-44dc-9c64-929bc869aa12"
|
||||
|
||||
## DSL Pokal
|
||||
Use Event-ARCHIVE-SSL-Redirect dsl-pokal2019.sapsailing.com "c6fd851c-4335-4c65-831f-c4d424b0f86f"
|
||||
Use Event-ARCHIVE-SSL-Redirect dsl-pokal2018.sapsailing.com "fc4ca7c9-5d11-4444-9f80-462a3e536e08"
|
||||
Use Event-ARCHIVE-SSL-Redirect dsl-pokal2017.sapsailing.com "f1860c95-0518-4044-ada2-3594a351dd13"
|
||||
|
||||
## Danish Sailing League
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2019.sapsailing.com "1894888b-a5cc-4d3d-9335-7d4374b72e15"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2018.sapsailing.com "c3dc2b53-b8f3-4657-93a5-e3c0bab7af80"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2-2018.sapsailing.com "f39e70a1-d31d-4f1d-87f5-c7832557f8d8"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2017.sapsailing.com "81ea69d1-111f-448f-8a83-394db3662b37"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2-2017.sapsailing.com "d21fe68c-f72f-4d11-b595-4a9426167b7c"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2016.sapsailing.com "845682ab-b8e5-4a2d-b1c2-d4e03f31963a"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2-2016.sapsailing.com "32a9c63b-1f00-4dba-bbe0-924a9b4a876d"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2015.sapsailing.com "94c730da-c0c0-44c8-b31e-0d3363e668a2"
|
||||
Use Series-ARCHIVE-SSL-Redirect sejlsportsligaen2015.sapsailing.com "81370e03-98d5-4b0c-b97a-8cc83ffdb18f"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2-2015.sapsailing.com "81370e03-98d5-4b0c-b97a-8cc83ffdb18f"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2014.sapsailing.com "cdea0732-5f0f-483b-9c32-266e2a95884e"
|
||||
|
||||
## Dutch Sailing League
|
||||
Use Series-ARCHIVE-SSL-Redirect dutchleague2018.sapsailing.com "cdfc4a3f-ef43-42fb-91fd-589b71cc1815"
|
||||
Use Series-ARCHIVE-SSL-Redirect dutchleague2017.sapsailing.com "07ebdd71-324b-4944-9dc8-790a7de49d36"
|
||||
Use Series-ARCHIVE-SSL-Redirect dutchleague2016.sapsailing.com "a975259d-f513-43f6-9e8c-e358c944f175"
|
||||
Use Event-ARCHIVE-SSL-Redirect dutchleague2015.sapsailing.com "4f863d14-1025-44ec-853b-7ef5d45fb19d"
|
||||
|
||||
## Junioren Liga
|
||||
Use Series-ARCHIVE-SSL-Redirect juniorenliga2019.sapsailing.com "5a81ddaf-b839-4ba7-aeaf-57699124b5f6"
|
||||
Use Event-ARCHIVE-SSL-Redirect juniorenliga2016.sapsailing.com "71ef7523-b900-4ea5-bb48-b83e1db98a8e"
|
||||
|
||||
## Finnish Sailing League
|
||||
## Finnish League 2019
|
||||
Use Event-ARCHIVE-SSL-Redirect finnishleague2019-final.sapsailing.com "1175aef1-1459-4794-b0ca-402a92785e01"
|
||||
Use Event-ARCHIVE-SSL-Redirect finnishleague2019-qualifier2.sapsailing.com "681b850d-64be-43e8-9a2e-8e1384198878"
|
||||
Use Event-ARCHIVE-SSL-Redirect finnishleague2019.sapsailing.com "869f49cb-230a-4849-947f-7f8b21d7d5d8"
|
||||
|
||||
Use Series-ARCHIVE-SSL-Redirect finnishleague2018.sapsailing.com "268a2f86-6722-4d26-8be1-08c0eb0b9306"
|
||||
Use Series-ARCHIVE-SSL-Redirect finnishleague2017.sapsailing.com "2828a793-aa4b-428e-80f5-cdea2f92558e"
|
||||
Use Series-ARCHIVE-SSL-Redirect finnishleague2016.sapsailing.com "e5a45e4d-5026-4a38-b585-e51a6deecc11"
|
||||
Use Series-ARCHIVE-SSL-Redirect finnishleague2015.sapsailing.com "9d679af1-99f7-492c-88dc-1e2d0e1e3d8d"
|
||||
|
||||
## French Sailing League
|
||||
Use Series-ARCHIVE-SSL-Redirect frenchleague2019.sapsailing.com "540cba66-192e-4392-8cb5-33cd20a7ce50"
|
||||
Use Series-ARCHIVE-SSL-Redirect frenchleague2018.sapsailing.com "aa75fb08-a973-45ec-9d71-f4c7e1a7a04a"
|
||||
Use Event-ARCHIVE-SSL-Redirect frenchleague2017.sapsailing.com "d366af4f-246d-4369-945a-f26505f9d77a"
|
||||
Use Event-ARCHIVE-SSL-Redirect frenchleague2016.sapsailing.com "6755bbe9-b761-42a2-9f85-a23dea926a3b"
|
||||
|
||||
## Norwegian Sailing League
|
||||
Use Series-ARCHIVE-SSL-Redirect norwegianleague2019.sapsailing.com "984b1bb8-eff1-484c-8275-44488e9f37ce"
|
||||
Use Series-ARCHIVE-SSL-Redirect norwegianleague2018.sapsailing.com "b60934bb-01d5-45d8-b05d-8ca0ccf33d82"
|
||||
Use Series-ARCHIVE-SSL-Redirect norwegianleague2017.sapsailing.com "b74b76b6-9f2e-4e30-abcf-3285af7b7cf0"
|
||||
Use Series-ARCHIVE-SSL-Redirect norwegianleague2-2017.sapsailing.com "852ecc8d-17b2-4d8d-81ad-20a34da07174"
|
||||
Use Series-ARCHIVE-SSL-Redirect norwegianleague2016.sapsailing.com "e3134c8b-bd61-457a-a039-3b277af70725"
|
||||
Use Event-ARCHIVE-SSL-Redirect norwegianleague2015.sapsailing.com "29c81874-4e3f-4970-9ae3-1c65eca8889b"
|
||||
Use Event-ARCHIVE-SSL-Redirect mesternes-mester-2015.sapsailing.com "8a5a7dcd-3c19-464f-a828-d0c3898b38d5"
|
||||
|
||||
## Polish League
|
||||
Use Series-ARCHIVE-SSL-Redirect polishleague2019.sapsailing.com "006e7569-7c5b-49de-a973-addf288e599e"
|
||||
Use Series-ARCHIVE-SSL-Redirect polishleague2018.sapsailing.com "aa60bdfc-6931-4919-9647-6ae61284f1da"
|
||||
Use Series-ARCHIVE-SSL-Redirect polishleague2017.sapsailing.com "862eb0bb-4db1-42cd-a857-5a0bcd13c7ad"
|
||||
|
||||
## Swedish Sailing League
|
||||
Use Series-ARCHIVE-SSL-Redirect swedishleague2019.sapsailing.com "fc141444-5c7b-4e65-af4e-72bf6b60199e"
|
||||
Use Series-ARCHIVE-SSL-Redirect swedishleague2018.sapsailing.com "9bc7be83-496f-4e30-a5f5-ebf634a8cdc1"
|
||||
Use Series-ARCHIVE-SSL-Redirect swedishleague2017.sapsailing.com "25179060-9139-4c2a-a71f-db11970548f0"
|
||||
Use Series-ARCHIVE-SSL-Redirect swedishleague2016.sapsailing.com "83db3f7a-b213-45a2-a772-4fc40ae10742"
|
||||
Use Series-ARCHIVE-SSL-Redirect allsvenskan2015.sapsailing.com "dd9fcadd-687b-43d5-8917-ed87e1d38633"
|
||||
Use Event-ARCHIVE-SSL-Redirect mastarnas-mastare-2015.sapsailing.com "f27b8b88-a7a3-4694-9374-7e5caebb0328"
|
||||
|
||||
###### SAP Sailing Experience ######
|
||||
|
||||
## SAP Now 2019 Experience
|
||||
Use Event-ARCHIVE-SSL-Redirect sapnow2019.sapsailing.com "30f90ec0-0ed6-4a94-9ade-aee464824d2d"
|
||||
|
||||
## SAP Sailing Experience 2019 - NRV
|
||||
Use Event-ARCHIVE-SSL-Redirect sapexperience2019-nrv.sapsailing.com "a7c0ec9b-f6bf-400e-98b6-be51ab541abe"
|
||||
|
||||
## SAP Sailing Experience 2019 - Travemünder Woche
|
||||
Use Event-ARCHIVE-SSL-Redirect sapexperience2019tw.sapsailing.com "2412609f-cb83-4832-9346-ccab59c7c3a8"
|
||||
|
||||
## SAP Sailing Experience 2019 - Kieler Woche
|
||||
Use Event-ARCHIVE-SSL-Redirect sapexperience2019kw.sapsailing.com "f21d34d8-6c40-4804-872b-0e5fdfb5ce64"
|
||||
|
||||
## SAP Sailing Experience 2018 Travemuender Woche
|
||||
Use Event-ARCHIVE-SSL-Redirect sapexperience2018tw.sapsailing.com "03937740-7da2-4644-92f9-9cb12c40fbb4"
|
||||
|
||||
## 505 Worlds 2018 - SAP Poland team race (SAP Experience)
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2018-SAP-Poland.sapsailing.com "eeeddabb-31c3-425c-abd5-0913781f879e"
|
||||
|
||||
## VIP SAP 2017 - DENMARK
|
||||
Use Event-ARCHIVE-SSL-Redirect vipsap2017.sapsailing.com "00b7dc6a-0f2a-42d1-8869-2483cde9d5ad"
|
||||
|
||||
## TW 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect TWguestsailing2016.sapsailing.com "bd4e1319-f431-423a-a922-3215ea0e6fe9"
|
||||
|
||||
## VIP Racing Denmark Skovshoved 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect vipsailingleaguedenmark2016.sapsailing.com "819c71d3-dd74-44fa-a397-24a38d2d76c5"
|
||||
|
||||
# Travemuender Woche 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect saptw2015.sapsailing.com "eb58ae5d-0460-4574-a1b8-2e4ef8cf8e15"
|
||||
|
||||
## SAP Sailing Experience
|
||||
Use Event-ARCHIVE-SSL-Redirect sapexperience2019portocervo.sapsailing.com "3d8dabf1-8900-4b49-8b20-1036207d41e1"
|
||||
Use Event-ARCHIVE-SSL-Redirect sapexperience2017saintmoritz.sapsailing.com "2828748a-735b-426c-883d-3e0d0c612449"
|
||||
Use Event-ARCHIVE-SSL-Redirect sapexperience2017tw.sapsailing.com "c89b99bb-f156-45aa-8eaa-6a5835c00037"
|
||||
Use Event-ARCHIVE-SSL-Redirect audisailingexperience2016.sapsailing.com "2744dfa0-e833-475e-afe3-a70807fa75f4"
|
||||
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2014-guests.sapsailing.com "001a5d8f-9704-4400-b5df-6c78e8037b8b"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2014-guests2.sapsailing.com "6c8231c3-cd1e-4535-a021-2fed1fc30471"
|
||||
|
||||
Use Spectator-ARCHIVE-SSL-Redirect captainsdinner2013.sapsailing.com "Captain's Dinner 2013"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect winners.sapsailing.com "SAP Winners Circle"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect winners2013.sapsailing.com "SAP Winners Circle 2013"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect 505guestsailing2013.sapsailing.com "505 Worlds 2013 Guest Program"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect 505worlds2012-guests.sapsailing.com "505 Worlds 2012 Guests"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect arenal2012.sapsailing.com "Arenal 2012"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect isafwc2014.sapsailing.com "ISAF World Cup Hyeres 2014"
|
||||
Use Event-ARCHIVE-SSL-Redirect mdm2011.sapsailing.com "b06d2e5c-0a35-4205-910f-d8387bbdd350"
|
||||
@@ -0,0 +1,381 @@
|
||||
#
|
||||
# Spectator $IP $PORT $HOSTNAME $GROUPNAME
|
||||
#
|
||||
# Spectator-WithParam $IP $PORT $HOSTNAME $GROUPNAME $EXTRA
|
||||
#
|
||||
# Leaderboard $IP $PORT $HOSTNAME $GROUPNAME $NAME
|
||||
#
|
||||
# Leaderboard-WithParam $IP $PORT $HOSTNAME $GROUPNAME $NAME $EXTRA
|
||||
#
|
||||
# Make sure to always use "" as delimiters for strings containing spaces
|
||||
# After a change please perform a service httpd reload
|
||||
#
|
||||
# ATT: There is a special macro called Spectator-ARCHIVE that contains
|
||||
# the fixed IP adress and port for the archive server. You can find it
|
||||
# in /etc/httpd/conf.d/000-macros.conf at the end of the file. Feel free
|
||||
# to add other macros there.
|
||||
|
||||
###################################
|
||||
############ DEDICATED ###########
|
||||
|
||||
## Finnish Sailing League 2017
|
||||
Use Plain-SSL-Redirect finnishleague2017-master.sapsailing.com 172.31.30.80 8888
|
||||
|
||||
## Danish Sailing League 2017
|
||||
Use Plain-SSL-Redirect danishleague2017-master.sapsailing.com 172.31.23.126 8888
|
||||
|
||||
## Swedish Sailing League 2017
|
||||
Use Plain-SSL-Redirect swedishleague2017-master.sapsailing.com 172.31.18.186 8888
|
||||
|
||||
## German Sailing League 2017
|
||||
Use Plain-SSL-Redirect bundesliga1-2017-master.sapsailing.com 172.31.18.63 8888
|
||||
Use Plain-SSL-Redirect bundesliga2-2017-master.sapsailing.com 172.31.26.48 8888
|
||||
|
||||
## Norwegian Sailing Server NOR
|
||||
Use Event-SSL-Redirect nor.sapsailing.com "33324b88-da0c-4c8f-a4e5-aa036da12da3" 172.31.21.60 8888
|
||||
|
||||
## Austrian Sailing League 2017
|
||||
Use Event-SSL-Redirect austrianleague2017.sapsailing.com "94d23c5e-4cef-47d7-92c7-f8ed77ec486c" 172.31.21.61 8888
|
||||
|
||||
## French Sailing League 2017
|
||||
Use Event-SSL-Redirect frenchleague2017.sapsailing.com "d366af4f-246d-4369-945a-f26505f9d77a" 172.31.22.171 8888
|
||||
|
||||
## Polish Sailing League 2017
|
||||
Use Event-SSL-Redirect polishleague2017.sapsailing.com "2899b154-41c7-4bb4-bc23-2bf83e927ea3" 172.31.30.38 8888
|
||||
|
||||
## Dutch Sailing League 2017
|
||||
Use Plain-SSL-Redirect dutchleague2017-master.sapsailing.com 172.31.24.29 8888
|
||||
|
||||
## Norwegian Sailing League 2017
|
||||
Use Plain-SSL-Redirect norwegianleague2017-master.sapsailing.com 172.31.27.133 8888
|
||||
|
||||
## ESS 2017
|
||||
Use Series-SSL-Redirect ess2017.sapsailing.com "d6ffa3c7-946b-4bef-9c22-2faf0fef429a" 172.31.11.96 8888
|
||||
|
||||
## Test ESS
|
||||
Use Plain-SSL-Redirect test-ess.sapsailing.com 172.31.47.179 8888
|
||||
|
||||
## Dutch Federation, first event probably North See Regatta
|
||||
Use Plain-SSL-Redirect dutch-federation.sapsailing.com 172.31.23.151 8888
|
||||
Use Event-SSL-Redirect nsr2017.sapsailing.com "b519045d-368f-4071-80e0-c6bdd47a3944" 172.31.23.151 8888
|
||||
|
||||
###################################
|
||||
######### SHARED INSTANCE #########
|
||||
|
||||
# 49er Analytics Instance
|
||||
Use Plain-SSL-Redirect 49er.sapsailing.com 172.31.30.84 8897
|
||||
|
||||
# Abeam (Japanese Partner) training system
|
||||
Use Plain-SSL-Redirect abeam-training.sapsailing.com 172.31.30.84 8890
|
||||
|
||||
# SAP Extreme Sailing Team Training Server
|
||||
Use Home-SSL-Redirect extreme-team.sapsailing.com 172.31.30.84 8892
|
||||
|
||||
# Luebecker Yacht-Club (LYC)
|
||||
Use Home-SSL-Redirect lyc.sapsailing.com 172.31.30.84 8898
|
||||
|
||||
# Bayerischer Yacht-Club (BYC)
|
||||
Use Home-SSL-Redirect byc.sapsailing.com 172.31.30.84 8894
|
||||
|
||||
# TracTrac Test
|
||||
Use Plain-SSL-Redirect tractractest.sapsailing.com 172.31.30.84 8891
|
||||
|
||||
# Ubilabs-Testserver
|
||||
Use Plain-SSL-Redirect ubilabstest.sapsailing.com 172.31.30.84 8895
|
||||
|
||||
# USSailing
|
||||
Use Home-SSL-Redirect ussailing.sapsailing.com 172.31.30.84 8889
|
||||
|
||||
# VSaW
|
||||
Use Home-SSL-Redirect vsaw.sapsailing.com 172.31.30.84 8893
|
||||
|
||||
# IRISHDBSCDW3
|
||||
Use Home-SSL-Redirect irishdbscdw3.sapsailing.com 172.31.30.84 8896
|
||||
|
||||
# Keppel Bay Sailing Club (KBSC)
|
||||
Use Home-SSL-Redirect kbsc.sapsailing.com 172.31.30.84 8899
|
||||
|
||||
# Seebrucker Regattaverein am Chiemsee (SRV)
|
||||
Use Home-SSL-Redirect srv.sapsailing.com 172.31.30.84 8900
|
||||
|
||||
# Heinz Nixdorf Verein zur Foerderung des Segelsports e.V. (HNV)
|
||||
Use Home-SSL-Redirect hnv.sapsailing.com 172.31.30.84 8901
|
||||
|
||||
# Israeli Sailing Association / Carmel Sailing Society
|
||||
Use Home-SSL-Redirect isr.sapsailing.com 172.31.30.84 8902
|
||||
Use Home-SSL-Redirect cyc.sapsailing.com 172.31.30.84 8902
|
||||
|
||||
# Sailtracks Test Server
|
||||
Use Home-SSL-Redirect sailtracks.sapsailing.com 172.31.30.84 8903
|
||||
|
||||
## Norwegian Sailing Federation
|
||||
## Use Home-SSL-Redirect nor.sapsailing.com 172.31.30.84 8904
|
||||
|
||||
# Segelvereinigung Rhein-Neckar
|
||||
Use Home-SSL-Redirect srn.sapsailing.com 172.31.30.84 8906
|
||||
|
||||
# Yacht-Club Luzern (Arnet, Ivo [mailto:ivo.arnet@itready.net])
|
||||
Use Home-SSL-Redirect ycl.sapsailing.com 172.31.30.84 8907
|
||||
|
||||
# Segelzentrum der Unviversität Kiel (Hamann, Jan [mailto:jan.hamann@email.uni-kiel.de])
|
||||
Use Home-SSL-Redirect segelzentrum.sapsailing.com 172.31.30.84 8908
|
||||
|
||||
###################################
|
||||
############# ARCHIVE #############
|
||||
|
||||
## Kieler Woche 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect kw2017.sapsailing.com "4d3df446-43bc-46a1-9146-3e1caf6ed757"
|
||||
|
||||
## Sailing World Cup Santander 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2017-santander.sapsailing.com "3b79f093-d52f-440b-9fc4-2fb9e0cc70c9"
|
||||
|
||||
## SWC 2017 Hyeres
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2017-hyeres.sapsailing.com "8962f211-6e79-422a-85c5-397aaff8d050"
|
||||
|
||||
# SWC Worldcup Miami 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2017-miami.sapsailing.com "b82f9012-47d8-4e9e-b3b2-a690c1db0fe3"
|
||||
|
||||
## ESS 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect ess2016.sapsailing.com "7f7ea575-261a-4bde-9d32-0d867e02fe20"
|
||||
|
||||
## SWC Worldcup Finale Melbourne 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2016-melbourne.sapsailing.com "dd2edeed-b9eb-483e-b3e9-d4761d0d58d2"
|
||||
|
||||
## Swedish Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect swedishleague2016.sapsailing.com "396bccc4-b72e-4edf-a1d2-80f8cfdb259f"
|
||||
|
||||
## Danish Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2016.sapsailing.com "ba493472-a1bd-49cc-ba4d-52eb723f0a71"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2-2016.sapsailing.com "8140b59e-3202-41b9-90d2-c75e85ef2ace"
|
||||
## VIP Racing Denmark Skovshoved 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect vipsailingleaguedenmark2016.sapsailing.com "819c71d3-dd74-44fa-a397-24a38d2d76c5"
|
||||
|
||||
## Norwegian Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect norwegianleague2016.sapsailing.com "2cb0eb1d-1a3c-45c6-8d73-caf907086b8a"
|
||||
|
||||
## Dutch Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect dutchleague2016.sapsailing.com "6d2fb3c9-de3a-4aa5-b893-1634e50710a0"
|
||||
|
||||
## Austrian Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect austrianleague2016.sapsailing.com "137fbbc3-7b42-4d3c-a85a-0f5e94f55375"
|
||||
|
||||
## Finish Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect finnishleague2016.sapsailing.com "86b0afe6-0675-4525-8701-7da02971f4f9"
|
||||
|
||||
## SWC Qingdao
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2016-qingdao.sapsailing.com "ea0caed8-3182-424e-91a7-6add65e1357d"
|
||||
|
||||
## Norwegian Grundig Cup (on norwegian league server)
|
||||
Use Event-ARCHIVE-SSL-Redirect grundigcup2016-norway.sapsailing.com "6caf564b-f2b4-4b51-8667-50049ecb8581"
|
||||
|
||||
## Sailing Championsleague 2016 (Petersburg / Porto Cervo)
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2016.sapsailing.com "810a5132-849f-49e0-828c-ace23289f0ac"
|
||||
|
||||
## USODA 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect usoda2016.sapsailing.com "46c85236-087e-418f-84f9-aee24dac948f"
|
||||
|
||||
## BAR Test Oman
|
||||
USE Event-ARCHIVE-SSL-Redirect bar-test.sapsailing.com "ec3dd898-9f02-472c-a783-06907cb9ef03"
|
||||
USE Event-ARCHIVE-SSL-Redirect ACWS-test.sapsailing.com "ec3dd898-9f02-472c-a783-06907cb9ef03"
|
||||
|
||||
## Test new archive in Availability zone A
|
||||
USE Event-SSL-Redirect bar-test-test.sapsailing.com "ec3dd898-9f02-472c-a783-06907cb9ef03" 172.31.40.107 8888
|
||||
|
||||
## SCGN Test 2016
|
||||
USE Event-ARCHIVE-SSL-Redirect scgn-test.sapsailing.com "5ca2b18a-0a55-4591-910c-1f1f35be51f2"
|
||||
|
||||
# SCGN Training
|
||||
Use Event-ARCHIVE-SSL-Redirect scgn-training.sapsailing.com "004147c6-3991-4a02-bc50-72b8e5b8027c"
|
||||
|
||||
## TW 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2016.sapsailing.com "86e9e60c-0b16-4941-b14a-166ed4dcabff"
|
||||
Use Event-ARCHIVE-SSL-Redirect TWguestsailing2016.sapsailing.com "bd4e1319-f431-423a-a922-3215ea0e6fe9"
|
||||
|
||||
## VANPro
|
||||
Use Event-ARCHIVE-SSL-Redirect VANpro2016.sapsailing.com "2316ce7d-be93-4ffc-8613-cb6ffa475153"
|
||||
|
||||
## Eastern Economic Forum 2016 (on multievent instance)
|
||||
Use Event-ARCHIVE-SSL-Redirect forumvostok2016.sapsailing.com "5093220d-875f-4909-9ad0-46476639ee97"
|
||||
|
||||
## IDM Star
|
||||
Use Event-ARCHIVE-SSL-Redirect idmstar2016.sapsailing.com "5a05f9b9-2f70-46f7-99e1-c069b418bc20"
|
||||
|
||||
# 505 Worlds 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2016.sapsailing.com "8f5daf0f-210f-435f-97bd-c6aff11af3d2"
|
||||
|
||||
# 29er Worlds 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect 29erWorlds2016.sapsailing.com "4b381745-1d29-4bda-b388-4a0b7e94dc98"
|
||||
|
||||
## WMRT 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect wmrt2016.sapsailing.com "cfbe9100-75d6-474a-8d58-3ef8b19cdf25"
|
||||
|
||||
## French Sailing League 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect frenchleague2016.sapsailing.com "6755bbe9-b761-42a2-9f85-a23dea926a3b"
|
||||
|
||||
## RosAtom 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect rsc2016.sapsailing.com "3aab9f92-0d83-411c-bfc9-c9032079a749"
|
||||
|
||||
## CRW 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect crw2016.sapsailing.com "56f62045-de57-4c5e-be6c-a2339d9c9ece"
|
||||
|
||||
# Kieler Woche 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2016.sapsailing.com "cc12361a-236b-4ddf-b68d-42ca785cd4d6"
|
||||
Use Event-ARCHIVE-SSL-Redirect audiultracup2016.sapsailing.com "c4f9793f-c492-46a0-8af2-a543d5dab588"
|
||||
|
||||
## 49erEuros 2016
|
||||
Use Event-Archive-SSL-Redirect 49erEuros2016.sapsailing.com "ccb1b062-fe59-4a1c-a15e-f30795ac3c7f"
|
||||
|
||||
# 49er / FX Princess Sofia Trophy 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect trofeoprincesasofia2016.sapsailing.com "445d072c-fe95-4cc3-ba49-874d4cd43325"
|
||||
|
||||
# 49er Worlds 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect 49erworlds2016.sapsailing.com "98e52dd5-2765-4f71-8ebc-82284be07fbc"
|
||||
|
||||
# 2.4mR IDM 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect idm24mR2015.sapsailing.com "c51c9915-a8f0-4a31-a0e2-127d557b7ea0"
|
||||
|
||||
# Surfing World Cup Sylt 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect worldcupsylt2015.sapsailing.com "9eb910b8-bb61-4113-8263-1667cd37ac76"
|
||||
|
||||
# Norwegian League 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect norwegianleague2015.sapsailing.com "29c81874-4e3f-4970-9ae3-1c65eca8889b"
|
||||
Use Event-ARCHIVE-SSL-Redirect mesternes-mester-2015.sapsailing.com "8a5a7dcd-3c19-464f-a828-d0c3898b38d5"
|
||||
|
||||
# Dutch League 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect dutchleague2015.sapsailing.com "4f863d14-1025-44ec-853b-7ef5d45fb19d"
|
||||
|
||||
# Championsleague 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect championsleague2015.sapsailing.com "f40d9162-9008-4516-9110-33ab0f17d6a0"
|
||||
|
||||
# Bart's Bash
|
||||
Use Event-ARCHIVE-SSL-Redirect bartsbash2015.sapsailing.com "905457f5-5ccb-4fea-8219-8300eed637ad"
|
||||
|
||||
# 49er JWC 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect 49erJWC2015.sapsailing.com "9605d85c-867e-438c-a74b-47da896f476e"
|
||||
|
||||
# Travemuender Woche 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2015.sapsailing.com "82c5adb5-2dac-40fb-aa18-3b8057365e57"
|
||||
Use Event-ARCHIVE-SSL-Redirect saptw2015.sapsailing.com "eb58ae5d-0460-4574-a1b8-2e4ef8cf8e15"
|
||||
|
||||
# Audi Business Cup
|
||||
Use Event-ARCHIVE-SSL-Redirect audibusinesscup2015.sapsailing.com "080b6c09-0110-4b51-a209-dc3cf8b9f669"
|
||||
|
||||
# 49er Euros 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect 49ereuros2015.sapsailing.com "2b684db8-683d-4479-925b-5962085b7ae1"
|
||||
|
||||
# KW 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2015.sapsailing.com "a9d6c5d5-cac3-47f2-9b5c-506e441819a1"
|
||||
Use LiveCenterWithLanguageSubstitution-ARCHIVE livecenter.kieler-woche.de "a9d6c5d5-cac3-47f2-9b5c-506e441819a1"
|
||||
|
||||
# YES 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect yes2015.sapsailing.com "fb44d803-15d3-4fe1-852d-28346346ebc3"
|
||||
|
||||
# SAP Opti Cup SCGN 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect sapopticup2015.sapsailing.com "dff7d969-9858-4dff-b2f2-a45018a2f755"
|
||||
|
||||
# RCApp Test Server
|
||||
Use Plain rcapptest.sapsailing.com 172.31.31.114 8888
|
||||
|
||||
# ESS 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2015.sapsailing.com "70054aa2-b381-4e77-8e17-840ee1b6190d"
|
||||
|
||||
# Danish League 2015
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2015.sapsailing.com "270696d1-d7cc-49c4-a022-bb6bce0f2dcc"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2-2015.sapsailing.com "5e7d5183-bdb1-425e-b144-a8322ea49c98"
|
||||
|
||||
# Swedish League 2015
|
||||
Use Series-ARCHIVE-SSL-Redirect allsvenskan2015.sapsailing.com "9627bbdf-1e8e-4a5a-8641-afc2218699b9"
|
||||
Use Series-ARCHIVE-SSL-Redirect mastarnas-mastare-2015.sapsailing.com "f27b8b88-a7a3-4694-9374-7e5caebb0328"
|
||||
|
||||
# Finnish League 2015
|
||||
Use Series-ARCHIVE-SSL-Redirect finnishleague2015.sapsailing.com "51168037-06d1-4907-bbfe-3d7bd0b23304"
|
||||
|
||||
# Austrian League 2015
|
||||
Use Series-ARCHIVE-SSL-Redirect austrianleague2015.sapsailing.com "85e8bd66-299a-4f5c-929e-746dbd081f13"
|
||||
|
||||
# Bodenseewoche 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect bodenseewoche2015.sapsailing.com "fef6c510-eefe-470f-a9a9-dcf6293ec116"
|
||||
|
||||
# RosAtom Cup 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect rosatomcup2015.sapsailing.com "f3a8c574-d23d-44d8-9316-3afb7ee0d39c"
|
||||
|
||||
# 505 Worlds 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2015.sapsailing.com "b1e78f52-ce52-4b71-ac30-452599faf4a1"
|
||||
|
||||
# ATC on Archive:
|
||||
Use Event-ARCHIVE-SSL-Redirect atcregatta2015.sapsailing.com "9c1d57bf-29c8-440f-becd-4862bc0f43fe"
|
||||
|
||||
# DEV Server
|
||||
Use Plain-SSL dev.sapsailing.com 172.31.28.17 8888
|
||||
Use Plain-SSL dualstack-dev.sapsailing.com 172.31.28.17 8888
|
||||
|
||||
# WWW
|
||||
Use Home-ARCHIVE-SSL-Redirect sapsailing.com
|
||||
Use Home-ARCHIVE-SSL-Redirect www.sapsailing.com
|
||||
|
||||
# DEMO Server on DEV
|
||||
Use Plain-SSL-Redirect demo.sapsailing.com 172.31.28.17 8889
|
||||
|
||||
# Bundesliga 2014 2015 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2014.sapsailing.com "2b2659c9-6c3b-46fb-a83d-9c9f1d2eabca"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2014.sapsailing.com "e455a068-06e5-410a-aea5-d1295f66f61e"
|
||||
Use Series-ARCHIVE-SSL-Redirect businesscup2014-hamburg.sapsailing.com "fd2e442b-6e79-4cc7-af23-01eb8eeb061e"
|
||||
Use Event-ARCHIVE-SSL-Redirect bundesliga2015-relegation.sapsailing.com "0fb650c5-51c8-44c9-8b4f-cb5d3e2def9a"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2015.sapsailing.com "95932bc5-5762-4951-b597-61f0f615734e"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2015.sapsailing.com "ba09f02f-98e7-4a8f-8e90-1f6c72459e82"
|
||||
Use Event-ARCHIVE-SSL-Redirect bundesliga2016-relegation.sapsailing.com "3b54a7ce-7585-4935-8564-522988484fb2"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2016.sapsailing.com "880c3122-8c63-4485-84cb-7115c58d35ea"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2016.sapsailing.com "e7cfefaf-8942-4341-a314-368c2a2d0437"
|
||||
Use Event-ARCHIVE-SSL-Redirect juniorenliga2016.sapsailing.com "71ef7523-b900-4ea5-bb48-b83e1db98a8e"
|
||||
Use Event-ARCHIVE-SSL-Redirect audisailingexperience2016.sapsailing.com "2744dfa0-e833-475e-afe3-a70807fa75f4"
|
||||
|
||||
# Danish events 2014: League 2014, Dansish sailing school event, qualification league 2015
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2014.sapsailing.com "abab896f-f49f-46f2-9908-c4d6ede79e1e"
|
||||
Use Series-ARCHIVE-SSL-Redirect sejlsportsligaen2015.sapsailing.com "bad1d47c-9bf3-4d31-ac07-f0391cc117da"
|
||||
Use Event-ARCHIVE-SSL-Redirect sejlerskolecup-2014.sapsailing.com "d75063dd-f579-4a46-836c-5cc017a71e44"
|
||||
|
||||
Use Event-ARCHIVE-SSL-Redirect championsleague2014.sapsailing.com "eb326f1b-81e8-468b-89cb-10131a8d8459"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2014.sapsailing.com "8e5bef73-7d55-45ed-951a-72ef375ae1b6"
|
||||
Use Event-ARCHIVE-SSL-Redirect bartsbash2014.sapsailing.com "b2e2b264-134c-4ef2-b592-53562fd0f835"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2014.sapsailing.com "94e1e240-8a3d-466b-9f39-419f311eaace"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2014-guests.sapsailing.com "001a5d8f-9704-4400-b5df-6c78e8037b8b"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2014-guests2.sapsailing.com "6c8231c3-cd1e-4535-a021-2fed1fc30471"
|
||||
Use Event-ARCHIVE-SSL-Redirect vulcaintrophy2014.sapsailing.com "09f39909-5d72-40d2-b6e9-4ea7c908a0dc"
|
||||
Use Event-ARCHIVE-SSL-Redirect vulcaintrophy2014-proam.sapsailing.com "ca9daa7d-c966-4e89-bc50-ce598e2f2a56"
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2014.sapsailing.com "5133df37-0092-42c8-a9cb-7a087ae00219"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2014.sapsailing.com "3713fbd7-a62b-439b-bec1-bea732c5d895"
|
||||
Use Event-ARCHIVE-SSL-Redirect yes2014.sapsailing.com "6b3dfa41-8553-4abc-8b02-7e3423a59041"
|
||||
Use Event-ARCHIVE-SSL-Redirect olympics2012.sapsailing.com "901963ed-743d-41db-9727-1c3b73e78ddd"
|
||||
Use Event-ARCHIVE-SSL-Redirect bundesliga2013.sapsailing.com "a6abca6e-9711-44dc-9c64-929bc869aa12"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2010.sapsailing.com "ba1f5e28-7552-4277-ac32-e440a3432fb7"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2011.sapsailing.com "a10c4fad-c07c-44f5-8241-614a165daae1"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2012.sapsailing.com "64e2b631-1a97-4270-9383-14481c8e960f"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2013.sapsailing.com "35dc9389-b59d-4ebd-8f6b-432065642f40"
|
||||
Use Event-ARCHIVE-SSL-Redirect drachenidm2012.sapsailing.com "a42beb95-4885-45f1-9ed7-91159a6e4f6a"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2012.sapsailing.com "863a5c30-cbea-4f1c-8fb1-54fffa6b7319"
|
||||
Use Event-ARCHIVE-SSL-Redirect 49er-euros2012.sapsailing.com "22c7942e-eb3d-462a-9d59-600468044bb2"
|
||||
Use Event-ARCHIVE-SSL-Redirect 49er-euros2013.sapsailing.com "232ce9c3-ac84-47c8-b77d-eec782400877"
|
||||
Use Event-ARCHIVE-SSL-Redirect idm2011.sapsailing.com "9577d5ae-b27f-4e76-bf26-580950baf904"
|
||||
Use Event-ARCHIVE-SSL-Redirect staridm2013.sapsailing.com "a43b8f96-1e77-448a-9b8a-0f586f1bb18f"
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2013.sapsailing.com "b0a721cf-89c3-486c-9a84-25e1aaeb3225"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505idm2013.sapsailing.com "9130f36f-d1c3-4080-ac5b-a2104b8fbfd0"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2013.sapsailing.com "1487bc65-be3b-4dbc-951d-a1390e9619e0"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2012.sapsailing.com "0c0db838-b199-4309-a2a4-90bebe85ffe8"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2013.sapsailing.com "3e4145a7-5473-4670-83e6-fd5ee364f7eb"
|
||||
Use Event-ARCHIVE-SSL-Redirect mdm2011.sapsailing.com "b06d2e5c-0a35-4205-910f-d8387bbdd350"
|
||||
Use Event-ARCHIVE-SSL-Redirect obmr2012.sapsailing.com "2dd8de86-6564-4189-9aa0-8666f26dbb5b"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2011.sapsailing.com "8be013de-d49d-49ea-9e73-4e7c7970aec0"
|
||||
Use Event-ARCHIVE-SSL-Redirect yes2012.sapsailing.com "7732cfba-23ff-44a7-9b5d-733d1d92e467"
|
||||
|
||||
Use Spectator-ARCHIVE-SSL-Redirect captainsdinner2013.sapsailing.com "Captain's Dinner 2013"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect winners.sapsailing.com "SAP Winners Circle"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect winners2013.sapsailing.com "SAP Winners Circle 2013"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect 505guestsailing2013.sapsailing.com "505 Worlds 2013 Guest Program"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect 505worlds2012-guests.sapsailing.com "505 Worlds 2012 Guests"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect arenal2012.sapsailing.com "Arenal 2012"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect mini650pc2013.sapsailing.com "Mini 650 Pacific Challenge 2013"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect 505.sapsailing.com "505"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect isafwc2014.sapsailing.com "ISAF World Cup Hyeres 2014"
|
||||
|
||||
############# ARCHIVE #############
|
||||
###################################
|
||||
@@ -0,0 +1,450 @@
|
||||
#
|
||||
# Spectator $IP $PORT $HOSTNAME $GROUPNAME
|
||||
#
|
||||
# Spectator-WithParam $IP $PORT $HOSTNAME $GROUPNAME $EXTRA
|
||||
#
|
||||
# Leaderboard $IP $PORT $HOSTNAME $GROUPNAME $NAME
|
||||
#
|
||||
# Leaderboard-WithParam $IP $PORT $HOSTNAME $GROUPNAME $NAME $EXTRA
|
||||
#
|
||||
# Make sure to always use "" as delimiters for strings containing spaces
|
||||
# After a change please perform a service httpd reload
|
||||
#
|
||||
# ATT: There is a special macro called Spectator-ARCHIVE that contains
|
||||
# the fixed IP adress and port for the archive server. You can find it
|
||||
# in /etc/httpd/conf.d/000-macros.conf at the end of the file. Feel free
|
||||
# to add other macros there.
|
||||
|
||||
###################################
|
||||
############ DEDICATED ###########
|
||||
|
||||
## North Stream Race 2017
|
||||
Use Series-SSL-Redirect nordstreamrace2017.sapsailing.com "189e402f-5de5-463e-ad90-a1199c01ffa6" 172.31.21.227 8888
|
||||
|
||||
## Norwegian Sailing Server NOR
|
||||
Use Event-SSL-Redirect nor.sapsailing.com "13ded7b5-7e81-44df-84e1-566c0cefc8f2" 172.31.17.231 8888
|
||||
|
||||
## ESS 2017
|
||||
Use Series-SSL-Redirect ess2017.sapsailing.com "d6ffa3c7-946b-4bef-9c22-2faf0fef429a" 172.31.18.190 8888
|
||||
|
||||
## Dutch Federation, first event probably North See Regatta
|
||||
Use Plain-SSL-Redirect dutch-federation.sapsailing.com 172.31.23.151 8888
|
||||
Use Event-SSL-Redirect nsr2017.sapsailing.com "b519045d-368f-4071-80e0-c6bdd47a3944" 172.31.23.151 8888
|
||||
|
||||
## Team Phoenix TP52
|
||||
Use Plain-SSL-Redirect phoenix.sapsailing.com 172.31.30.173 8888
|
||||
|
||||
###################################
|
||||
######### SHARED INSTANCE #########
|
||||
|
||||
# USSailing
|
||||
Use Home-SSL-Redirect ussailing.sapsailing.com 172.31.30.84 8889
|
||||
|
||||
# Abeam (Japanese Partner) training system
|
||||
Use Plain-SSL-Redirect abeam-training.sapsailing.com 172.31.30.84 8890
|
||||
|
||||
# TracTrac Test (now through Application Load Balancer (ALB))
|
||||
#Use Plain-SSL-Redirect tractractest.sapsailing.com 172.31.30.84 8891
|
||||
|
||||
# SAP Extreme Sailing Team Training Server
|
||||
Use Home-SSL-Redirect extreme-team.sapsailing.com 172.31.30.84 8892
|
||||
|
||||
# VSaW
|
||||
Use Home-SSL-Redirect vsaw.sapsailing.com 172.31.30.84 8893
|
||||
|
||||
# Bayerischer Yacht-Club (BYC)
|
||||
Use Home-SSL-Redirect byc.sapsailing.com 172.31.30.84 8894
|
||||
|
||||
# Ubilabs-Testserver (now through Application Load Balancer (ALB))
|
||||
#Use Plain-SSL-Redirect ubilabstest.sapsailing.com 172.31.30.84 8895
|
||||
|
||||
# IRISHDBSCDW3
|
||||
Use Home-SSL-Redirect irishdbscdw3.sapsailing.com 172.31.30.84 8896
|
||||
|
||||
# 49er Analytics Instance
|
||||
Use Plain-SSL-Redirect 49er.sapsailing.com 172.31.30.84 8897
|
||||
|
||||
# Luebecker Yacht-Club (LYC)
|
||||
Use Home-SSL-Redirect lyc.sapsailing.com 172.31.30.84 8898
|
||||
|
||||
# Keppel Bay Sailing Club (KBSC)
|
||||
Use Home-SSL-Redirect kbsc.sapsailing.com 172.31.30.84 8899
|
||||
|
||||
# Seebrucker Regattaverein am Chiemsee (SRV)
|
||||
Use Home-SSL-Redirect srv.sapsailing.com 172.31.30.84 8900
|
||||
|
||||
# Heinz Nixdorf Verein zur Foerderung des Segelsports e.V. (HNV)
|
||||
Use Home-SSL-Redirect hnv.sapsailing.com 172.31.30.84 8901
|
||||
|
||||
# Israeli Sailing Association / Carmel Sailing Society
|
||||
Use Home-SSL-Redirect isr.sapsailing.com 172.31.30.84 8902
|
||||
Use Home-SSL-Redirect cyc.sapsailing.com 172.31.30.84 8902
|
||||
|
||||
# Sailtracks Test Server
|
||||
Use Home-SSL-Redirect sailtracks.sapsailing.com 172.31.30.84 8903
|
||||
|
||||
## Norwegian Sailing Federation
|
||||
## Use Home-SSL-Redirect nor.sapsailing.com 172.31.30.84 8904
|
||||
|
||||
# Jojos Nacra Campaign (jpolgar@aol.com)
|
||||
Use Plain-SSL-Redirect jojopolgar.sapsailing.com 172.31.30.84 8905
|
||||
|
||||
# Segelvereinigung Rhein-Neckar
|
||||
Use Home-SSL-Redirect srn.sapsailing.com 172.31.30.84 8906
|
||||
|
||||
# Yacht-Club Luzern (Arnet, Ivo [mailto:ivo.arnet@itready.net])
|
||||
Use Home-SSL-Redirect ycl.sapsailing.com 172.31.30.84 8907
|
||||
|
||||
#### Segelzentrum der Unviversität Kiel (Hamann, Jan [mailto:jan.hamann@email.uni-kiel.de])
|
||||
Use Home-SSL-Redirect segelzentrum.sapsailing.com 172.31.30.84 8908
|
||||
|
||||
# Robert Davis Sailing, Canadian Sailing Team (Robert Davis <robertdavissailing@outlook.com>)
|
||||
Use Plain-SSL-Redirect rdsailing.sapsailing.com 172.31.30.84 8909
|
||||
|
||||
# Keith Johnson Softalk Computer Services (Keith Johnson <keith@softalk.co.uk>)
|
||||
Use Plain-SSL-Redirect kjscs.sapsailing.com 172.31.30.84 8910
|
||||
|
||||
# KSSS (Royal Swedish Sailing Club, Stefan Rahm <stefan@ksss.se>)
|
||||
Use Plain-SSL-Redirect ksss.sapsailing.com 172.31.30.84 8911
|
||||
|
||||
# Sailing Academy South Africa (instructor@sailingacademy.co.za, Neil Ashton)
|
||||
Use Plain-SSL-Redirect sailingacademy.sapsailing.com 172.31.30.84 8912
|
||||
|
||||
# StarLab (Fabiano Avancini [mailto:fabiano.avancini@gmail.com], https://www.facebook.com/events/845403545622630/)
|
||||
Use Plain-SSL-Redirect starlab.sapsailing.com 172.31.30.84 8913
|
||||
|
||||
# SingaporeSailing (Lim Han Ee <han@singaporesailing.org.sg>)
|
||||
Use Plain-SSL-Redirect singaporesailing.sapsailing.com 172.31.30.84 8914
|
||||
|
||||
# Club Nautic de Sitges (pa.ubach@gmail.com; on behalf of; Pere-Andreu Ubach <pa_ubach@alum.mit.edu>)
|
||||
Use Plain-SSL-Redirect sitges.sapsailing.com 172.31.30.84 8915
|
||||
|
||||
# Akademischer Seglerverein Aachen (Axel Schmidt, axel.sebastian.schmidt@rwth-aachen.de)
|
||||
Use Plain-SSL-Redirect asvia.sapsailing.com 172.31.30.84 8916
|
||||
|
||||
# Schwartauer Segler-Verein, www.ssv-net.de, Alexander Probst, webmaster@alexprobst.de
|
||||
Use Plain-SSL-Redirect ssv.sapsailing.com 172.31.30.84 8917
|
||||
|
||||
# SailCanada (Canadian Sailing Federation, Ken Dool, ken@sailing.ca)
|
||||
Use Plain-SSL-Redirect sailcanada.sapsailing.com 172.31.30.84 8918
|
||||
|
||||
###################################
|
||||
############# ARCHIVE #############
|
||||
|
||||
## World Cup Gamagori 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect wcs2018-gamagori.sapsailing.com "1e8a9ae8-4a48-4de2-99c5-308169c37b76"
|
||||
|
||||
## Dutch Sailing League 2017
|
||||
Use Series-ARCHIVE-SSL-Redirect dutchleague2017.sapsailing.com "0acd49d7-5fb3-46d2-a174-7ef7a63dbe66"
|
||||
|
||||
## 505 Worlds 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2017.sapsailing.com "4e070be8-51a8-4633-87fc-533f3f54f7d4"
|
||||
|
||||
## Norwegian Sailing League 2017
|
||||
Use Series-ARCHIVE-SSL-Redirect norwegianleague2017.sapsailing.com "b9879cc4-5bc7-4a2e-867c-299eaae28f25"
|
||||
Use Series-ARCHIVE-SSL-Redirect norwegianleague2-2017.sapsailing.com "80577cb6-11ee-4154-8aed-3917044554b9"
|
||||
|
||||
|
||||
## Danish Sailing League 2017
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2017.sapsailing.com "9da19281-a0ce-4871-a23e-3b6ef04a6706"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2-2017.sapsailing.com "f0003d0e-0db4-4009-9478-d7868f5c432c"
|
||||
Use Event-ARCHIVE-SSL-Redirect vipsap2017.sapsailing.com "00b7dc6a-0f2a-42d1-8869-2483cde9d5ad"
|
||||
|
||||
## Austrian Sailing League 2017
|
||||
Use Series-ARCHIVE-SSL-Redirect austrianleague2017.sapsailing.com "94d23c5e-4cef-47d7-92c7-f8ed77ec486c"
|
||||
|
||||
## Kiellauf 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect kiellauf2017.sapsailing.com "acccaf32-3173-4ee2-afd2-5e09a00cdf53"
|
||||
|
||||
## 6mR Worlds 2017 Vancouver
|
||||
Use Event-ARCHIVE-SSL-Redirect 6mworlds2017.sapsailing.com "3fbe1757-652c-48d6-a7a5-3a611c82589b"
|
||||
|
||||
## French Sailing League 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect frenchleague2017.sapsailing.com "d366af4f-246d-4369-945a-f26505f9d77a"
|
||||
|
||||
## IDM FINN 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect idmfinn2017.sapsailing.com "9af4c6fd-a9ff-43b6-9927-323db03bab31"
|
||||
|
||||
## Polish Sailing League 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect polishleague2017.sapsailing.com "dc8306e0-38dd-48e7-9010-21ace668d0b7"
|
||||
|
||||
## 8 meter worlds 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect 8mworlds2017.sapsailing.com "bd1df974-aa7d-4d56-98ca-de0a50bbe0b6"
|
||||
|
||||
##Sailing Champions League 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect sapexperience2017saintmoritz.sapsailing.com "2828748a-735b-426c-883d-3e0d0c612449"
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2017.sapsailing.com "e6da37a1-773f-4dc5-b7e8-7753d3308386"
|
||||
|
||||
##Hansesail 2017 (operated by melanie.coldewey@sap.com)
|
||||
Use Event-ARCHIVE-SSL-Redirect hansesail2017.sapsailing.com "0e76df1e-c61f-4845-8681-4b60d4de7cb3"
|
||||
|
||||
## 49er, 49FX, Nacra17 Europeans Championships 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect 49er-n17-euros2017.sapsailing.com "2288808b-2697-48e9-893a-76ccf00ee94d"
|
||||
|
||||
# Sailing World Championships Test Event 2017 Aarhus
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2017-aarhus.sapsailing.com "c452f5e8-1bec-4e7b-b459-32f6b820add6"
|
||||
|
||||
## Travemuender Woche 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2017.sapsailing.com "7784129f-7832-49f1-a5f0-b8d66aa5560c"
|
||||
Use Event-ARCHIVE-SSL-Redirect experiencetw2017.sapsailing.com "c89b99bb-f156-45aa-8eaa-6a5835c00037"
|
||||
|
||||
## Kieler Woche 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect kw2017.sapsailing.com "4d3df446-43bc-46a1-9146-3e1caf6ed757"
|
||||
|
||||
## Sailing World Cup Santander 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2017-santander.sapsailing.com "3b79f093-d52f-440b-9fc4-2fb9e0cc70c9"
|
||||
|
||||
## SWC 2017 Hyeres
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2017-hyeres.sapsailing.com "8962f211-6e79-422a-85c5-397aaff8d050"
|
||||
|
||||
# SWC Worldcup Miami 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2017-miami.sapsailing.com "b82f9012-47d8-4e9e-b3b2-a690c1db0fe3"
|
||||
|
||||
## ESS 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect ess2016.sapsailing.com "7f7ea575-261a-4bde-9d32-0d867e02fe20"
|
||||
|
||||
## SWC Worldcup Finale Melbourne 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2016-melbourne.sapsailing.com "dd2edeed-b9eb-483e-b3e9-d4761d0d58d2"
|
||||
|
||||
## Swedish Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect swedishleague2016.sapsailing.com "396bccc4-b72e-4edf-a1d2-80f8cfdb259f"
|
||||
Use Series-ARCHIVE-SSL-Redirect swedishleague2017.sapsailing.com "8c3467b4-7592-46cc-b70f-45dab79bc2da"
|
||||
|
||||
## Danish Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2016.sapsailing.com "ba493472-a1bd-49cc-ba4d-52eb723f0a71"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2-2016.sapsailing.com "8140b59e-3202-41b9-90d2-c75e85ef2ace"
|
||||
## VIP Racing Denmark Skovshoved 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect vipsailingleaguedenmark2016.sapsailing.com "819c71d3-dd74-44fa-a397-24a38d2d76c5"
|
||||
|
||||
## Norwegian Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect norwegianleague2016.sapsailing.com "2cb0eb1d-1a3c-45c6-8d73-caf907086b8a"
|
||||
|
||||
## Dutch Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect dutchleague2016.sapsailing.com "6d2fb3c9-de3a-4aa5-b893-1634e50710a0"
|
||||
|
||||
## Austrian Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect austrianleague2016.sapsailing.com "137fbbc3-7b42-4d3c-a85a-0f5e94f55375"
|
||||
|
||||
## Finish Sailing League 2016
|
||||
Use Series-ARCHIVE-SSL-Redirect finnishleague2016.sapsailing.com "86b0afe6-0675-4525-8701-7da02971f4f9"
|
||||
Use Series-ARCHIVE-SSL-Redirect finnishleague2017.sapsailing.com "a8cd2cfd-83e8-42a9-804b-ff867dab82ad"
|
||||
|
||||
## SWC Qingdao
|
||||
Use Event-ARCHIVE-SSL-Redirect swc2016-qingdao.sapsailing.com "ea0caed8-3182-424e-91a7-6add65e1357d"
|
||||
|
||||
## Norwegian Grundig Cup (on norwegian league server)
|
||||
Use Event-ARCHIVE-SSL-Redirect grundigcup2016-norway.sapsailing.com "6caf564b-f2b4-4b51-8667-50049ecb8581"
|
||||
|
||||
## Sailing Championsleague 2016 (Petersburg / Porto Cervo)
|
||||
Use Event-ARCHIVE-SSL-Redirect scl2016.sapsailing.com "810a5132-849f-49e0-828c-ace23289f0ac"
|
||||
|
||||
## USODA 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect usoda2016.sapsailing.com "46c85236-087e-418f-84f9-aee24dac948f"
|
||||
|
||||
## BAR Test Oman
|
||||
USE Event-ARCHIVE-SSL-Redirect bar-test.sapsailing.com "ec3dd898-9f02-472c-a783-06907cb9ef03"
|
||||
USE Event-ARCHIVE-SSL-Redirect ACWS-test.sapsailing.com "ec3dd898-9f02-472c-a783-06907cb9ef03"
|
||||
|
||||
## Test new archive in Availability zone A
|
||||
USE Event-SSL-Redirect bar-test-test.sapsailing.com "ec3dd898-9f02-472c-a783-06907cb9ef03" 172.31.40.107 8888
|
||||
|
||||
## SCGN Test 2016
|
||||
USE Event-ARCHIVE-SSL-Redirect scgn-test.sapsailing.com "5ca2b18a-0a55-4591-910c-1f1f35be51f2"
|
||||
|
||||
# SCGN Training
|
||||
Use Event-ARCHIVE-SSL-Redirect scgn-training.sapsailing.com "004147c6-3991-4a02-bc50-72b8e5b8027c"
|
||||
|
||||
## TW 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2016.sapsailing.com "86e9e60c-0b16-4941-b14a-166ed4dcabff"
|
||||
Use Event-ARCHIVE-SSL-Redirect TWguestsailing2016.sapsailing.com "bd4e1319-f431-423a-a922-3215ea0e6fe9"
|
||||
|
||||
## VANPro
|
||||
Use Event-ARCHIVE-SSL-Redirect VANpro2016.sapsailing.com "2316ce7d-be93-4ffc-8613-cb6ffa475153"
|
||||
|
||||
## Eastern Economic Forum 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect forumvostok2016.sapsailing.com "5093220d-875f-4909-9ad0-46476639ee97"
|
||||
|
||||
## IDM Star
|
||||
Use Event-ARCHIVE-SSL-Redirect idmstar2016.sapsailing.com "5a05f9b9-2f70-46f7-99e1-c069b418bc20"
|
||||
|
||||
# 505 Worlds 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2016.sapsailing.com "8f5daf0f-210f-435f-97bd-c6aff11af3d2"
|
||||
|
||||
# 29er Worlds 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect 29erWorlds2016.sapsailing.com "4b381745-1d29-4bda-b388-4a0b7e94dc98"
|
||||
|
||||
## WMRT 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect wmrt2016.sapsailing.com "cfbe9100-75d6-474a-8d58-3ef8b19cdf25"
|
||||
|
||||
## French Sailing League 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect frenchleague2016.sapsailing.com "6755bbe9-b761-42a2-9f85-a23dea926a3b"
|
||||
|
||||
## RosAtom 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect rsc2016.sapsailing.com "3aab9f92-0d83-411c-bfc9-c9032079a749"
|
||||
|
||||
## CRW 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect crw2016.sapsailing.com "56f62045-de57-4c5e-be6c-a2339d9c9ece"
|
||||
|
||||
# Kieler Woche 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2016.sapsailing.com "cc12361a-236b-4ddf-b68d-42ca785cd4d6"
|
||||
Use Event-ARCHIVE-SSL-Redirect audiultracup2016.sapsailing.com "c4f9793f-c492-46a0-8af2-a543d5dab588"
|
||||
|
||||
## 49erEuros 2016
|
||||
Use Event-Archive-SSL-Redirect 49erEuros2016.sapsailing.com "ccb1b062-fe59-4a1c-a15e-f30795ac3c7f"
|
||||
|
||||
# 49er / FX Princess Sofia Trophy 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect trofeoprincesasofia2016.sapsailing.com "445d072c-fe95-4cc3-ba49-874d4cd43325"
|
||||
|
||||
# 49er Worlds 2016
|
||||
Use Event-ARCHIVE-SSL-Redirect 49erworlds2016.sapsailing.com "98e52dd5-2765-4f71-8ebc-82284be07fbc"
|
||||
|
||||
# 2.4mR IDM 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect idm24mR2015.sapsailing.com "c51c9915-a8f0-4a31-a0e2-127d557b7ea0"
|
||||
|
||||
# Surfing World Cup Sylt 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect worldcupsylt2015.sapsailing.com "9eb910b8-bb61-4113-8263-1667cd37ac76"
|
||||
|
||||
# Norwegian League 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect norwegianleague2015.sapsailing.com "29c81874-4e3f-4970-9ae3-1c65eca8889b"
|
||||
Use Event-ARCHIVE-SSL-Redirect mesternes-mester-2015.sapsailing.com "8a5a7dcd-3c19-464f-a828-d0c3898b38d5"
|
||||
|
||||
# Dutch League 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect dutchleague2015.sapsailing.com "4f863d14-1025-44ec-853b-7ef5d45fb19d"
|
||||
|
||||
# Championsleague 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect championsleague2015.sapsailing.com "f40d9162-9008-4516-9110-33ab0f17d6a0"
|
||||
|
||||
# Bart's Bash
|
||||
Use Event-ARCHIVE-SSL-Redirect bartsbash2015.sapsailing.com "905457f5-5ccb-4fea-8219-8300eed637ad"
|
||||
|
||||
# 49er JWC 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect 49erJWC2015.sapsailing.com "9605d85c-867e-438c-a74b-47da896f476e"
|
||||
|
||||
# Travemuender Woche 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2015.sapsailing.com "82c5adb5-2dac-40fb-aa18-3b8057365e57"
|
||||
Use Event-ARCHIVE-SSL-Redirect saptw2015.sapsailing.com "eb58ae5d-0460-4574-a1b8-2e4ef8cf8e15"
|
||||
|
||||
# Audi Business Cup
|
||||
Use Event-ARCHIVE-SSL-Redirect audibusinesscup2015.sapsailing.com "080b6c09-0110-4b51-a209-dc3cf8b9f669"
|
||||
|
||||
# 49er Euros 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect 49ereuros2015.sapsailing.com "2b684db8-683d-4479-925b-5962085b7ae1"
|
||||
|
||||
# KW 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2015.sapsailing.com "a9d6c5d5-cac3-47f2-9b5c-506e441819a1"
|
||||
Use LiveCenterWithLanguageSubstitution-ARCHIVE livecenter.kieler-woche.de "a9d6c5d5-cac3-47f2-9b5c-506e441819a1"
|
||||
|
||||
# YES 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect yes2015.sapsailing.com "fb44d803-15d3-4fe1-852d-28346346ebc3"
|
||||
|
||||
# SAP Opti Cup SCGN 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect sapopticup2015.sapsailing.com "dff7d969-9858-4dff-b2f2-a45018a2f755"
|
||||
|
||||
# RCApp Test Server
|
||||
Use Plain rcapptest.sapsailing.com 172.31.31.114 8888
|
||||
|
||||
# ESS 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2015.sapsailing.com "70054aa2-b381-4e77-8e17-840ee1b6190d"
|
||||
|
||||
# Danish League 2015
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2015.sapsailing.com "270696d1-d7cc-49c4-a022-bb6bce0f2dcc"
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2-2015.sapsailing.com "5e7d5183-bdb1-425e-b144-a8322ea49c98"
|
||||
|
||||
# Swedish League 2015
|
||||
Use Series-ARCHIVE-SSL-Redirect allsvenskan2015.sapsailing.com "9627bbdf-1e8e-4a5a-8641-afc2218699b9"
|
||||
Use Series-ARCHIVE-SSL-Redirect mastarnas-mastare-2015.sapsailing.com "f27b8b88-a7a3-4694-9374-7e5caebb0328"
|
||||
|
||||
# Finnish League 2015
|
||||
Use Series-ARCHIVE-SSL-Redirect finnishleague2015.sapsailing.com "51168037-06d1-4907-bbfe-3d7bd0b23304"
|
||||
|
||||
# Austrian League 2015
|
||||
Use Series-ARCHIVE-SSL-Redirect austrianleague2015.sapsailing.com "85e8bd66-299a-4f5c-929e-746dbd081f13"
|
||||
|
||||
# Bodenseewoche 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect bodenseewoche2015.sapsailing.com "fef6c510-eefe-470f-a9a9-dcf6293ec116"
|
||||
|
||||
# RosAtom Cup 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect rosatomcup2015.sapsailing.com "f3a8c574-d23d-44d8-9316-3afb7ee0d39c"
|
||||
|
||||
# 505 Worlds 2015
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2015.sapsailing.com "b1e78f52-ce52-4b71-ac30-452599faf4a1"
|
||||
|
||||
# ATC on Archive:
|
||||
Use Event-ARCHIVE-SSL-Redirect atcregatta2015.sapsailing.com "9c1d57bf-29c8-440f-becd-4862bc0f43fe"
|
||||
|
||||
# DEV Server
|
||||
Use Plain-SSL dev.sapsailing.com 172.31.28.17 8888
|
||||
Use Plain-SSL dualstack-dev.sapsailing.com 172.31.28.17 8888
|
||||
|
||||
# WWW is now defined in 000-main.conf so it can be the default virtual host; please see there
|
||||
|
||||
# DEMO Server on DEV
|
||||
Use Plain-SSL-Redirect demo.sapsailing.com 172.31.28.17 8889
|
||||
|
||||
# Bundesliga 2014 2015 2016 2017
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2014.sapsailing.com "2b2659c9-6c3b-46fb-a83d-9c9f1d2eabca"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2014.sapsailing.com "e455a068-06e5-410a-aea5-d1295f66f61e"
|
||||
Use Series-ARCHIVE-SSL-Redirect businesscup2014-hamburg.sapsailing.com "fd2e442b-6e79-4cc7-af23-01eb8eeb061e"
|
||||
Use Event-ARCHIVE-SSL-Redirect bundesliga2015-relegation.sapsailing.com "0fb650c5-51c8-44c9-8b4f-cb5d3e2def9a"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2015.sapsailing.com "95932bc5-5762-4951-b597-61f0f615734e"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2015.sapsailing.com "ba09f02f-98e7-4a8f-8e90-1f6c72459e82"
|
||||
Use Event-ARCHIVE-SSL-Redirect bundesliga2016-relegation.sapsailing.com "3b54a7ce-7585-4935-8564-522988484fb2"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2016.sapsailing.com "880c3122-8c63-4485-84cb-7115c58d35ea"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2016.sapsailing.com "e7cfefaf-8942-4341-a314-368c2a2d0437"
|
||||
Use Event-ARCHIVE-SSL-Redirect juniorenliga2016.sapsailing.com "71ef7523-b900-4ea5-bb48-b83e1db98a8e"
|
||||
Use Event-ARCHIVE-SSL-Redirect audisailingexperience2016.sapsailing.com "2744dfa0-e833-475e-afe3-a70807fa75f4"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2017.sapsailing.com "7268b8a4-7c86-431c-935d-efa9e6d16e8a"
|
||||
Use Series-ARCHIVE-SSL-Redirect bundesliga2-2017.sapsailing.com "25d32dea-7bc6-4b7d-ac83-a3522cc8574b"
|
||||
## DSL Pokal 2017
|
||||
Use Event-ARCHIVE-SSL-Redirect dsl-pokal2017.sapsailing.com "f1860c95-0518-4044-ada2-3594a351dd13"
|
||||
|
||||
|
||||
# Danish events 2014: League 2014, Dansish sailing school event, qualification league 2015
|
||||
Use Series-ARCHIVE-SSL-Redirect danishleague2014.sapsailing.com "abab896f-f49f-46f2-9908-c4d6ede79e1e"
|
||||
Use Series-ARCHIVE-SSL-Redirect sejlsportsligaen2015.sapsailing.com "bad1d47c-9bf3-4d31-ac07-f0391cc117da"
|
||||
Use Event-ARCHIVE-SSL-Redirect sejlerskolecup-2014.sapsailing.com "d75063dd-f579-4a46-836c-5cc017a71e44"
|
||||
|
||||
Use Event-ARCHIVE-SSL-Redirect championsleague2014.sapsailing.com "eb326f1b-81e8-468b-89cb-10131a8d8459"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2014.sapsailing.com "8e5bef73-7d55-45ed-951a-72ef375ae1b6"
|
||||
Use Event-ARCHIVE-SSL-Redirect bartsbash2014.sapsailing.com "b2e2b264-134c-4ef2-b592-53562fd0f835"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2014.sapsailing.com "94e1e240-8a3d-466b-9f39-419f311eaace"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2014-guests.sapsailing.com "001a5d8f-9704-4400-b5df-6c78e8037b8b"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2014-guests2.sapsailing.com "6c8231c3-cd1e-4535-a021-2fed1fc30471"
|
||||
Use Event-ARCHIVE-SSL-Redirect vulcaintrophy2014.sapsailing.com "09f39909-5d72-40d2-b6e9-4ea7c908a0dc"
|
||||
Use Event-ARCHIVE-SSL-Redirect vulcaintrophy2014-proam.sapsailing.com "ca9daa7d-c966-4e89-bc50-ce598e2f2a56"
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2014.sapsailing.com "5133df37-0092-42c8-a9cb-7a087ae00219"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2014.sapsailing.com "3713fbd7-a62b-439b-bec1-bea732c5d895"
|
||||
Use Event-ARCHIVE-SSL-Redirect yes2014.sapsailing.com "6b3dfa41-8553-4abc-8b02-7e3423a59041"
|
||||
Use Event-ARCHIVE-SSL-Redirect olympics2012.sapsailing.com "901963ed-743d-41db-9727-1c3b73e78ddd"
|
||||
Use Event-ARCHIVE-SSL-Redirect olympics2016.sapsailing.com "e6dbae49-aa2f-49fc-a7eb-82e24cdc307f"
|
||||
Use Event-ARCHIVE-SSL-Redirect bundesliga2013.sapsailing.com "a6abca6e-9711-44dc-9c64-929bc869aa12"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2010.sapsailing.com "ba1f5e28-7552-4277-ac32-e440a3432fb7"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2011.sapsailing.com "a10c4fad-c07c-44f5-8241-614a165daae1"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2012.sapsailing.com "64e2b631-1a97-4270-9383-14481c8e960f"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505worlds2013.sapsailing.com "35dc9389-b59d-4ebd-8f6b-432065642f40"
|
||||
Use Event-ARCHIVE-SSL-Redirect drachenidm2012.sapsailing.com "a42beb95-4885-45f1-9ed7-91159a6e4f6a"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2012.sapsailing.com "863a5c30-cbea-4f1c-8fb1-54fffa6b7319"
|
||||
Use Event-ARCHIVE-SSL-Redirect 49er-euros2012.sapsailing.com "22c7942e-eb3d-462a-9d59-600468044bb2"
|
||||
Use Event-ARCHIVE-SSL-Redirect 49er-euros2013.sapsailing.com "232ce9c3-ac84-47c8-b77d-eec782400877"
|
||||
Use Event-ARCHIVE-SSL-Redirect idm2011.sapsailing.com "9577d5ae-b27f-4e76-bf26-580950baf904"
|
||||
Use Event-ARCHIVE-SSL-Redirect staridm2013.sapsailing.com "a43b8f96-1e77-448a-9b8a-0f586f1bb18f"
|
||||
Use Event-ARCHIVE-SSL-Redirect tw2013.sapsailing.com "b0a721cf-89c3-486c-9a84-25e1aaeb3225"
|
||||
Use Event-ARCHIVE-SSL-Redirect 505idm2013.sapsailing.com "9130f36f-d1c3-4080-ac5b-a2104b8fbfd0"
|
||||
Use Event-ARCHIVE-SSL-Redirect ess40-2013.sapsailing.com "1487bc65-be3b-4dbc-951d-a1390e9619e0"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2012.sapsailing.com "0c0db838-b199-4309-a2a4-90bebe85ffe8"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2013.sapsailing.com "3e4145a7-5473-4670-83e6-fd5ee364f7eb"
|
||||
Use Event-ARCHIVE-SSL-Redirect mdm2011.sapsailing.com "b06d2e5c-0a35-4205-910f-d8387bbdd350"
|
||||
Use Event-ARCHIVE-SSL-Redirect obmr2012.sapsailing.com "2dd8de86-6564-4189-9aa0-8666f26dbb5b"
|
||||
Use Event-ARCHIVE-SSL-Redirect kielerwoche2011.sapsailing.com "8be013de-d49d-49ea-9e73-4e7c7970aec0"
|
||||
Use Event-ARCHIVE-SSL-Redirect yes2012.sapsailing.com "7732cfba-23ff-44a7-9b5d-733d1d92e467"
|
||||
|
||||
Use Spectator-ARCHIVE-SSL-Redirect captainsdinner2013.sapsailing.com "Captain's Dinner 2013"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect winners.sapsailing.com "SAP Winners Circle"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect winners2013.sapsailing.com "SAP Winners Circle 2013"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect 505guestsailing2013.sapsailing.com "505 Worlds 2013 Guest Program"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect 505worlds2012-guests.sapsailing.com "505 Worlds 2012 Guests"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect arenal2012.sapsailing.com "Arenal 2012"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect mini650pc2013.sapsailing.com "Mini 650 Pacific Challenge 2013"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect 505.sapsailing.com "505"
|
||||
Use Spectator-ARCHIVE-SSL-Redirect isafwc2014.sapsailing.com "ISAF World Cup Hyeres 2014"
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,10 @@
|
||||
|
||||
# Default site
|
||||
#<LocationMatch "^/+$">
|
||||
# Options -Indexes
|
||||
#ErrorDocument 403 /error/noindex.html
|
||||
#RedirectPermanent / http://www.sapsailing.com/
|
||||
#</LocationMatch>
|
||||
|
||||
# Default host
|
||||
|
||||
@@ -0,0 +1,167 @@
|
||||
<VirtualHost *:443>
|
||||
ServerName git.sapsailing.com
|
||||
SetEnv GIT_PROJECT_ROOT /home/trac/git
|
||||
SetEnv GIT_HTTP_EXPORT_ALL
|
||||
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
|
||||
|
||||
<Location /git/ >
|
||||
Options +ExecCGI
|
||||
AuthType Basic
|
||||
AuthName 'Git'
|
||||
AuthUserFile '/etc/httpd/conf/passwd.git'
|
||||
Require valid-user
|
||||
</Location>
|
||||
|
||||
#AuthType Basic
|
||||
#AuthName "Git"
|
||||
#AuthUserFile /etc/httpd/conf/passwd.git
|
||||
#Require valid-user
|
||||
|
||||
# Use separate log files for the SSL virtual host; note that LogLevel
|
||||
# is not inherited from httpd.conf.
|
||||
ErrorLog logs/git_error_log
|
||||
TransferLog logs/git_access_log
|
||||
LogLevel warn
|
||||
|
||||
# SSL Engine Switch:
|
||||
# Enable/Disable SSL for this virtual host.
|
||||
SSLEngine on
|
||||
|
||||
# SSL Protocol support:
|
||||
# List the enable protocol levels with which clients will be able to
|
||||
# connect. Disable SSLv2 access by default:
|
||||
SSLProtocol all -SSLv2
|
||||
|
||||
# SSL Cipher Suite:
|
||||
# List the ciphers that the client is permitted to negotiate.
|
||||
# See the mod_ssl documentation for a complete list.
|
||||
# This line with SSLv3 disabled; seems to cause problems for Gerrit replication...
|
||||
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:SSLv3:!RC4:!MD5:+HIGH
|
||||
|
||||
# Server Certificate:
|
||||
# Point SSLCertificateFile at a PEM encoded certificate. If
|
||||
# the certificate is encrypted, then you will be prompted for a
|
||||
# pass phrase. Note that a kill -HUP will prompt again. A new
|
||||
# certificate can be generated using the genkey(1) command.
|
||||
#SSLCertificateFile /etc/pki/tls/certs/ca.crt
|
||||
SSLCertificateFile /etc/pki/tls/certs/star_sapsailing_com.crt
|
||||
|
||||
# Server Private Key:
|
||||
# If the key is not combined with the certificate, use this
|
||||
# directive to point at the key file. Keep in mind that if
|
||||
# you've both a RSA and a DSA private key you can configure
|
||||
# both in parallel (to also allow the use of DSA ciphers, etc.)
|
||||
#SSLCertificateKeyFile /etc/pki/tls/private/ca.key
|
||||
SSLCertificateKeyFile /etc/pki/tls/private/star_sapsailing_com.key
|
||||
|
||||
# Server Certificate Chain:
|
||||
# Point SSLCertificateChainFile at a file containing the
|
||||
# concatenation of PEM encoded CA certificates which form the
|
||||
# certificate chain for the server certificate. Alternatively
|
||||
# the referenced file can be the same as SSLCertificateFile
|
||||
# when the CA certificates are directly appended to the server
|
||||
# certificate for convinience.
|
||||
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
|
||||
SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
|
||||
|
||||
# Certificate Authority (CA):
|
||||
# Set the CA certificate verification path where to find CA
|
||||
# certificates for client authentication or alternatively one
|
||||
# huge file containing all of them (file must be PEM encoded)
|
||||
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
|
||||
|
||||
# Client Authentication (Type):
|
||||
# Client certificate verification type and depth. Types are
|
||||
# none, optional, require and optional_no_ca. Depth is a
|
||||
# number which specifies how deeply to verify the certificate
|
||||
# issuer chain before deciding the certificate is not valid.
|
||||
#SSLVerifyClient require
|
||||
#SSLVerifyDepth 10
|
||||
|
||||
# Access Control:
|
||||
# With SSLRequire you can do per-directory access control based
|
||||
# on arbitrary complex boolean expressions containing server
|
||||
# variable checks and other lookup directives. The syntax is a
|
||||
# mixture between C and Perl. See the mod_ssl documentation
|
||||
# for more details.
|
||||
#<Location />
|
||||
#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
|
||||
# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
|
||||
# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
|
||||
# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
|
||||
# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
|
||||
# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
|
||||
#</Location>
|
||||
|
||||
# SSL Engine Options:
|
||||
# Set various options for the SSL engine.
|
||||
# o FakeBasicAuth:
|
||||
# Translate the client X.509 into a Basic Authorisation. This means that
|
||||
# the standard Auth/DBMAuth methods can be used for access control. The
|
||||
# user name is the `one line' version of the client's X.509 certificate.
|
||||
# Note that no password is obtained from the user. Every entry in the user
|
||||
# file needs this password: `xxj31ZMTZzkVA'.
|
||||
# o ExportCertData:
|
||||
# This exports two additional environment variables: SSL_CLIENT_CERT and
|
||||
# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
|
||||
# server (always existing) and the client (only existing when client
|
||||
# authentication is used). This can be used to import the certificates
|
||||
# into CGI scripts.
|
||||
# o StdEnvVars:
|
||||
# This exports the standard SSL/TLS related `SSL_*' environment variables.
|
||||
# Per default this exportation is switched off for performance reasons,
|
||||
# because the extraction step is an expensive operation and is usually
|
||||
# useless for serving static content. So one usually enables the
|
||||
# exportation for CGI and SSI requests only.
|
||||
# o StrictRequire:
|
||||
# This denies access when "SSLRequireSSL" or "SSLRequire" applied even
|
||||
# under a "Satisfy any" situation, i.e. when it applies access is denied
|
||||
# and no other module can change it.
|
||||
# o OptRenegotiate:
|
||||
# This enables optimized SSL connection renegotiation handling when SSL
|
||||
# directives are used in per-directory context.
|
||||
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
|
||||
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
|
||||
SSLOptions +StdEnvVars
|
||||
</Files>
|
||||
|
||||
<Directory "/var/www/cgi-bin">
|
||||
SSLOptions +StdEnvVars
|
||||
</Directory>
|
||||
|
||||
# SSL Protocol Adjustments:
|
||||
# The safe and default but still SSL/TLS standard compliant shutdown
|
||||
# approach is that mod_ssl sends the close notify alert but doesn't wait for
|
||||
# the close notify alert from client. When you need a different shutdown
|
||||
# approach you can use one of the following variables:
|
||||
# o ssl-unclean-shutdown:
|
||||
# This forces an unclean shutdown when the connection is closed, i.e. no
|
||||
# SSL close notify alert is send or allowed to received. This violates
|
||||
# the SSL/TLS standard but is needed for some brain-dead browsers. Use
|
||||
# this when you receive I/O errors because of the standard approach where
|
||||
# mod_ssl sends the close notify alert.
|
||||
# o ssl-accurate-shutdown:
|
||||
# This forces an accurate shutdown when the connection is closed, i.e. a
|
||||
# SSL close notify alert is send and mod_ssl waits for the close notify
|
||||
# alert of the client. This is 100% SSL/TLS standard compliant, but in
|
||||
# practice often causes hanging connections with brain-dead browsers. Use
|
||||
# this only for browsers where you know that their SSL implementation
|
||||
# works correctly.
|
||||
# Notice: Most problems of broken clients are also related to the HTTP
|
||||
# keep-alive facility, so you usually additionally want to disable
|
||||
# keep-alive for those clients, too. Use variable "nokeepalive" for this.
|
||||
# Similarly, one has to force some clients to use HTTP/1.0 to workaround
|
||||
# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
|
||||
# "force-response-1.0" for this.
|
||||
SetEnvIf User-Agent ".*MSIE.*" \
|
||||
nokeepalive ssl-unclean-shutdown \
|
||||
downgrade-1.0 force-response-1.0
|
||||
|
||||
# Per-Server Logging:
|
||||
# The home of a custom SSL log file. Use this when you want a
|
||||
# compact non-error SSL logfile on a virtual host basis.
|
||||
CustomLog logs/ssl_request_log \
|
||||
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
@@ -0,0 +1,261 @@
|
||||
|
||||
# XXX: Move to saptennis.com
|
||||
Use Tennis-Plain tennis-analytics.sapsailing.com 54.234.185.60 8888
|
||||
Use Tennis-Plain mobile.tennis-analytics.sapsailing.com 54.234.185.60 8888
|
||||
Use Tennis-Plain api.tennis-analytics.sapsailing.com 54.234.185.60 8888
|
||||
Use Tennis-Plain dev.tennis-analytics.sapsailing.com 34.242.130.58 8888
|
||||
|
||||
# XXX: Move these to SSL
|
||||
Use Tennis-Plain saptennis.com 54.234.185.60 8888
|
||||
Use Tennis-Plain draw.saptennis.com 54.234.185.60 8888
|
||||
Use Tennis-Plain groupedit.saptennis.com 34.253.178.230 8888
|
||||
|
||||
Use Tennis-With-SSL-Plain dev.saptennis.com 34.254.157.195 8888
|
||||
Use Tennis-With-SSL-Plain api.saptennis.com 54.234.185.60 8888
|
||||
Use Tennis-With-SSL-Plain tpc.saptennis.com 34.242.18.47 8888
|
||||
Use Tennis-With-SSL media.saptennis.com 34.240.66.211 8888 "media/mediaportal"
|
||||
Use Tennis-With-SSL-Plain apps.saptennis.com 34.241.245.147 8888
|
||||
|
||||
# Monitoring
|
||||
Use Tennis-With-SSL-Plain monitor.saptennis.com 172.31.45.221 3000
|
||||
Use Tennis-Plain hellgate.saptennis.com 172.31.45.221 2003
|
||||
|
||||
# Piwik
|
||||
Use Tennis-With-SSL-Plain analytics.saptennis.com 172.31.45.221 8999
|
||||
|
||||
Use Tennis-SSL-Redirect media.saptennis.com
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName hellgate.saptennis.com
|
||||
ProxyRequests Off
|
||||
<Proxy *>
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
</Proxy>
|
||||
|
||||
<Location />
|
||||
ProxyPass http://172.31.45.221:2003/
|
||||
ProxyPassReverse http://172.31.45.221:2003/
|
||||
</Location>
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName tpc.wta-playerzone.com
|
||||
Use Headers
|
||||
|
||||
SSLEngine On
|
||||
SSLCertificateFile /etc/pki/tls/certs/tpc.wta-playerzone.com.crt
|
||||
SSLCertificateKeyFile /etc/pki/tls/private/tpc.wta-playerzone.com.key
|
||||
|
||||
RewriteEngine on
|
||||
RewriteRule ^(/)?$ "https://tpc.wta-playerzone.com/tpc/ui5" [L,NE]
|
||||
Use Rewrite 34.242.18.47 8888
|
||||
|
||||
<IfModule mod_mime.c>
|
||||
AddType text/css .css
|
||||
AddType application/x-javascript .js
|
||||
AddType text/x-component .htc
|
||||
AddType text/html .html .htm
|
||||
AddType text/richtext .rtf .rtx
|
||||
AddType image/svg+xml .svg .svgz
|
||||
AddType text/plain .txt
|
||||
AddType text/xsd .xsd
|
||||
AddType text/xsl .xsl
|
||||
AddType text/xml .xml
|
||||
AddType video/asf .asf .asx .wax .wmv .wmx
|
||||
AddType video/avi .avi
|
||||
AddType image/bmp .bmp
|
||||
AddType application/java .class
|
||||
AddType video/divx .divx
|
||||
AddType application/msword .doc .docx
|
||||
AddType application/vnd.ms-fontobject .eot
|
||||
AddType application/x-msdownload .exe
|
||||
AddType image/gif .gif
|
||||
AddType application/x-gzip .gz .gzip
|
||||
AddType image/x-icon .ico
|
||||
AddType image/jpeg .jpg .jpeg .jpe
|
||||
AddType application/vnd.ms-access .mdb
|
||||
AddType audio/midi .mid .midi
|
||||
AddType video/quicktime .mov .qt
|
||||
AddType audio/mpeg .mp3 .m4a
|
||||
AddType video/mp4 .mp4 .m4v
|
||||
AddType video/mpeg .mpeg .mpg .mpe
|
||||
AddType application/vnd.ms-project .mpp
|
||||
AddType application/x-font-otf .otf
|
||||
AddType application/vnd.oasis.opendocument.database .odb
|
||||
AddType application/vnd.oasis.opendocument.chart .odc
|
||||
AddType application/vnd.oasis.opendocument.formula .odf
|
||||
AddType application/vnd.oasis.opendocument.graphics .odg
|
||||
AddType application/vnd.oasis.opendocument.presentation .odp
|
||||
AddType application/vnd.oasis.opendocument.spreadsheet .ods
|
||||
AddType application/vnd.oasis.opendocument.text .odt
|
||||
AddType audio/ogg .ogg
|
||||
AddType application/pdf .pdf
|
||||
AddType image/png .png
|
||||
AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx
|
||||
AddType audio/x-realaudio .ra .ram
|
||||
AddType application/x-shockwave-flash .swf
|
||||
AddType application/x-tar .tar
|
||||
AddType image/tiff .tif .tiff
|
||||
AddType application/x-font-ttf .ttf .ttc
|
||||
AddType audio/wav .wav
|
||||
AddType audio/wma .wma
|
||||
AddType application/vnd.ms-write .wri
|
||||
AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw
|
||||
AddType application/zip .zip
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_deflate.c>
|
||||
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
|
||||
<IfModule mod_setenvif.c>
|
||||
<IfModule mod_headers.c>
|
||||
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
|
||||
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
<IfModule filter_module>
|
||||
# HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
|
||||
FilterDeclare COMPRESS
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/html'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/css'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/plain'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/x-component'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/javascript'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/json'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/xhtml+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/rss+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/atom+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/vnd.ms-fontobject'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/svg+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/x-icon'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/gif'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/jpeg'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/png'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/x-font-ttf'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$font/opentype'"
|
||||
FilterChain COMPRESS
|
||||
FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
|
||||
</IfModule>
|
||||
|
||||
<IfModule !mod_filter.c>
|
||||
# Legacy versions of Apache
|
||||
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
|
||||
AddOutputFilterByType DEFLATE application/javascript
|
||||
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
|
||||
AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
|
||||
AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
|
||||
</IfModule>
|
||||
|
||||
</IfModule>
|
||||
</VirtualHost>
|
||||
<VirtualHost *:80>
|
||||
ServerName tpc.wta-playerzone.com
|
||||
Use Headers
|
||||
RewriteEngine on
|
||||
RewriteRule ^(/)?$ "http://tpc.wta-playerzone.com/tpc/ui5" [L,NE]
|
||||
Use Rewrite 34.242.18.47 8888
|
||||
|
||||
<IfModule mod_mime.c>
|
||||
AddType text/css .css
|
||||
AddType application/x-javascript .js
|
||||
AddType text/x-component .htc
|
||||
AddType text/html .html .htm
|
||||
AddType text/richtext .rtf .rtx
|
||||
AddType image/svg+xml .svg .svgz
|
||||
AddType text/plain .txt
|
||||
AddType text/xsd .xsd
|
||||
AddType text/xsl .xsl
|
||||
AddType text/xml .xml
|
||||
AddType video/asf .asf .asx .wax .wmv .wmx
|
||||
AddType video/avi .avi
|
||||
AddType image/bmp .bmp
|
||||
AddType application/java .class
|
||||
AddType video/divx .divx
|
||||
AddType application/msword .doc .docx
|
||||
AddType application/vnd.ms-fontobject .eot
|
||||
AddType application/x-msdownload .exe
|
||||
AddType image/gif .gif
|
||||
AddType application/x-gzip .gz .gzip
|
||||
AddType image/x-icon .ico
|
||||
AddType image/jpeg .jpg .jpeg .jpe
|
||||
AddType application/vnd.ms-access .mdb
|
||||
AddType audio/midi .mid .midi
|
||||
AddType video/quicktime .mov .qt
|
||||
AddType audio/mpeg .mp3 .m4a
|
||||
AddType video/mp4 .mp4 .m4v
|
||||
AddType video/mpeg .mpeg .mpg .mpe
|
||||
AddType application/vnd.ms-project .mpp
|
||||
AddType application/x-font-otf .otf
|
||||
AddType application/vnd.oasis.opendocument.database .odb
|
||||
AddType application/vnd.oasis.opendocument.chart .odc
|
||||
AddType application/vnd.oasis.opendocument.formula .odf
|
||||
AddType application/vnd.oasis.opendocument.graphics .odg
|
||||
AddType application/vnd.oasis.opendocument.presentation .odp
|
||||
AddType application/vnd.oasis.opendocument.spreadsheet .ods
|
||||
AddType application/vnd.oasis.opendocument.text .odt
|
||||
AddType audio/ogg .ogg
|
||||
AddType application/pdf .pdf
|
||||
AddType image/png .png
|
||||
AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx
|
||||
AddType audio/x-realaudio .ra .ram
|
||||
AddType application/x-shockwave-flash .swf
|
||||
AddType application/x-tar .tar
|
||||
AddType image/tiff .tif .tiff
|
||||
AddType application/x-font-ttf .ttf .ttc
|
||||
AddType audio/wav .wav
|
||||
AddType audio/wma .wma
|
||||
AddType application/vnd.ms-write .wri
|
||||
AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw
|
||||
AddType application/zip .zip
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_deflate.c>
|
||||
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
|
||||
<IfModule mod_setenvif.c>
|
||||
<IfModule mod_headers.c>
|
||||
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
|
||||
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
<IfModule filter_module>
|
||||
# HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
|
||||
FilterDeclare COMPRESS
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/html'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/css'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/plain'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$text/x-component'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/javascript'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/json'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/xhtml+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/rss+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/atom+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/vnd.ms-fontobject'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/svg+xml'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/x-icon'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/gif'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/jpeg'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$image/png'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$application/x-font-ttf'"
|
||||
FilterProvider COMPRESS DEFLATE "%{Content_Type} = '$font/opentype'"
|
||||
FilterChain COMPRESS
|
||||
FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
|
||||
</IfModule>
|
||||
|
||||
<IfModule !mod_filter.c>
|
||||
# Legacy versions of Apache
|
||||
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
|
||||
AddOutputFilterByType DEFLATE application/javascript
|
||||
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
|
||||
AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
|
||||
AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
|
||||
</IfModule>
|
||||
|
||||
</IfModule>
|
||||
</VirtualHost>
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
This directory holds configuration files for the Apache HTTP Server;
|
||||
any files in this directory which have the ".conf" extension will be
|
||||
processed as httpd configuration files. The directory is used in
|
||||
addition to the directory /etc/httpd/conf.modules.d/, which contains
|
||||
configuration files necessary to load modules.
|
||||
|
||||
Files are processed in alphabetical order.
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
#
|
||||
# Directives controlling the display of server-generated directory listings.
|
||||
#
|
||||
# Required modules: mod_authz_core, mod_authz_host,
|
||||
# mod_autoindex, mod_alias
|
||||
#
|
||||
# To see the listing of a directory, the Options directive for the
|
||||
# directory must include "Indexes", and the directory must not contain
|
||||
# a file matching those listed in the DirectoryIndex directive.
|
||||
#
|
||||
|
||||
#
|
||||
# IndexOptions: Controls the appearance of server-generated directory
|
||||
# listings.
|
||||
#
|
||||
IndexOptions FancyIndexing HTMLTable VersionSort
|
||||
|
||||
# We include the /icons/ alias for FancyIndexed directory listings. If
|
||||
# you do not use FancyIndexing, you may comment this out.
|
||||
#
|
||||
Alias /icons/ "/var/www/icons/"
|
||||
|
||||
<Directory "/var/www/icons">
|
||||
Options Indexes MultiViews FollowSymlinks
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
#
|
||||
# AddIcon* directives tell the server which icon to show for different
|
||||
# files or filename extensions. These are only displayed for
|
||||
# FancyIndexed directories.
|
||||
#
|
||||
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
|
||||
|
||||
AddIconByType (TXT,/icons/text.gif) text/*
|
||||
AddIconByType (IMG,/icons/image2.gif) image/*
|
||||
AddIconByType (SND,/icons/sound2.gif) audio/*
|
||||
AddIconByType (VID,/icons/movie.gif) video/*
|
||||
|
||||
AddIcon /icons/binary.gif .bin .exe
|
||||
AddIcon /icons/binhex.gif .hqx
|
||||
AddIcon /icons/tar.gif .tar
|
||||
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
|
||||
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
|
||||
AddIcon /icons/a.gif .ps .ai .eps
|
||||
AddIcon /icons/layout.gif .html .shtml .htm .pdf
|
||||
AddIcon /icons/text.gif .txt
|
||||
AddIcon /icons/c.gif .c
|
||||
AddIcon /icons/p.gif .pl .py
|
||||
AddIcon /icons/f.gif .for
|
||||
AddIcon /icons/dvi.gif .dvi
|
||||
AddIcon /icons/uuencoded.gif .uu
|
||||
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
|
||||
AddIcon /icons/tex.gif .tex
|
||||
AddIcon /icons/bomb.gif core.
|
||||
|
||||
AddIcon /icons/back.gif ..
|
||||
AddIcon /icons/hand.right.gif README
|
||||
AddIcon /icons/folder.gif ^^DIRECTORY^^
|
||||
AddIcon /icons/blank.gif ^^BLANKICON^^
|
||||
|
||||
#
|
||||
# DefaultIcon is which icon to show for files which do not have an icon
|
||||
# explicitly set.
|
||||
#
|
||||
DefaultIcon /icons/unknown.gif
|
||||
|
||||
#
|
||||
# AddDescription allows you to place a short description after a file in
|
||||
# server-generated indexes. These are only displayed for FancyIndexed
|
||||
# directories.
|
||||
# Format: AddDescription "description" filename
|
||||
#
|
||||
#AddDescription "GZIP compressed document" .gz
|
||||
#AddDescription "tar archive" .tar
|
||||
#AddDescription "GZIP compressed tar archive" .tgz
|
||||
|
||||
#
|
||||
# ReadmeName is the name of the README file the server will look for by
|
||||
# default, and append to directory listings.
|
||||
#
|
||||
# HeaderName is the name of a file which should be prepended to
|
||||
# directory indexes.
|
||||
ReadmeName README.html
|
||||
HeaderName HEADER.html
|
||||
|
||||
#
|
||||
# IndexIgnore is a set of filenames which directory indexing should ignore
|
||||
# and not include in the listing. Shell-style wildcarding is permitted.
|
||||
#
|
||||
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
#
|
||||
# Content of this file, with correct values, can be automatically added to
|
||||
# your Apache server by using the AWStats configure.pl tool.
|
||||
#
|
||||
|
||||
|
||||
# If using Windows and Perl ActiveStat, this is to enable Perl script as CGI.
|
||||
#ScriptInterpreterSource registry
|
||||
|
||||
|
||||
#
|
||||
# Directives to add to your Apache conf file to allow use of AWStats as a CGI.
|
||||
# Note that path "/usr/share/awstats/" must reflect your AWStats install path.
|
||||
#
|
||||
Alias /awstatsclasses "/usr/share/awstats/wwwroot/classes/"
|
||||
Alias /awstatscss "/usr/share/awstats/wwwroot/css/"
|
||||
Alias /awstatsicons "/usr/share/awstats/wwwroot/icon/"
|
||||
ScriptAlias /awstats/ "/usr/share/awstats/wwwroot/cgi-bin/"
|
||||
|
||||
# Adding access to /var/log/old/cache/unique-ips-per-referrer/stats:
|
||||
Alias /unique-visitors/ "/var/log/old/cache/unique-ips-per-referrer/stats/"
|
||||
|
||||
#
|
||||
# This is to permit URL access to scripts/files in AWStats directory.
|
||||
#
|
||||
<VirtualHost *:443>
|
||||
ServerName awstats.sapsailing.com
|
||||
Use SSL
|
||||
CustomLog logs/awstats_access_log combined
|
||||
ErrorLog logs/awstats_error_log
|
||||
|
||||
<Directory "/usr/share/awstats/wwwroot">
|
||||
Options None
|
||||
# AllowOverride None
|
||||
# Order allow,deny
|
||||
# Allow from 127.0.0.1
|
||||
AuthType Basic
|
||||
AuthName 'awstats'
|
||||
AuthUserFile /etc/httpd/conf/passwd.awstats
|
||||
Require valid-user
|
||||
</Directory>
|
||||
|
||||
<Directory "/var/log/old/cache/unique-ips-per-referrer/stats/">
|
||||
Options Indexes
|
||||
# AllowOverride None
|
||||
# Order allow,deny
|
||||
# Allow from 127.0.0.1
|
||||
AuthType Basic
|
||||
AuthName 'awstats'
|
||||
AuthUserFile /etc/httpd/conf/passwd.awstats
|
||||
Require valid-user
|
||||
</Directory>
|
||||
# Additional Perl modules
|
||||
<IfModule mod_env.c>
|
||||
SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins:/root/perl5/lib/perl5
|
||||
</IfModule>
|
||||
</VirtualHost>
|
||||
@@ -0,0 +1,14 @@
|
||||
#
|
||||
# This configuration file maps the mrtg output (generated daily)
|
||||
# into the URL space. By default these results are only accessible
|
||||
# from the local host.
|
||||
#
|
||||
Alias /mrtg /var/www/mrtg
|
||||
|
||||
<Location /mrtg>
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
Allow from 127.0.0.1
|
||||
Allow from ::1
|
||||
# Allow from .example.com
|
||||
</Location>
|
||||
@@ -0,0 +1,6 @@
|
||||
# This directive overrides the behavior of TRACE for both the core server and
|
||||
# mod_proxy. The default TraceEnable on permits TRACE requests per RFC 2616,
|
||||
# which disallows any request body to accompany the request. TraceEnable off
|
||||
# causes the core server and mod_proxy to return a 405 (Method not allowed)
|
||||
# error to the client.
|
||||
TraceEnable off
|
||||
@@ -0,0 +1,48 @@
|
||||
#
|
||||
# Mod_perl incorporates a Perl interpreter into the Apache web server,
|
||||
# so that the Apache web server can directly execute Perl code.
|
||||
# Mod_perl links the Perl runtime library into the Apache web server
|
||||
# and provides an object-oriented Perl interface for Apache's C
|
||||
# language API. The end result is a quicker CGI script turnaround
|
||||
# process, since no external Perl interpreter has to be started.
|
||||
#
|
||||
|
||||
# Uncomment this line to globally enable warnings, which will be
|
||||
# written to the server's error log. Warnings should be enabled
|
||||
# during the development process, but should be disabled on a
|
||||
# production server as they affect performance.
|
||||
#
|
||||
#PerlSwitches -w
|
||||
|
||||
# Uncomment this line to enable taint checking globally. When Perl is
|
||||
# running in taint mode various checks are performed to reduce the
|
||||
# risk of insecure data being passed to a subshell or being used to
|
||||
# modify the filesystem. Unfortunately many Perl modules are not
|
||||
# taint-safe, so you should exercise care before enabling it on a
|
||||
# production server.
|
||||
#
|
||||
#PerlSwitches -T
|
||||
|
||||
# This will allow execution of mod_perl to compile your scripts to
|
||||
# subroutines which it will execute directly, avoiding the costly
|
||||
# compile process for most requests.
|
||||
#
|
||||
#Alias /perl /var/www/perl
|
||||
#<Directory /var/www/perl>
|
||||
# SetHandler perl-script
|
||||
# PerlResponseHandler ModPerl::Registry
|
||||
# PerlOptions +ParseHeaders
|
||||
# Options +ExecCGI
|
||||
#</Directory>
|
||||
|
||||
# This will allow remote server configuration reports, with the URL of
|
||||
# http://servername/perl-status
|
||||
# Change the ".example.com" to match your domain to enable.
|
||||
#
|
||||
#<Location /perl-status>
|
||||
# SetHandler perl-script
|
||||
# PerlResponseHandler Apache2::Status
|
||||
# Order deny,allow
|
||||
# Deny from all
|
||||
# Allow from .example.com
|
||||
#</Location>
|
||||
@@ -0,0 +1,49 @@
|
||||
LoadModule perl_module modules/mod_perl.so
|
||||
#
|
||||
# Mod_perl incorporates a Perl interpreter into the Apache web server,
|
||||
# so that the Apache web server can directly execute Perl code.
|
||||
# Mod_perl links the Perl runtime library into the Apache web server
|
||||
# and provides an object-oriented Perl interface for Apache's C
|
||||
# language API. The end result is a quicker CGI script turnaround
|
||||
# process, since no external Perl interpreter has to be started.
|
||||
#
|
||||
|
||||
# Uncomment this line to globally enable warnings, which will be
|
||||
# written to the server's error log. Warnings should be enabled
|
||||
# during the development process, but should be disabled on a
|
||||
# production server as they affect performance.
|
||||
#
|
||||
#PerlSwitches -w
|
||||
|
||||
# Uncomment this line to enable taint checking globally. When Perl is
|
||||
# running in taint mode various checks are performed to reduce the
|
||||
# risk of insecure data being passed to a subshell or being used to
|
||||
# modify the filesystem. Unfortunately many Perl modules are not
|
||||
# taint-safe, so you should exercise care before enabling it on a
|
||||
# production server.
|
||||
#
|
||||
#PerlSwitches -T
|
||||
|
||||
# This will allow execution of mod_perl to compile your scripts to
|
||||
# subroutines which it will execute directly, avoiding the costly
|
||||
# compile process for most requests.
|
||||
#
|
||||
#Alias /perl /var/www/perl
|
||||
#<Directory /var/www/perl>
|
||||
# SetHandler perl-script
|
||||
# PerlResponseHandler ModPerl::Registry
|
||||
# PerlOptions +ParseHeaders
|
||||
# Options +ExecCGI
|
||||
#</Directory>
|
||||
|
||||
# This will allow remote server configuration reports, with the URL of
|
||||
# http://servername/perl-status
|
||||
# Change the ".example.com" to match your domain to enable.
|
||||
#
|
||||
#<Location /perl-status>
|
||||
# SetHandler perl-script
|
||||
# PerlResponseHandler Apache2::Status
|
||||
# Order deny,allow
|
||||
# Deny from all
|
||||
# Allow from .example.com
|
||||
#</Location>
|
||||
@@ -0,0 +1,57 @@
|
||||
#
|
||||
# The following lines prevent .user.ini files from being viewed by Web clients.
|
||||
#
|
||||
<Files ".user.ini">
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
#
|
||||
# Allow php to handle Multiviews
|
||||
#
|
||||
AddType text/html .php
|
||||
|
||||
#
|
||||
# Add index.php to the list of files that will be served as directory
|
||||
# indexes.
|
||||
#
|
||||
DirectoryIndex index.php
|
||||
|
||||
# mod_php options
|
||||
<IfModule mod_php7.c>
|
||||
#
|
||||
# Cause the PHP interpreter to handle files with a .php extension.
|
||||
#
|
||||
<FilesMatch \.php$>
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
|
||||
#
|
||||
# Uncomment the following lines to allow PHP to pretty-print .phps
|
||||
# files as PHP source code:
|
||||
#
|
||||
#<FilesMatch \.phps$>
|
||||
# SetHandler application/x-httpd-php-source
|
||||
#</FilesMatch>
|
||||
|
||||
#
|
||||
# Apache specific PHP configuration options
|
||||
# those can be override in each configured vhost
|
||||
#
|
||||
php_value session.save_handler "files"
|
||||
php_value session.save_path "/var/lib/php/7.1/session"
|
||||
php_value soap.wsdl_cache_dir "/var/lib/php/7.1/wsdlcache"
|
||||
|
||||
#php_value opcache.file_cache "/var/lib/php/7.1/opcache"
|
||||
</IfModule>
|
||||
|
||||
# Redirect to local php-fpm if mod_php is not available
|
||||
<IfModule !mod_php5.c>
|
||||
<IfModule !mod_php7.c>
|
||||
# Enable http authorization headers
|
||||
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
|
||||
|
||||
<FilesMatch \.php$>
|
||||
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
@@ -0,0 +1,57 @@
|
||||
#
|
||||
# The following lines prevent .user.ini files from being viewed by Web clients.
|
||||
#
|
||||
<Files ".user.ini">
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
#
|
||||
# Allow php to handle Multiviews
|
||||
#
|
||||
AddType text/html .php
|
||||
|
||||
#
|
||||
# Add index.php to the list of files that will be served as directory
|
||||
# indexes.
|
||||
#
|
||||
DirectoryIndex index.php
|
||||
|
||||
# mod_php options
|
||||
<IfModule mod_php7.c>
|
||||
#
|
||||
# Cause the PHP interpreter to handle files with a .php extension.
|
||||
#
|
||||
<FilesMatch \.php$>
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
|
||||
#
|
||||
# Uncomment the following lines to allow PHP to pretty-print .phps
|
||||
# files as PHP source code:
|
||||
#
|
||||
#<FilesMatch \.phps$>
|
||||
# SetHandler application/x-httpd-php-source
|
||||
#</FilesMatch>
|
||||
|
||||
#
|
||||
# Apache specific PHP configuration options
|
||||
# those can be override in each configured vhost
|
||||
#
|
||||
php_value session.save_handler "files"
|
||||
php_value session.save_path "/var/lib/php/7.1/session"
|
||||
php_value soap.wsdl_cache_dir "/var/lib/php/7.1/wsdlcache"
|
||||
|
||||
#php_value opcache.file_cache "/var/lib/php/7.1/opcache"
|
||||
</IfModule>
|
||||
|
||||
# Redirect to local php-fpm if mod_php is not available
|
||||
<IfModule !mod_php5.c>
|
||||
<IfModule !mod_php7.c>
|
||||
# Enable http authorization headers
|
||||
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
|
||||
|
||||
<FilesMatch \.php$>
|
||||
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
@@ -0,0 +1,221 @@
|
||||
#
|
||||
# When we also provide SSL we have to listen to the
|
||||
# standard HTTPS port in addition.
|
||||
#
|
||||
Listen 443 https
|
||||
|
||||
##
|
||||
## SSL Global Context
|
||||
##
|
||||
## All SSL configuration in this context applies both to
|
||||
## the main server and all SSL-enabled virtual hosts.
|
||||
##
|
||||
|
||||
# Pass Phrase Dialog:
|
||||
# Configure the pass phrase gathering process.
|
||||
# The filtering dialog program (`builtin' is a internal
|
||||
# terminal dialog) has to provide the pass phrase on stdout.
|
||||
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
|
||||
|
||||
# Inter-Process Session Cache:
|
||||
# Configure the SSL Session Cache: First the mechanism
|
||||
# to use and second the expiring timeout (in seconds).
|
||||
SSLSessionCache shmcb:/run/httpd/sslcache(512000)
|
||||
SSLSessionCacheTimeout 300
|
||||
|
||||
# Pseudo Random Number Generator (PRNG):
|
||||
# Configure one or more sources to seed the PRNG of the
|
||||
# SSL library. The seed data should be of good random quality.
|
||||
# WARNING! On some platforms /dev/random blocks if not enough entropy
|
||||
# is available. This means you then cannot use the /dev/random device
|
||||
# because it would lead to very long connection times (as long as
|
||||
# it requires to make more entropy available). But usually those
|
||||
# platforms additionally provide a /dev/urandom device which doesn't
|
||||
# block. So, if available, use this one instead. Read the mod_ssl User
|
||||
# Manual for more details.
|
||||
SSLRandomSeed startup file:/dev/urandom 256
|
||||
SSLRandomSeed connect builtin
|
||||
#SSLRandomSeed startup file:/dev/random 512
|
||||
#SSLRandomSeed connect file:/dev/random 512
|
||||
#SSLRandomSeed connect file:/dev/urandom 512
|
||||
|
||||
#
|
||||
# Use "SSLCryptoDevice" to enable any supported hardware
|
||||
# accelerators. Use "openssl engine -v" to list supported
|
||||
# engine names. NOTE: If you enable an accelerator and the
|
||||
# server does not start, consult the error logs and ensure
|
||||
# your accelerator is functioning properly.
|
||||
#
|
||||
SSLCryptoDevice builtin
|
||||
#SSLCryptoDevice ubsec
|
||||
|
||||
##
|
||||
## SSL Virtual Host Context
|
||||
##
|
||||
|
||||
<VirtualHost _default_:443>
|
||||
|
||||
# General setup for the virtual host, inherited from global configuration
|
||||
#DocumentRoot "/var/www/html"
|
||||
#ServerName www.example.com:443
|
||||
|
||||
# Use separate log files for the SSL virtual host; note that LogLevel
|
||||
# is not inherited from httpd.conf.
|
||||
ErrorLog logs/ssl_error_log
|
||||
TransferLog logs/ssl_access_log
|
||||
LogLevel warn
|
||||
|
||||
# SSL Engine Switch:
|
||||
# Enable/Disable SSL for this virtual host.
|
||||
SSLEngine on
|
||||
|
||||
# List the protocol versions which clients are allowed to connect with.
|
||||
# Disable SSLv3 by default (cf. RFC 7525 3.1.1). TLSv1 (1.0) should be
|
||||
# disabled as quickly as practical. By the end of 2016, only the TLSv1.2
|
||||
# protocol or later should remain in use.
|
||||
SSLProtocol all -SSLv3
|
||||
SSLProxyProtocol all -SSLv3
|
||||
|
||||
# User agents such as web browsers are not configured for the user's
|
||||
# own preference of either security or performance, therefore this
|
||||
# must be the prerogative of the web server administrator who manages
|
||||
# cpu load versus confidentiality, so enforce the server's cipher order.
|
||||
SSLHonorCipherOrder on
|
||||
|
||||
# SSL Cipher Suite:
|
||||
# List the ciphers that the client is permitted to negotiate.
|
||||
# See the mod_ssl documentation for a complete list.
|
||||
|
||||
# By leaving this directive commented out, the system-wide OpenSSL
|
||||
# default is used. See update-crypto-policies(8) for more details.
|
||||
#SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
|
||||
#SSLProxyCipherSuite HIGH:MEDIUM:!aNULL:!MD5
|
||||
|
||||
# Point SSLCertificateFile at a PEM encoded certificate. If
|
||||
# the certificate is encrypted, then you will be prompted for a
|
||||
# pass phrase. Note that restarting httpd will prompt again. Keep
|
||||
# in mind that if you have both an RSA and a DSA certificate you
|
||||
# can configure both in parallel (to also allow the use of DSA
|
||||
# ciphers, etc.)
|
||||
# Some ECC cipher suites (http://www.ietf.org/rfc/rfc4492.txt)
|
||||
# require an ECC certificate which can also be configured in
|
||||
# parallel.
|
||||
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
|
||||
|
||||
# Server Private Key:
|
||||
# If the key is not combined with the certificate, use this
|
||||
# directive to point at the key file. Keep in mind that if
|
||||
# you've both a RSA and a DSA private key you can configure
|
||||
# both in parallel (to also allow the use of DSA ciphers, etc.)
|
||||
# ECC keys, when in use, can also be configured in parallel
|
||||
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
|
||||
|
||||
# Server Certificate Chain:
|
||||
# Point SSLCertificateChainFile at a file containing the
|
||||
# concatenation of PEM encoded CA certificates which form the
|
||||
# certificate chain for the server certificate. Alternatively
|
||||
# the referenced file can be the same as SSLCertificateFile
|
||||
# when the CA certificates are directly appended to the server
|
||||
# certificate for convenience.
|
||||
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
|
||||
|
||||
# Certificate Authority (CA):
|
||||
# Set the CA certificate verification path where to find CA
|
||||
# certificates for client authentication or alternatively one
|
||||
# huge file containing all of them (file must be PEM encoded)
|
||||
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
|
||||
|
||||
# Client Authentication (Type):
|
||||
# Client certificate verification type and depth. Types are
|
||||
# none, optional, require and optional_no_ca. Depth is a
|
||||
# number which specifies how deeply to verify the certificate
|
||||
# issuer chain before deciding the certificate is not valid.
|
||||
#SSLVerifyClient require
|
||||
#SSLVerifyDepth 10
|
||||
|
||||
# Access Control:
|
||||
# With SSLRequire you can do per-directory access control based
|
||||
# on arbitrary complex boolean expressions containing server
|
||||
# variable checks and other lookup directives. The syntax is a
|
||||
# mixture between C and Perl. See the mod_ssl documentation
|
||||
# for more details.
|
||||
#<Location />
|
||||
#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
|
||||
# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
|
||||
# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
|
||||
# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
|
||||
# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
|
||||
# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
|
||||
#</Location>
|
||||
|
||||
# SSL Engine Options:
|
||||
# Set various options for the SSL engine.
|
||||
# o FakeBasicAuth:
|
||||
# Translate the client X.509 into a Basic Authorisation. This means that
|
||||
# the standard Auth/DBMAuth methods can be used for access control. The
|
||||
# user name is the `one line' version of the client's X.509 certificate.
|
||||
# Note that no password is obtained from the user. Every entry in the user
|
||||
# file needs this password: `xxj31ZMTZzkVA'.
|
||||
# o ExportCertData:
|
||||
# This exports two additional environment variables: SSL_CLIENT_CERT and
|
||||
# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
|
||||
# server (always existing) and the client (only existing when client
|
||||
# authentication is used). This can be used to import the certificates
|
||||
# into CGI scripts.
|
||||
# o StdEnvVars:
|
||||
# This exports the standard SSL/TLS related `SSL_*' environment variables.
|
||||
# Per default this exportation is switched off for performance reasons,
|
||||
# because the extraction step is an expensive operation and is usually
|
||||
# useless for serving static content. So one usually enables the
|
||||
# exportation for CGI and SSI requests only.
|
||||
# o StrictRequire:
|
||||
# This denies access when "SSLRequireSSL" or "SSLRequire" applied even
|
||||
# under a "Satisfy any" situation, i.e. when it applies access is denied
|
||||
# and no other module can change it.
|
||||
# o OptRenegotiate:
|
||||
# This enables optimized SSL connection renegotiation handling when SSL
|
||||
# directives are used in per-directory context.
|
||||
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
|
||||
<FilesMatch "\.(cgi|shtml|phtml|php)$">
|
||||
SSLOptions +StdEnvVars
|
||||
</FilesMatch>
|
||||
<Directory "/var/www/cgi-bin">
|
||||
SSLOptions +StdEnvVars
|
||||
</Directory>
|
||||
|
||||
# SSL Protocol Adjustments:
|
||||
# The safe and default but still SSL/TLS standard compliant shutdown
|
||||
# approach is that mod_ssl sends the close notify alert but doesn't wait for
|
||||
# the close notify alert from client. When you need a different shutdown
|
||||
# approach you can use one of the following variables:
|
||||
# o ssl-unclean-shutdown:
|
||||
# This forces an unclean shutdown when the connection is closed, i.e. no
|
||||
# SSL close notify alert is sent or allowed to be received. This violates
|
||||
# the SSL/TLS standard but is needed for some brain-dead browsers. Use
|
||||
# this when you receive I/O errors because of the standard approach where
|
||||
# mod_ssl sends the close notify alert.
|
||||
# o ssl-accurate-shutdown:
|
||||
# This forces an accurate shutdown when the connection is closed, i.e. a
|
||||
# SSL close notify alert is sent and mod_ssl waits for the close notify
|
||||
# alert of the client. This is 100% SSL/TLS standard compliant, but in
|
||||
# practice often causes hanging connections with brain-dead browsers. Use
|
||||
# this only for browsers where you know that their SSL implementation
|
||||
# works correctly.
|
||||
# Notice: Most problems of broken clients are also related to the HTTP
|
||||
# keep-alive facility, so you usually additionally want to disable
|
||||
# keep-alive for those clients, too. Use variable "nokeepalive" for this.
|
||||
# Similarly, one has to force some clients to use HTTP/1.0 to workaround
|
||||
# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
|
||||
# "force-response-1.0" for this.
|
||||
BrowserMatch "MSIE [2-5]" \
|
||||
nokeepalive ssl-unclean-shutdown \
|
||||
downgrade-1.0 force-response-1.0
|
||||
|
||||
# Per-Server Logging:
|
||||
# The home of a custom SSL log file. Use this when you want a
|
||||
# compact non-error SSL logfile on a virtual host basis.
|
||||
CustomLog logs/ssl_request_log \
|
||||
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
#
|
||||
# UserDir: The name of the directory that is appended onto a user's home
|
||||
# directory if a ~user request is received.
|
||||
#
|
||||
# The path to the end user account 'public_html' directory must be
|
||||
# accessible to the webserver userid. This usually means that ~userid
|
||||
# must have permissions of 711, ~userid/public_html must have permissions
|
||||
# of 755, and documents contained therein must be world-readable.
|
||||
# Otherwise, the client will only receive a "403 Forbidden" message.
|
||||
#
|
||||
<IfModule mod_userdir.c>
|
||||
#
|
||||
# UserDir is disabled by default since it can confirm the presence
|
||||
# of a username on the system (depending on home directory
|
||||
# permissions).
|
||||
#
|
||||
UserDir disabled
|
||||
|
||||
#
|
||||
# To enable requests to /~user/ to serve the user's public_html
|
||||
# directory, remove the "UserDir disabled" line above, and uncomment
|
||||
# the following line instead:
|
||||
#
|
||||
#UserDir public_html
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# Control access to UserDir directories. The following is an example
|
||||
# for a site where these directories are restricted to read-only.
|
||||
#
|
||||
<Directory "/home/*/public_html">
|
||||
AllowOverride FileInfo AuthConfig Limit Indexes
|
||||
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
|
||||
Require method GET POST OPTIONS
|
||||
</Directory>
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#
|
||||
# This configuration file maps the webalizer log analysis
|
||||
# results (generated daily) into the URL space. By default
|
||||
# these results are only accessible from the local host.
|
||||
#
|
||||
Alias /usage /var/www/usage
|
||||
|
||||
<Location /usage>
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
Allow from 127.0.0.1
|
||||
Allow from ::1
|
||||
# Allow from .example.com
|
||||
</Location>
|
||||
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# This configuration file enables the default "Welcome" page if there
|
||||
# is no default index page present for the root URL. To disable the
|
||||
# Welcome page, comment out all the lines below.
|
||||
#
|
||||
# NOTE: if this file is removed, it will be restored on upgrades.
|
||||
#
|
||||
<LocationMatch "^/+$">
|
||||
Options -Indexes
|
||||
ErrorDocument 403 /.noindex.html
|
||||
</LocationMatch>
|
||||
|
||||
<Directory /var/www/noindex>
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
Alias /.noindex.html /var/www/noindex/index.html
|
||||
@@ -0,0 +1,13 @@
|
||||
<VirtualHost *:443>
|
||||
ServerName blog.sapsailing.com
|
||||
Use SSL
|
||||
CustomLog logs/blog_log combined
|
||||
DocumentRoot /home/wordpress/wordpress
|
||||
<Directory /home/wordpress/wordpress>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride All
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
@@ -0,0 +1,938 @@
|
||||
# This is the main Apache server configuration file. It contains the
|
||||
# configuration directives that give the server its instructions.
|
||||
# See <URL:http://httpd.apache.org/docs/2.2/> for detailed information.
|
||||
# In particular, see
|
||||
# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
|
||||
# for a discussion of each configuration directive.
|
||||
#
|
||||
#
|
||||
# Do NOT simply read the instructions in here without understanding
|
||||
# what they do. They're here only as hints or reminders. If you are unsure
|
||||
# consult the online docs. You have been warned.
|
||||
#
|
||||
# The configuration directives are grouped into three basic sections:
|
||||
# 1. Directives that control the operation of the Apache server process as a
|
||||
# whole (the 'global environment').
|
||||
# 2. Directives that define the parameters of the 'main' or 'default' server,
|
||||
# which responds to requests that aren't handled by a virtual host.
|
||||
# These directives also provide default values for the settings
|
||||
# of all virtual hosts.
|
||||
# 3. Settings for virtual hosts, which allow Web requests to be sent to
|
||||
# different IP addresses or hostnames and have them handled by the
|
||||
# same Apache server process.
|
||||
#
|
||||
# Configuration and logfile names: If the filenames you specify for many
|
||||
# of the server's control files begin with "/" (or "drive:/" for Win32), the
|
||||
# server will use that explicit path. If the filenames do *not* begin
|
||||
# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
|
||||
# with ServerRoot set to "/etc/httpd" will be interpreted by the
|
||||
# server as "/etc/httpd/logs/foo.log".
|
||||
#
|
||||
|
||||
### Section 1: Global Environment
|
||||
#
|
||||
# The directives in this section affect the overall operation of Apache,
|
||||
# such as the number of concurrent requests it can handle or where it
|
||||
# can find its configuration files.
|
||||
#
|
||||
|
||||
#
|
||||
# Don't give away too much information about all the subcomponents
|
||||
# we are running. Comment out this line if you don't mind remote sites
|
||||
# finding out what major optional modules you are running
|
||||
ServerTokens OS
|
||||
|
||||
#
|
||||
# ServerRoot: The top of the directory tree under which the server's
|
||||
# configuration, error, and log files are kept.
|
||||
#
|
||||
# NOTE! If you intend to place this on an NFS (or otherwise network)
|
||||
# mounted filesystem then please read the LockFile documentation
|
||||
# (available at <URL:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile>);
|
||||
# you will save yourself a lot of trouble.
|
||||
#
|
||||
# Do NOT add a slash at the end of the directory path.
|
||||
#
|
||||
ServerRoot "/etc/httpd"
|
||||
|
||||
#
|
||||
# PidFile: The file in which the server should record its process
|
||||
# identification number when it starts.
|
||||
#
|
||||
PidFile /var/run/httpd/httpd.pid
|
||||
|
||||
#
|
||||
# Timeout: The number of seconds before receives and sends time out.
|
||||
#
|
||||
Timeout 6400
|
||||
|
||||
#
|
||||
# KeepAlive: Whether or not to allow persistent connections (more than
|
||||
# one request per connection). Set to "Off" to deactivate.
|
||||
#
|
||||
KeepAlive Off
|
||||
|
||||
#
|
||||
# MaxKeepAliveRequests: The maximum number of requests to allow
|
||||
# during a persistent connection. Set to 0 to allow an unlimited amount.
|
||||
# We recommend you leave this number high, for maximum performance.
|
||||
#
|
||||
MaxKeepAliveRequests 100
|
||||
|
||||
#
|
||||
# KeepAliveTimeout: Number of seconds to wait for the next request from the
|
||||
# same client on the same connection.
|
||||
#
|
||||
KeepAliveTimeout 160
|
||||
|
||||
##
|
||||
## Server-Pool Size Regulation (MPM specific)
|
||||
##
|
||||
|
||||
# prefork MPM
|
||||
# StartServers: number of server processes to start
|
||||
# MinSpareServers: minimum number of server processes which are kept spare
|
||||
# MaxSpareServers: maximum number of server processes which are kept spare
|
||||
# ServerLimit: maximum value for MaxClients for the lifetime of the server
|
||||
# MaxClients: maximum number of server processes allowed to start
|
||||
# MaxRequestsPerChild: maximum number of requests a server process serves
|
||||
<IfModule prefork.c>
|
||||
StartServers 8
|
||||
MinSpareServers 10
|
||||
MaxSpareServers 50
|
||||
ServerLimit 4048
|
||||
MaxRequestWorkers 4048
|
||||
MaxConnectionsPerChild 3000
|
||||
</IfModule>
|
||||
|
||||
# worker MPM
|
||||
# StartServers: initial number of server processes to start
|
||||
# MaxClients: maximum number of simultaneous client connections
|
||||
# MinSpareThreads: minimum number of worker threads which are kept spare
|
||||
# MaxSpareThreads: maximum number of worker threads which are kept spare
|
||||
# ThreadsPerChild: constant number of worker threads in each server process
|
||||
# MaxRequestsPerChild: maximum number of requests a server process serves
|
||||
<IfModule worker.c>
|
||||
StartServers 2
|
||||
MaxClients 4048
|
||||
MinSpareThreads 25
|
||||
MaxSpareThreads 75
|
||||
ThreadsPerChild 25
|
||||
MaxRequestsPerChild 0
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# Listen: Allows you to bind Apache to specific IP addresses and/or
|
||||
# ports, in addition to the default. See also the <VirtualHost>
|
||||
# directive.
|
||||
#
|
||||
# Change this to Listen on specific IP addresses as shown below to
|
||||
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
|
||||
#
|
||||
#Listen 12.34.56.78:80
|
||||
Listen 80
|
||||
|
||||
#
|
||||
# Dynamic Shared Object (DSO) Support
|
||||
#
|
||||
# To be able to use the functionality of a module which was built as a DSO you
|
||||
# have to place corresponding `LoadModule' lines at this location so the
|
||||
# directives contained in it are actually available _before_ they are used.
|
||||
# Statically compiled modules (those listed by `httpd -l') do not need
|
||||
# to be loaded here.
|
||||
#
|
||||
# Example:
|
||||
# LoadModule foo_module modules/mod_foo.so
|
||||
#
|
||||
Include conf.modules.d/*.conf
|
||||
|
||||
LoadModule usertrack_module modules/mod_usertrack.so
|
||||
LoadModule speling_module modules/mod_speling.so
|
||||
LoadModule php7_module modules/libphp-7.1.so
|
||||
|
||||
|
||||
<IfModule mod_php7.c>
|
||||
# If php is turned on, we respect .php and .phps files.
|
||||
AddType application/x-httpd-php .php
|
||||
AddType application/x-httpd-php-source .phps
|
||||
|
||||
# Since most users will want index.php to work we
|
||||
# also automatically enable index.php
|
||||
<IfModule mod_dir.c>
|
||||
DirectoryIndex index.html index.php
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# The following modules are not loaded by default:
|
||||
#
|
||||
#LoadModule cern_meta_module modules/mod_cern_meta.so
|
||||
#LoadModule asis_module modules/mod_asis.so
|
||||
|
||||
#
|
||||
# Load config files from the config directory "/etc/httpd/conf.d".
|
||||
#
|
||||
|
||||
Include conf.d/*.conf
|
||||
|
||||
#
|
||||
# ExtendedStatus controls whether Apache will generate "full" status
|
||||
# information (ExtendedStatus On) or just basic information (ExtendedStatus
|
||||
# Off) when the "server-status" handler is called. The default is Off.
|
||||
#
|
||||
ExtendedStatus On
|
||||
|
||||
#
|
||||
# If you wish httpd to run as a different user or group, you must run
|
||||
# httpd as root initially and it will switch.
|
||||
#
|
||||
# User/Group: The name (or #number) of the user/group to run httpd as.
|
||||
# . On SCO (ODT 3) use "User nouser" and "Group nogroup".
|
||||
# . On HPUX you may not be able to use shared memory as nobody, and the
|
||||
# suggested workaround is to create a user www and use that user.
|
||||
# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
|
||||
# when the value of (unsigned)Group is above 60000;
|
||||
# don't use Group #-1 on these systems!
|
||||
#
|
||||
User apache
|
||||
Group apache
|
||||
|
||||
### Section 2: 'Main' server configuration
|
||||
#
|
||||
# The directives in this section set up the values used by the 'main'
|
||||
# server, which responds to any requests that aren't handled by a
|
||||
# <VirtualHost> definition. These values also provide defaults for
|
||||
# any <VirtualHost> containers you may define later in the file.
|
||||
#
|
||||
# All of these directives may appear inside <VirtualHost> containers,
|
||||
# in which case these default settings will be overridden for the
|
||||
# virtual host being defined.
|
||||
#
|
||||
|
||||
#
|
||||
# ServerAdmin: Your address, where problems with the server should be
|
||||
# e-mailed. This address appears on some server-generated pages, such
|
||||
# as error documents. e.g. admin@your-domain.com
|
||||
#
|
||||
ServerAdmin admin@sapsailing.com
|
||||
|
||||
#
|
||||
# ServerName gives the name and port that the server uses to identify itself.
|
||||
# This can often be determined automatically, but we recommend you specify
|
||||
# it explicitly to prevent problems during startup.
|
||||
#
|
||||
# If this is not set to valid DNS name for your host, server-generated
|
||||
# redirections will not work. See also the UseCanonicalName directive.
|
||||
#
|
||||
# If your host doesn't have a registered DNS name, enter its IP address here.
|
||||
# You will have to access it by its address anyway, and this will make
|
||||
# redirections work in a sensible way.
|
||||
#
|
||||
ServerName www.sapsailing.com:80
|
||||
|
||||
#
|
||||
# UseCanonicalName: Determines how Apache constructs self-referencing
|
||||
# URLs and the SERVER_NAME and SERVER_PORT variables.
|
||||
# When set "Off", Apache will use the Hostname and Port supplied
|
||||
# by the client. When set "On", Apache will use the value of the
|
||||
# ServerName directive.
|
||||
#
|
||||
UseCanonicalName Off
|
||||
|
||||
#
|
||||
# DocumentRoot: The directory out of which you will serve your
|
||||
# documents. By default, all requests are taken from this directory, but
|
||||
# symbolic links and aliases may be used to point to other locations.
|
||||
#
|
||||
DocumentRoot "/var/www/html"
|
||||
|
||||
#
|
||||
# Each directory to which Apache has access can be configured with respect
|
||||
# to which services and features are allowed and/or disabled in that
|
||||
# directory (and its subdirectories).
|
||||
#
|
||||
# First, we configure the "default" to be a very restrictive set of
|
||||
# features.
|
||||
#
|
||||
<Directory />
|
||||
Options FollowSymLinks
|
||||
AllowOverride None
|
||||
</Directory>
|
||||
|
||||
#
|
||||
# Note that from this point forward you must specifically allow
|
||||
# particular features to be enabled - so if something's not working as
|
||||
# you might expect, make sure that you have specifically enabled it
|
||||
# below.
|
||||
#
|
||||
|
||||
#
|
||||
# This should be changed to whatever you set DocumentRoot to.
|
||||
#
|
||||
<Directory "/var/www/html">
|
||||
|
||||
#
|
||||
# Possible values for the Options directive are "None", "All",
|
||||
# or any combination of:
|
||||
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
|
||||
#
|
||||
# Note that "MultiViews" must be named *explicitly* --- "Options All"
|
||||
# doesn't give it to you.
|
||||
#
|
||||
# The Options directive is both complicated and important. Please see
|
||||
# http://httpd.apache.org/docs/2.2/mod/core.html#options
|
||||
# for more information.
|
||||
#
|
||||
Options Indexes FollowSymLinks
|
||||
|
||||
#
|
||||
# AllowOverride controls what directives may be placed in .htaccess files.
|
||||
# It can be "All", "None", or any combination of the keywords:
|
||||
# Options FileInfo AuthConfig Limit
|
||||
#
|
||||
AllowOverride None
|
||||
|
||||
#
|
||||
# Controls who can get stuff from this server.
|
||||
#
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
|
||||
</Directory>
|
||||
|
||||
#
|
||||
# UserDir: The name of the directory that is appended onto a user's home
|
||||
# directory if a ~user request is received.
|
||||
#
|
||||
# The path to the end user account 'public_html' directory must be
|
||||
# accessible to the webserver userid. This usually means that ~userid
|
||||
# must have permissions of 711, ~userid/public_html must have permissions
|
||||
# of 755, and documents contained therein must be world-readable.
|
||||
# Otherwise, the client will only receive a "403 Forbidden" message.
|
||||
#
|
||||
# See also: http://httpd.apache.org/docs/misc/FAQ.html#forbidden
|
||||
#
|
||||
<IfModule mod_userdir.c>
|
||||
#
|
||||
# UserDir is disabled by default since it can confirm the presence
|
||||
# of a username on the system (depending on home directory
|
||||
# permissions).
|
||||
#
|
||||
UserDir disable
|
||||
|
||||
#
|
||||
# To enable requests to /~user/ to serve the user's public_html
|
||||
# directory, remove the "UserDir disable" line above, and uncomment
|
||||
# the following line instead:
|
||||
#
|
||||
#UserDir public_html
|
||||
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# Control access to UserDir directories. The following is an example
|
||||
# for a site where these directories are restricted to read-only.
|
||||
#
|
||||
#<Directory /home/*/public_html>
|
||||
# AllowOverride FileInfo AuthConfig Limit
|
||||
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
|
||||
# <Limit GET POST OPTIONS>
|
||||
# Order allow,deny
|
||||
# Allow from all
|
||||
# </Limit>
|
||||
# <LimitExcept GET POST OPTIONS>
|
||||
# Order deny,allow
|
||||
# Deny from all
|
||||
# </LimitExcept>
|
||||
#</Directory>
|
||||
|
||||
#
|
||||
# DirectoryIndex: sets the file that Apache will serve if a directory
|
||||
# is requested.
|
||||
#
|
||||
# The index.html.var file (a type-map) is used to deliver content-
|
||||
# negotiated documents. The MultiViews Option can be used for the
|
||||
# same purpose, but it is much slower.
|
||||
#
|
||||
DirectoryIndex index.html index.html.var
|
||||
|
||||
#
|
||||
# AccessFileName: The name of the file to look for in each directory
|
||||
# for additional configuration directives. See also the AllowOverride
|
||||
# directive.
|
||||
#
|
||||
AccessFileName .htaccess
|
||||
|
||||
#
|
||||
# The following lines prevent .htaccess and .htpasswd files from being
|
||||
# viewed by Web clients.
|
||||
#
|
||||
<Files ~ "^\.ht">
|
||||
Order allow,deny
|
||||
Deny from all
|
||||
</Files>
|
||||
|
||||
#
|
||||
# TypesConfig describes where the mime.types file (or equivalent) is
|
||||
# to be found.
|
||||
#
|
||||
TypesConfig /etc/mime.types
|
||||
|
||||
#
|
||||
# The mod_mime_magic module allows the server to use various hints from the
|
||||
# contents of the file itself to determine its type. The MIMEMagicFile
|
||||
# directive tells the module where the hint definitions are located.
|
||||
#
|
||||
<IfModule mod_mime_magic.c>
|
||||
# MIMEMagicFile /usr/share/magic.mime
|
||||
MIMEMagicFile conf/magic
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# HostnameLookups: Log the names of clients or just their IP addresses
|
||||
# e.g., www.apache.org (on) or 204.62.129.132 (off).
|
||||
# The default is off because it'd be overall better for the net if people
|
||||
# had to knowingly turn this feature on, since enabling it means that
|
||||
# each client request will result in AT LEAST one lookup request to the
|
||||
# nameserver.
|
||||
#
|
||||
HostnameLookups Off
|
||||
|
||||
#
|
||||
# EnableMMAP: Control whether memory-mapping is used to deliver
|
||||
# files (assuming that the underlying OS supports it).
|
||||
# The default is on; turn this off if you serve from NFS-mounted
|
||||
# filesystems. On some systems, turning it off (regardless of
|
||||
# filesystem) can improve performance; for details, please see
|
||||
# http://httpd.apache.org/docs/2.2/mod/core.html#enablemmap
|
||||
#
|
||||
#EnableMMAP off
|
||||
|
||||
#
|
||||
# EnableSendfile: Control whether the sendfile kernel support is
|
||||
# used to deliver files (assuming that the OS supports it).
|
||||
# The default is on; turn this off if you serve from NFS-mounted
|
||||
# filesystems. Please see
|
||||
# http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile
|
||||
#
|
||||
#EnableSendfile off
|
||||
|
||||
#
|
||||
# ErrorLog: The location of the error log file.
|
||||
# If you do not specify an ErrorLog directive within a <VirtualHost>
|
||||
# container, error messages relating to that virtual host will be
|
||||
# logged here. If you *do* define an error logfile for a <VirtualHost>
|
||||
# container, that host's errors will be logged there and not here.
|
||||
#
|
||||
ErrorLog logs/error_log
|
||||
|
||||
#
|
||||
# LogLevel: Control the number of messages logged to the error_log.
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
#
|
||||
LogLevel warn
|
||||
|
||||
#
|
||||
# The following directives define some format nicknames for use with
|
||||
# a CustomLog directive (see below).
|
||||
#
|
||||
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
||||
LogFormat "%{Host}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" sapsailing_httpd_redirect_combined
|
||||
LogFormat "%{Host}i %{original_client_ip}e %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" sapsailing_httpd_redirect_combined_first_forwarded_for_ip
|
||||
|
||||
# In the request header received from the client look for an X-Forwarded-For header
|
||||
# field. If found, log the first IP address in it as the client host; otherwise, use
|
||||
# the combined format above which uses %h for the client host.
|
||||
SetEnvIf X-Forwarded-For "^([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*).*$" original_client_ip=$1
|
||||
|
||||
# The first_forwarded_for_ip log format can be used if the original_client_ip variable is set.
|
||||
# This means that a non-empty X-Forwarded-For header field was found and that the original_client_ip
|
||||
# variable now contains that client's IP address. Use this format to log the original client's IP
|
||||
# address instead of the immediate client's (probably some proxy server).
|
||||
LogFormat "%v %{original_client_ip}e %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" first_forwarded_for_ip
|
||||
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b" common
|
||||
LogFormat "%{Referer}i -> %U" referer
|
||||
LogFormat "%{User-agent}i" agent
|
||||
|
||||
# "combinedio" includes actual counts of actual bytes received (%I) and sent (%O); this
|
||||
# requires the mod_logio module to be loaded.
|
||||
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
|
||||
|
||||
#
|
||||
# The location and format of the access logfile (Common Logfile Format).
|
||||
# If you do not define any access logfiles within a <VirtualHost>
|
||||
# container, they will be logged here. Contrariwise, if you *do*
|
||||
# define per-<VirtualHost> access logfiles, transactions will be
|
||||
# logged therein and *not* in this file.
|
||||
#
|
||||
#CustomLog logs/access_log common
|
||||
|
||||
#
|
||||
# If you would like to have separate agent and referer logfiles, uncomment
|
||||
# the following directives.
|
||||
#
|
||||
#CustomLog logs/referer_log referer
|
||||
#CustomLog logs/agent_log agent
|
||||
|
||||
#
|
||||
# For a single logfile with access, agent, and referer information
|
||||
# (Combined Logfile Format), use the following directive:
|
||||
#
|
||||
#CustomLog logs/access_log combined
|
||||
#
|
||||
# Use the following for an Apache that runs behind a load balancer such
|
||||
# as an Amazon ELB or some other proxy. It records
|
||||
# the header field X-Forwarded-For as the client host IP address if such
|
||||
# an address is found, and the immediate client's IP if no such header
|
||||
# field is found.
|
||||
CustomLog logs/access_log combined env=!original_client_ip
|
||||
CustomLog logs/access_log first_forwarded_for_ip env=original_client_ip
|
||||
|
||||
#
|
||||
# Optionally add a line containing the server version and virtual host
|
||||
# name to server-generated pages (internal error documents, FTP directory
|
||||
# listings, mod_status and mod_info output etc., but not CGI generated
|
||||
# documents or custom error documents).
|
||||
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
|
||||
# Set to one of: On | Off | EMail
|
||||
#
|
||||
ServerSignature Off
|
||||
|
||||
#
|
||||
# WebDAV module configuration section.
|
||||
#
|
||||
<IfModule mod_dav_fs.c>
|
||||
# Location of the WebDAV lock database.
|
||||
DAVLockDB /var/lib/dav/lockdb
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# ScriptAlias: This controls which directories contain server scripts.
|
||||
# ScriptAliases are essentially the same as Aliases, except that
|
||||
# documents in the realname directory are treated as applications and
|
||||
# run by the server when requested rather than as documents sent to the client.
|
||||
# The same rules about trailing "/" apply to ScriptAlias directives as to
|
||||
# Alias.
|
||||
#
|
||||
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
|
||||
|
||||
#
|
||||
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
|
||||
# CGI directory exists, if you have that configured.
|
||||
#
|
||||
<Directory "/var/www/cgi-bin">
|
||||
AllowOverride None
|
||||
Options None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
#
|
||||
# Redirect allows you to tell clients about documents which used to exist in
|
||||
# your server's namespace, but do not anymore. This allows you to tell the
|
||||
# clients where to look for the relocated document.
|
||||
# Example:
|
||||
# Redirect permanent /foo http://www.example.com/bar
|
||||
|
||||
#
|
||||
# Directives controlling the display of server-generated directory listings.
|
||||
#
|
||||
|
||||
#
|
||||
# IndexOptions: Controls the appearance of server-generated directory
|
||||
# listings.
|
||||
#
|
||||
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable
|
||||
|
||||
#
|
||||
# AddIcon* directives tell the server which icon to show for different
|
||||
# files or filename extensions. These are only displayed for
|
||||
# FancyIndexed directories.
|
||||
#
|
||||
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
|
||||
|
||||
AddIconByType (TXT,/icons/text.gif) text/*
|
||||
AddIconByType (IMG,/icons/image2.gif) image/*
|
||||
AddIconByType (SND,/icons/sound2.gif) audio/*
|
||||
AddIconByType (VID,/icons/movie.gif) video/*
|
||||
|
||||
AddIcon /icons/binary.gif .bin .exe
|
||||
AddIcon /icons/binhex.gif .hqx
|
||||
AddIcon /icons/tar.gif .tar
|
||||
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
|
||||
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
|
||||
AddIcon /icons/a.gif .ps .ai .eps
|
||||
AddIcon /icons/layout.gif .html .shtml .htm .pdf
|
||||
AddIcon /icons/text.gif .txt
|
||||
AddIcon /icons/c.gif .c
|
||||
AddIcon /icons/p.gif .pl .py
|
||||
AddIcon /icons/f.gif .for
|
||||
AddIcon /icons/dvi.gif .dvi
|
||||
AddIcon /icons/uuencoded.gif .uu
|
||||
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
|
||||
AddIcon /icons/tex.gif .tex
|
||||
AddIcon /icons/bomb.gif core
|
||||
|
||||
AddIcon /icons/back.gif ..
|
||||
AddIcon /icons/hand.right.gif README
|
||||
AddIcon /icons/folder.gif ^^DIRECTORY^^
|
||||
AddIcon /icons/blank.gif ^^BLANKICON^^
|
||||
|
||||
#
|
||||
# DefaultIcon is which icon to show for files which do not have an icon
|
||||
# explicitly set.
|
||||
#
|
||||
DefaultIcon /icons/unknown.gif
|
||||
|
||||
#
|
||||
# AddDescription allows you to place a short description after a file in
|
||||
# server-generated indexes. These are only displayed for FancyIndexed
|
||||
# directories.
|
||||
# Format: AddDescription "description" filename
|
||||
#
|
||||
#AddDescription "GZIP compressed document" .gz
|
||||
#AddDescription "tar archive" .tar
|
||||
#AddDescription "GZIP compressed tar archive" .tgz
|
||||
|
||||
#
|
||||
# ReadmeName is the name of the README file the server will look for by
|
||||
# default, and append to directory listings.
|
||||
#
|
||||
# HeaderName is the name of a file which should be prepended to
|
||||
# directory indexes.
|
||||
ReadmeName README.html
|
||||
HeaderName HEADER.html
|
||||
|
||||
#
|
||||
# IndexIgnore is a set of filenames which directory indexing should ignore
|
||||
# and not include in the listing. Shell-style wildcarding is permitted.
|
||||
#
|
||||
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
|
||||
|
||||
#
|
||||
# DefaultLanguage and AddLanguage allows you to specify the language of
|
||||
# a document. You can then use content negotiation to give a browser a
|
||||
# file in a language the user can understand.
|
||||
#
|
||||
# Specify a default language. This means that all data
|
||||
# going out without a specific language tag (see below) will
|
||||
# be marked with this one. You probably do NOT want to set
|
||||
# this unless you are sure it is correct for all cases.
|
||||
#
|
||||
# * It is generally better to not mark a page as
|
||||
# * being a certain language than marking it with the wrong
|
||||
# * language!
|
||||
#
|
||||
# DefaultLanguage nl
|
||||
#
|
||||
# Note 1: The suffix does not have to be the same as the language
|
||||
# keyword --- those with documents in Polish (whose net-standard
|
||||
# language code is pl) may wish to use "AddLanguage pl .po" to
|
||||
# avoid the ambiguity with the common suffix for perl scripts.
|
||||
#
|
||||
# Note 2: The example entries below illustrate that in some cases
|
||||
# the two character 'Language' abbreviation is not identical to
|
||||
# the two character 'Country' code for its country,
|
||||
# E.g. 'Danmark/dk' versus 'Danish/da'.
|
||||
#
|
||||
# Note 3: In the case of 'ltz' we violate the RFC by using a three char
|
||||
# specifier. There is 'work in progress' to fix this and get
|
||||
# the reference data for rfc1766 cleaned up.
|
||||
#
|
||||
# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl)
|
||||
# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de)
|
||||
# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja)
|
||||
# Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
|
||||
# Norwegian (no) - Polish (pl) - Portugese (pt)
|
||||
# Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv)
|
||||
# Simplified Chinese (zh-CN) - Spanish (es) - Traditional Chinese (zh-TW)
|
||||
#
|
||||
AddLanguage ca .ca
|
||||
AddLanguage cs .cz .cs
|
||||
AddLanguage da .dk
|
||||
AddLanguage de .de
|
||||
AddLanguage el .el
|
||||
AddLanguage en .en
|
||||
AddLanguage eo .eo
|
||||
AddLanguage es .es
|
||||
AddLanguage et .et
|
||||
AddLanguage fr .fr
|
||||
AddLanguage he .he
|
||||
AddLanguage hr .hr
|
||||
AddLanguage it .it
|
||||
AddLanguage ja .ja
|
||||
AddLanguage ko .ko
|
||||
AddLanguage ltz .ltz
|
||||
AddLanguage nl .nl
|
||||
AddLanguage nn .nn
|
||||
AddLanguage no .no
|
||||
AddLanguage pl .po
|
||||
AddLanguage pt .pt
|
||||
AddLanguage pt-BR .pt-br
|
||||
AddLanguage ru .ru
|
||||
AddLanguage sv .sv
|
||||
AddLanguage zh-CN .zh-cn
|
||||
AddLanguage zh-TW .zh-tw
|
||||
|
||||
#
|
||||
# LanguagePriority allows you to give precedence to some languages
|
||||
# in case of a tie during content negotiation.
|
||||
#
|
||||
# Just list the languages in decreasing order of preference. We have
|
||||
# more or less alphabetized them here. You probably want to change this.
|
||||
#
|
||||
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
|
||||
|
||||
#
|
||||
# ForceLanguagePriority allows you to serve a result page rather than
|
||||
# MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
|
||||
# [in case no accepted languages matched the available variants]
|
||||
#
|
||||
ForceLanguagePriority Prefer Fallback
|
||||
|
||||
#
|
||||
# Specify a default charset for all content served; this enables
|
||||
# interpretation of all content as UTF-8 by default. To use the
|
||||
# default browser choice (ISO-8859-1), or to allow the META tags
|
||||
# in HTML content to override this choice, comment out this
|
||||
# directive:
|
||||
#
|
||||
AddDefaultCharset UTF-8
|
||||
#AddDefaultCharset ISO-8859-1
|
||||
|
||||
#
|
||||
# AddType allows you to add to or override the MIME configuration
|
||||
# file mime.types for specific file types.
|
||||
#
|
||||
#AddType application/x-tar .tgz
|
||||
|
||||
#
|
||||
# AddEncoding allows you to have certain browsers uncompress
|
||||
# information on the fly. Note: Not all browsers support this.
|
||||
# Despite the name similarity, the following Add* directives have nothing
|
||||
# to do with the FancyIndexing customization directives above.
|
||||
#
|
||||
#AddEncoding x-compress .Z
|
||||
#AddEncoding x-gzip .gz .tgz
|
||||
|
||||
# If the AddEncoding directives above are commented-out, then you
|
||||
# probably should define those extensions to indicate media types:
|
||||
#
|
||||
AddType application/x-compress .Z
|
||||
AddType application/x-gzip .gz .tgz
|
||||
|
||||
#
|
||||
# AddHandler allows you to map certain file extensions to "handlers":
|
||||
# actions unrelated to filetype. These can be either built into the server
|
||||
# or added with the Action directive (see below)
|
||||
#
|
||||
# To use CGI scripts outside of ScriptAliased directories:
|
||||
# (You will also need to add "ExecCGI" to the "Options" directive.)
|
||||
#
|
||||
#AddHandler cgi-script .cgi
|
||||
|
||||
#
|
||||
# For files that include their own HTTP headers:
|
||||
#
|
||||
#AddHandler send-as-is asis
|
||||
|
||||
#
|
||||
# For type maps (negotiated resources):
|
||||
# (This is enabled by default to allow the Apache "It Worked" page
|
||||
# to be distributed in multiple languages.)
|
||||
#
|
||||
AddHandler type-map var
|
||||
|
||||
#
|
||||
# Filters allow you to process content before it is sent to the client.
|
||||
#
|
||||
# To parse .shtml files for server-side includes (SSI):
|
||||
# (You will also need to add "Includes" to the "Options" directive.)
|
||||
#
|
||||
AddType text/html .shtml
|
||||
AddOutputFilter INCLUDES .shtml
|
||||
|
||||
#
|
||||
# Action lets you define media types that will execute a script whenever
|
||||
# a matching file is called. This eliminates the need for repeated URL
|
||||
# pathnames for oft-used CGI file processors.
|
||||
# Format: Action media/type /cgi-script/location
|
||||
# Format: Action handler-name /cgi-script/location
|
||||
#
|
||||
|
||||
#
|
||||
# Customizable error responses come in three flavors:
|
||||
# 1) plain text 2) local redirects 3) external redirects
|
||||
#
|
||||
# Some examples:
|
||||
ErrorDocument 500 http://status.sapsailing.com/500.html
|
||||
ErrorDocument 503 http://status.sapsailing.com/503.html
|
||||
#ErrorDocument 404 "Document not found"
|
||||
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
|
||||
#ErrorDocument 402 http://www.example.com/subscription_info.html
|
||||
#
|
||||
|
||||
#
|
||||
# Putting this all together, we can internationalize error responses.
|
||||
#
|
||||
# We use Alias to redirect any /error/HTTP_<error>.html.var response to
|
||||
# our collection of by-error message multi-language collections. We use
|
||||
# includes to substitute the appropriate text.
|
||||
#
|
||||
# You can modify the messages' appearance without changing any of the
|
||||
# default HTTP_<error>.html.var files by adding the line:
|
||||
#
|
||||
# Alias /error/include/ "/your/include/path/"
|
||||
#
|
||||
# which allows you to create your own set of files by starting with the
|
||||
# /var/www/error/include/ files and
|
||||
# copying them to /your/include/path/, even on a per-VirtualHost basis.
|
||||
#
|
||||
|
||||
Alias /error/ "/var/www/error/"
|
||||
|
||||
<IfModule mod_negotiation.c>
|
||||
<IfModule mod_include.c>
|
||||
<Directory "/var/www/error">
|
||||
AllowOverride None
|
||||
Options IncludesNoExec
|
||||
AddOutputFilter Includes html
|
||||
AddHandler type-map var
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
LanguagePriority en es de fr
|
||||
ForceLanguagePriority Prefer Fallback
|
||||
</Directory>
|
||||
|
||||
# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
|
||||
# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
|
||||
# ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
|
||||
# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
|
||||
# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
|
||||
# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
|
||||
# ErrorDocument 410 /error/HTTP_GONE.html.var
|
||||
# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
|
||||
# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
|
||||
# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
|
||||
# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
|
||||
# ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
|
||||
# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
|
||||
# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
|
||||
# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
|
||||
# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
|
||||
# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
|
||||
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# The following directives modify normal HTTP response behavior to
|
||||
# handle known problems with browser implementations.
|
||||
#
|
||||
BrowserMatch "Mozilla/2" nokeepalive
|
||||
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
|
||||
BrowserMatch "RealPlayer 4\.0" force-response-1.0
|
||||
BrowserMatch "Java/1\.0" force-response-1.0
|
||||
BrowserMatch "JDK/1\.0" force-response-1.0
|
||||
|
||||
#
|
||||
# The following directive disables redirects on non-GET requests for
|
||||
# a directory that does not include the trailing slash. This fixes a
|
||||
# problem with Microsoft WebFolders which does not appropriately handle
|
||||
# redirects for folders with DAV methods.
|
||||
# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
|
||||
#
|
||||
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
|
||||
BrowserMatch "MS FrontPage" redirect-carefully
|
||||
BrowserMatch "^WebDrive" redirect-carefully
|
||||
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
|
||||
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
|
||||
BrowserMatch "^XML Spy" redirect-carefully
|
||||
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
|
||||
|
||||
#
|
||||
# Allow server status reports generated by mod_status,
|
||||
# with the URL of http://servername/server-status
|
||||
# Change the ".example.com" to match your domain to enable.
|
||||
<Location /internal-server-status>
|
||||
SetHandler server-status
|
||||
Order deny,allow
|
||||
#Deny from all
|
||||
Allow from all
|
||||
</Location>
|
||||
|
||||
#
|
||||
# Allow remote server configuration reports, with the URL of
|
||||
# http://servername/server-info (requires that mod_info.c be loaded).
|
||||
# Change the ".example.com" to match your domain to enable.
|
||||
#
|
||||
#<Location /server-info>
|
||||
# SetHandler server-info
|
||||
# Order deny,allow
|
||||
# Deny from all
|
||||
# Allow from .example.com
|
||||
#</Location>
|
||||
|
||||
#
|
||||
# Proxy Server directives. Uncomment the following lines to
|
||||
# enable the proxy server:
|
||||
#
|
||||
#<IfModule mod_proxy.c>
|
||||
#ProxyRequests On
|
||||
#
|
||||
#<Proxy *>
|
||||
# Order deny,allow
|
||||
# Deny from all
|
||||
# Allow from .example.com
|
||||
#</Proxy>
|
||||
|
||||
#
|
||||
# Enable/disable the handling of HTTP/1.1 "Via:" headers.
|
||||
# ("Full" adds the server version; "Block" removes all outgoing Via: headers)
|
||||
# Set to one of: Off | On | Full | Block
|
||||
#
|
||||
#ProxyVia On
|
||||
|
||||
#
|
||||
# To enable a cache of proxied content, uncomment the following lines.
|
||||
# See http://httpd.apache.org/docs/2.2/mod/mod_cache.html for more details.
|
||||
#
|
||||
#<IfModule mod_disk_cache.c>
|
||||
# CacheEnable disk /
|
||||
# CacheRoot "/var/cache/mod_proxy"
|
||||
#</IfModule>
|
||||
#
|
||||
|
||||
#</IfModule>
|
||||
# End of proxy directives.
|
||||
|
||||
### Section 3: Virtual Hosts
|
||||
#
|
||||
# VirtualHost: If you want to maintain multiple domains/hostnames on your
|
||||
# machine you can setup VirtualHost containers for them. Most configurations
|
||||
# use only name-based virtual hosts so the server doesn't need to worry about
|
||||
# IP addresses. This is indicated by the asterisks in the directives below.
|
||||
#
|
||||
# Please see the documentation at
|
||||
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
|
||||
# for further details before you try to setup virtual hosts.
|
||||
#
|
||||
# You may use the command line option '-S' to verify your virtual host
|
||||
# configuration.
|
||||
|
||||
#
|
||||
# VirtualHost example:
|
||||
# Almost any Apache directive may go into a VirtualHost container.
|
||||
# The first VirtualHost section is used for requests without a known
|
||||
# server name.
|
||||
#
|
||||
#<VirtualHost *:80>
|
||||
# ServerAdmin webmaster@dummy-host.example.com
|
||||
# DocumentRoot /www/docs/dummy-host.example.com
|
||||
# ServerName dummy-host.example.com
|
||||
# ErrorLog logs/dummy-host.example.com-error_log
|
||||
# CustomLog logs/dummy-host.example.com-access_log common
|
||||
#</VirtualHost>
|
||||
|
||||
Executable
+61
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Upgrades the AWS EC2 instance that this script is assumed to be executed on.
|
||||
# The steps are as follows:
|
||||
|
||||
REBOOT_INDICATOR=/var/run/is-rebooted
|
||||
|
||||
run_yum_update() {
|
||||
echo "Updating packages using yum" >>/var/log/sailing.err
|
||||
yum -y update
|
||||
}
|
||||
|
||||
run_git_pull() {
|
||||
echo "Pulling git to /home/sailing/code" >>/var/log/sailing.err
|
||||
su - sailing -c "cd code; git pull"
|
||||
}
|
||||
|
||||
run_refresh_instance_install_release() {
|
||||
echo "Upgrading sailing server software" >>/var/log/sailing.err
|
||||
su - sailing -c "cd servers; for i in *; do echo \"Upgrading \$i\"; cd \$i; echo \"Updating release in \`pwd\`\"; ./refreshInstance.sh install-release; cd ..; done" >>/var/log/sailing.err
|
||||
}
|
||||
|
||||
clean_logrotate_target() {
|
||||
echo "Clearing logrorate-targets" >>/var/log/sailing.err
|
||||
rm -rf /var/log/logrotate-target/*
|
||||
}
|
||||
|
||||
clean_httpd_logs() {
|
||||
echo "Clearing httpd logs" >>/var/log/sailing.err
|
||||
service httpd stop
|
||||
rm -rf /var/log/httpd/*
|
||||
rm /etc/httpd/conf.d/001-internals.conf
|
||||
}
|
||||
|
||||
clean_sailing_logs() {
|
||||
echo "Clearing sailing logs" >>/var/log/sailing.err
|
||||
rm -rf /home/sailing/servers/*/logs/*
|
||||
}
|
||||
|
||||
clean_startup_logs() {
|
||||
echo "Clearing bootstrap logs" >>/var/log/sailing.err
|
||||
rm /var/log/sailing*
|
||||
# Ensure that upon the next boot the reboot indicator is not present, indicating that it's the first boot
|
||||
rm "${REBOOT_INDICATOR}"
|
||||
}
|
||||
|
||||
run_yum_update
|
||||
run_git_pull
|
||||
run_refresh_instance_install_release
|
||||
clean_logrotate_target
|
||||
clean_httpd_logs
|
||||
clean_sailing_logs
|
||||
clean_startup_logs
|
||||
|
||||
# Finally, shut down the node unless "no-shutdown" was provided in the user data, so that a new AMI can be constructed cleanly
|
||||
if /opt/aws/bin/ec2-metadata -d | grep "^no-shutdown$"; then
|
||||
echo "Shutdown disabled by no-shutdown option in user data"
|
||||
touch /tmp/image-upgrade-finished
|
||||
else
|
||||
shutdown -h now &
|
||||
fi
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
# You need an installation of the 2020-06 release of "Eclipse IDE for Eclipse Committers" matching you OS and JDK (32 vs 64 Bit):
|
||||
# https://www.eclipse.org/downloads/packages/release/2020-06/r/eclipse-ide-eclipse-committers
|
||||
|
||||
if [[ $1 == "" ]]; then
|
||||
echo "You need to specify the Eclipse installation directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
installPath="$1"
|
||||
|
||||
installPlugins() {
|
||||
"$installPath/eclipse" -application org.eclipse.equinox.p2.director -noSplash -roaming -repository $1 -installIU $2
|
||||
echo ""
|
||||
}
|
||||
|
||||
updatePlugins() {
|
||||
"$installPath/eclipse" -application org.eclipse.equinox.p2.director -noSplash -roaming -repository $1 -uninstallIU $2 -installIU $2
|
||||
echo ""
|
||||
}
|
||||
|
||||
uninstallPlugins() {
|
||||
"$installPath/eclipse" -application org.eclipse.equinox.p2.director -noSplash -roaming -uninstallIU $1
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Not necessary if using Eclipse for JEE developers
|
||||
echo "Installing webtools (WTP/WST/JPT) and m2e that are required by the GWT plugin..."
|
||||
installPlugins http://download.eclipse.org/releases/2020-06/ org.eclipse.wst.web_ui.feature.feature.group,org.eclipse.jst.web_ui.feature.feature.group,org.eclipse.wst.xml_ui.feature.feature.group,org.eclipse.jpt.common.feature.feature.group,org.eclipse.jpt.jpa.feature.feature.group,org.eclipse.m2e.feature.feature.group,org.eclipse.m2e.wtp.feature.feature.group
|
||||
|
||||
echo "Installing GWT plugin..."
|
||||
installPlugins http://storage.googleapis.com/gwt-eclipse-plugin/v3/release com.gwtplugins.eclipse.suite.v3.feature.feature.group
|
||||
|
||||
echo "Installing Mission Control plugin..."
|
||||
installPlugins http://download.oracle.com/technology/products/missioncontrol/updatesites/base/6.0.0/eclipse com.oracle.jmc.feature.ide.feature.group,com.oracle.jmc.feature.flightrecorder.feature.group,com.oracle.jmc.feature.core.feature.group,com.oracle.jmc.feature.console.feature.group,com.oracle.jmc.feature.core.feature.group,com.oracle.jmc.feature.core.feature.group
|
||||
|
||||
echo "Installing GWT SDM debug bridge..."
|
||||
installPlugins http://p2.sapsailing.com/p2/sdbg com.github.sdbg.feature.feature.group
|
||||
|
||||
echo "Installing EasyShell..."
|
||||
installPlugins http://anb0s.github.io/EasyShell de.anbos.eclipse.easyshell.feature.feature.group
|
||||
|
||||
echo "Installing Memory Analyzer..."
|
||||
installPlugins http://download.eclipse.org/releases/2020-06 org.eclipse.mat.feature.feature.group,org.eclipse.mat.chart.feature.feature.group
|
||||
|
||||
echo "Installing SAP JVM Tools (profiler) ..."
|
||||
installPlugins https://tools.hana.ondemand.com/oxygen com.sap.jvm.profiling.feature.group
|
||||
|
||||
echo "Installing UMLet ..."
|
||||
installPlugins https://www.umlet.com/umlet_latest/repository/ umlet-eclipse-feature.feature.group
|
||||
|
||||
echo "Installing javax.xml.bind for news feed polling (see https://stackoverflow.com/questions/52528693/eclipse-internal-error-polling-news-feeds)..."
|
||||
installPlugins http://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository javax.xml.bind
|
||||
|
||||
echo "Installing Enhanced Class Decompiler"
|
||||
installPlugins https://ecd-plugin.github.io/update org.sf.feeling.decompiler.feature.group,org.sf.feeling.decompiler.cfr.feature.group,org.sf.feeling.decompiler.jad.feature.group,org.sf.feeling.decompiler.jd.feature.group,org.sf.feeling.decompiler.procyon.feature.group
|
||||
|
||||
echo "Uninstalling Wild Web Developer"
|
||||
uninstallPlugins org.eclipse.wildwebdeveloper.feature.feature.group
|
||||
|
||||
echo "Installation completed!"
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
# You need an installation of the 2020-09 release of "Eclipse IDE for Eclipse Committers" matching you OS and JDK (32 vs 64 Bit):
|
||||
# https://www.eclipse.org/downloads/packages/release/2020-09/r/eclipse-ide-eclipse-committers
|
||||
|
||||
if [[ $1 == "" ]]; then
|
||||
echo "You need to specify the Eclipse installation directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
installPath="$1"
|
||||
|
||||
installPlugins() {
|
||||
"$installPath/eclipse" -application org.eclipse.equinox.p2.director -noSplash -roaming -repository $1 -installIU $2
|
||||
echo ""
|
||||
}
|
||||
|
||||
updatePlugins() {
|
||||
"$installPath/eclipse" -application org.eclipse.equinox.p2.director -noSplash -roaming -repository $1 -uninstallIU $2 -installIU $2
|
||||
echo ""
|
||||
}
|
||||
|
||||
uninstallPlugins() {
|
||||
"$installPath/eclipse" -application org.eclipse.equinox.p2.director -noSplash -roaming -uninstallIU $1
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Not necessary if using Eclipse for JEE developers
|
||||
echo "Installing webtools (WTP/WST/JPT) and m2e that are required by the GWT plugin..."
|
||||
installPlugins http://download.eclipse.org/releases/2020-09/ org.eclipse.wst.web_ui.feature.feature.group,org.eclipse.jst.web_ui.feature.feature.group,org.eclipse.wst.xml_ui.feature.feature.group,org.eclipse.jpt.common.feature.feature.group,org.eclipse.jpt.jpa.feature.feature.group,org.eclipse.m2e.feature.feature.group,org.eclipse.m2e.wtp.feature.feature.group
|
||||
|
||||
echo "Installing GWT plugin..."
|
||||
installPlugins http://storage.googleapis.com/gwt-eclipse-plugin/v3/release com.gwtplugins.eclipse.suite.v3.feature.feature.group
|
||||
|
||||
echo "Installing Mission Control plugin..."
|
||||
installPlugins http://download.oracle.com/technology/products/missioncontrol/updatesites/base/6.0.0/eclipse com.oracle.jmc.feature.ide.feature.group,com.oracle.jmc.feature.flightrecorder.feature.group,com.oracle.jmc.feature.core.feature.group,com.oracle.jmc.feature.console.feature.group,com.oracle.jmc.feature.core.feature.group,com.oracle.jmc.feature.core.feature.group
|
||||
|
||||
echo "Installing GWT SDM debug bridge..."
|
||||
installPlugins http://p2.sapsailing.com/p2/sdbg com.github.sdbg.feature.feature.group
|
||||
|
||||
echo "Installing EasyShell..."
|
||||
installPlugins http://anb0s.github.io/EasyShell de.anbos.eclipse.easyshell.feature.feature.group
|
||||
|
||||
echo "Installing Memory Analyzer..."
|
||||
installPlugins http://download.eclipse.org/releases/2020-09 org.eclipse.mat.feature.feature.group,org.eclipse.mat.chart.feature.feature.group
|
||||
|
||||
echo "Installing SAP JVM Tools (profiler) ..."
|
||||
installPlugins https://tools.hana.ondemand.com/oxygen com.sap.jvm.profiling.feature.group
|
||||
|
||||
echo "Installing UMLet ..."
|
||||
installPlugins https://www.umlet.com/umlet_latest/repository/ umlet-eclipse-feature.feature.group
|
||||
|
||||
echo "Installing javax.xml.bind for news feed polling (see https://stackoverflow.com/questions/52528693/eclipse-internal-error-polling-news-feeds)..."
|
||||
installPlugins http://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository javax.xml.bind
|
||||
|
||||
echo "Installing Enhanced Class Decompiler"
|
||||
installPlugins https://ecd-plugin.github.io/update org.sf.feeling.decompiler.feature.group,org.sf.feeling.decompiler.cfr.feature.group,org.sf.feeling.decompiler.jad.feature.group,org.sf.feeling.decompiler.jd.feature.group,org.sf.feeling.decompiler.procyon.feature.group
|
||||
|
||||
echo "Uninstalling Wild Web Developer"
|
||||
uninstallPlugins org.eclipse.wildwebdeveloper.feature.feature.group
|
||||
|
||||
echo "Installation completed!"
|
||||
@@ -1,21 +1,20 @@
|
||||
#!/bin/bash
|
||||
REPLICA_SET_NAME=$(ec2-metadata | grep REPLICA_SET_NAME | sed -e 's/^user-data: //' | sed -e 's/^REPLICA_SET_NAME=//')
|
||||
eval $( ec2-metadata -d | sed -e 's/^user-data: //' )
|
||||
if [ -z "$REPLICA_SET_NAME" ]; then
|
||||
REPLICA_SET_NAME=live
|
||||
fi
|
||||
REPLICA_SET_PRIMARY=$(ec2-metadata | grep REPLICA_SET_PRIMARY | sed -e 's/^user-data: //' | sed -e 's/^REPLICA_SET_PRIMARY=//')
|
||||
if [ -z "$REPLICA_SET_PRIMARY" ]; then
|
||||
REPLICA_SET_PRIMARY=mongo0.internal.sapsailing.com:27017
|
||||
fi
|
||||
REPLICA_SET_PRIORITY=$(ec2-metadata | grep REPLICA_SET_PRIORITY | sed -e 's/^user-data: //' | sed -e 's/^REPLICA_SET_PRIORITY=//')
|
||||
if [ -z "$REPLICA_SET_PRIORITY" ]; then
|
||||
REPLICA_SET_PRIORITY=1
|
||||
fi
|
||||
REPLICA_SET_VOTES=$(ec2-metadata | grep REPLICA_SET_VOTES | sed -e 's/^user-data: //' | sed -e 's/^REPLICA_SET_VOTES=//')
|
||||
if [ -z "$REPLICA_SET_VOTES" ]; then
|
||||
REPLICA_SET_VOTES=0
|
||||
fi
|
||||
if [ \! -z "REPLICA_SET_PRIMARY" ]; then
|
||||
IP=$(ec2-metadata -o | sed -e 's/^local-ipv4: //')
|
||||
echo "rs.add({host: \"$IP:27017\", priority: $REPLICA_SET_PRIORITY, votes: $REPLICA_SET_VOTES})" | mongo "mongodb://$REPLICA_SET_PRIMARY/?replicaSet=$REPLICA_SET_NAME&retryWrites=true"
|
||||
else
|
||||
echo "rs.initiate()" | mongo
|
||||
fi
|
||||
@@ -11,4 +11,4 @@ Type=oneshot
|
||||
RemainAfterExit=true
|
||||
ExecStart=/usr/local/bin/add-as-replica
|
||||
ExecStop=/usr/local/bin/remove-as-replica
|
||||
TimeoutStopSpec=120s
|
||||
TimeoutStopSec=120s
|
||||
@@ -1,6 +1,5 @@
|
||||
#!/bin/bash
|
||||
REPLICA_SET_NAME=$(ec2-metadata | grep REPLICA_SET_NAME | sed -e 's/^user-data: //' | sed -e 's/^REPLICA_SET_NAME=//')
|
||||
REPLICA_SET_PRIMARY=$(ec2-metadata | grep REPLICA_SET_PRIMARY | sed -e 's/^user-data: //' | sed -e 's/^REPLICA_SET_PRIMARY=//')
|
||||
eval $( ec2-metadata -d | sed -e 's/^user-data: //' )
|
||||
if [ \! -z "REPLICA_SET_PRIMARY" ]; then
|
||||
IP=$(ec2-metadata -o | sed -e 's/^local-ipv4: //')
|
||||
echo "rs.remove(\"$IP:27017\")" | mongo "mongodb://$REPLICA_SET_PRIMARY/?replicaSet=$REPLICA_SET_NAME&retryWrites=true"
|
||||
|
||||
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/bin/sh
|
||||
|
||||
REGION=`wget -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e 's/[a-z]$//'`
|
||||
AMI_ID=`wget -q -O - http://169.254.169.254/latest/meta-data/ami-id`
|
||||
AMI_INFO=`aws ec2 describe-images --region ${REGION} --image-ids "$AMI_ID"`
|
||||
AMI_NAME=`echo $AMI_INFO | python -c "import sys,json; print json.load(sys.stdin)['Images'][0]['Name']"`
|
||||
AMI_CREATED=`echo $AMI_INFO | python -c "import sys,json; print json.load(sys.stdin)['Images'][0]['CreationDate']"`
|
||||
|
||||
INSTANCE_ID=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`
|
||||
INSTANCE_NAME_INFO=`aws ec2 describe-tags --region ${REGION} --filter "Name=resource-id,Values=$INSTANCE_ID"`
|
||||
INSTANCE_AWS_NAME=`echo $INSTANCE_NAME_INFO | python -c "import sys,json; print json.load(sys.stdin)['Tags'][0]['Value']"`
|
||||
|
||||
source /home/sailing/servers/server/env.sh
|
||||
cat << EOF
|
||||
...........................................................
|
||||
/////////////////////////////////////////////////////////,
|
||||
///////////////////////////////////////////////////////,
|
||||
///* .*////// ///// .*/////////////,
|
||||
(. /((/ (((( /((((((((,
|
||||
. ,((((/.,(((( .((( /(/* ((((((,
|
||||
. ./((((((((, , *(( /(((* /(((,
|
||||
(. ./((* ,(. (( */*. ((,
|
||||
(((* ( ((( .( /*
|
||||
((((((((/ , .,/(*
|
||||
(/ .*(((* (((((*
|
||||
, (((/((/ (##*
|
||||
##(,. ./#,,,,,/#######,,,,,,,,,(*
|
||||
#################################* .*,
|
||||
###############################* ,./ *
|
||||
.............................. .
|
||||
|
||||
Welcome to instance running image $AMI_NAME!
|
||||
The image has been created at <$AMI_CREATED>.
|
||||
|
||||
This instance is named <$INSTANCE_AWS_NAME> and
|
||||
is running the Analytics server <$SERVER_NAME>.
|
||||
|
||||
It will use a maximum of <$MEMORY> memory and is configured to
|
||||
be a <$USE_ENVIRONMENT>. Please handle with love and care!
|
||||
|
||||
EOF
|
||||
@@ -0,0 +1,168 @@
|
||||
Use Plain-SSL 172.31.30.84 127.0.0.1 8888
|
||||
## SERVER STATUS
|
||||
Use Status ec2-34-250-136-229.eu-west-1.compute.amazonaws.com internal-server-status
|
||||
|
||||
# USSailing
|
||||
Use Home-SSL ussailing.sapsailing.com 127.0.0.1 8889
|
||||
|
||||
# Abeam (Japanese Partner) training system
|
||||
Use Plain-SSL abeam-training.sapsailing.com 127.0.0.1 8890
|
||||
|
||||
# TracTrac Test
|
||||
Use Plain-SSL tractractest.sapsailing.com 127.0.0.1 8891
|
||||
Use Home-SSL tractrac.sapsailing.com 127.0.0.1 8891
|
||||
|
||||
# SAP Extreme Sailing Team Training Server (Rasmus Koestner, rasmuskostner@gmail.com)
|
||||
# Dismantled 2020-01-28 after checking back with Rasmus
|
||||
#Use Home-SSL extreme-team.sapsailing.com 127.0.0.1 8892
|
||||
|
||||
# VSaW
|
||||
Use Home-SSL vsaw.sapsailing.com 127.0.0.1 8893
|
||||
|
||||
# Bayerischer Yacht-Club (BYC)
|
||||
Use Home-SSL byc.sapsailing.com 127.0.0.1 8894
|
||||
|
||||
# SwissTiming Test (swisstimingtest) (masnica.r@st-software.com Radek Masnica)
|
||||
Use Plain-SSL swisstimingtest.sapsailing.com 127.0.0.1 8895
|
||||
|
||||
# IRISHDBSCDW3
|
||||
Use Home-SSL irishdbscdw3.sapsailing.com 127.0.0.1 8896
|
||||
|
||||
# first-seascape-germany: Dieter Hagen <hagen.dieter@icloud.com> (Deutsche First & Seascape Klassenvereinigung e.V.)
|
||||
Use Home-SSL first-seascape-germany.sapsailing.com 127.0.0.1 8897
|
||||
|
||||
# Luebecker Yacht-Club (LYC)
|
||||
Use Home-SSL lyc.sapsailing.com 127.0.0.1 8898
|
||||
|
||||
# Keppel Bay Sailing Club (KBSC)
|
||||
Use Home-SSL kbsc.sapsailing.com 127.0.0.1 8899
|
||||
|
||||
# Seebrucker Regattaverein am Chiemsee (SRV)
|
||||
Use Home-SSL srv.sapsailing.com 127.0.0.1 8900
|
||||
|
||||
# Heinz Nixdorf Verein zur Foerderung des Segelsports e.V. (HNV)
|
||||
Use Home-SSL hnv.sapsailing.com 127.0.0.1 8901
|
||||
|
||||
# Israeli Sailing Association / Carmel Sailing Society
|
||||
Use Home-SSL isr.sapsailing.com 127.0.0.1 8902
|
||||
Use Home-SSL cyc.sapsailing.com 127.0.0.1 8902
|
||||
|
||||
# Sailtracks Test Server
|
||||
Use Home-SSL sailtracks.sapsailing.com 127.0.0.1 8903
|
||||
|
||||
# Norwegian Sailing Federation
|
||||
Use Home-SSL nor.sapsailing.com 127.0.0.1 8904
|
||||
|
||||
# Jojos Nacra Campaign (jpolgar@aol.com)
|
||||
Use Plain-SSL jojopolgar.sapsailing.com 127.0.0.1 8905
|
||||
|
||||
# Segelvereinigung Rhein-Neckar
|
||||
Use Home-SSL srn.sapsailing.com 127.0.0.1 8906
|
||||
|
||||
# Yacht-Club Luzern (Arnet, Ivo [mailto:ivo.arnet@itready.net])
|
||||
Use Home-SSL ycl.sapsailing.com 127.0.0.1 8907
|
||||
|
||||
# Segelzentrum der Universität Kiel (Hamann, Jan [mailto:jan.hamann@email.uni-kiel.de])
|
||||
Use Home-SSL segelzentrum.sapsailing.com 127.0.0.1 8908
|
||||
|
||||
# Robert Davis Sailing, Canadian Sailing Team (Robert Davis <robertdavissailing@outlook.com>)
|
||||
Use Plain-SSL rdsailing.sapsailing.com 127.0.0.1 8909
|
||||
|
||||
# Keith Johnson Softalk Computer Services (Keith Johnson <keith@softalk.co.uk>)
|
||||
Use Plain-SSL kjscs.sapsailing.com 127.0.0.1 8910
|
||||
|
||||
# KSSS (Royal Swedish Sailing Club, Stefan Rahm <stefan@ksss.se>)
|
||||
Use Plain-SSL ksss.sapsailing.com 127.0.0.1 8911
|
||||
|
||||
# Sailing Academy South Africa (instructor@sailingacademy.co.za, Neil Ashton)
|
||||
Use Plain-SSL sailingacademy.sapsailing.com 127.0.0.1 8912
|
||||
|
||||
# StarLab (Fabiano Avancini [mailto:fabiano.avancini@gmail.com], https://www.facebook.com/events/845403545622630/)
|
||||
Use Plain-SSL starlab.sapsailing.com 127.0.0.1 8913
|
||||
|
||||
# SingaporeSailing (Lim Han Ee <han@singaporesailing.org.sg>)
|
||||
Use Plain-SSL singaporesailing.sapsailing.com 127.0.0.1 8914
|
||||
|
||||
# Club Nautic de Sitges (pa.ubach@gmail.com; on behalf of; Pere-Andreu Ubach <pa_ubach@alum.mit.edu>)
|
||||
Use Plain-SSL sitges.sapsailing.com 127.0.0.1 8915
|
||||
|
||||
# Akademischer Seglerverein Aachen (Axel Schmidt, axel.sebastian.schmidt@rwth-aachen.de)
|
||||
Use Plain-SSL asvia.sapsailing.com 127.0.0.1 8916
|
||||
|
||||
# Schwartauer Segler-Verein, www.ssv-net.de, Alexander Probst, webmaster@alexprobst.de
|
||||
Use Plain-SSL ssv.sapsailing.com 127.0.0.1 8917
|
||||
|
||||
# SailCanada (Canadian Sailing Federation, Ken Dool, ken@sailing.ca)
|
||||
Use Plain-SSL sailcanada.sapsailing.com 127.0.0.1 8918
|
||||
|
||||
# PMYC (Porto Montenegro Yacht Club, Tony Browne <tony@portomontenegro.com>)
|
||||
Use Plain-SSL pmyc.sapsailing.com 127.0.0.1 8919
|
||||
|
||||
# SSC (Segeberger Segel Club, Thomas Glas, th.glas@gmail.com)
|
||||
Use Plain-SSL ssc.sapsailing.com 127.0.0.1 8920
|
||||
|
||||
# SailRacer (Ricardas Novosinskas <ricardas@sailracer.net>)
|
||||
Use Plain-SSL sailracer.sapsailing.com 127.0.0.1 8922
|
||||
|
||||
# Galvestaure (Mantas Klimantavicius <mantas.klimantavicius@gmail.com>)
|
||||
Use Plain-SSL galvestaure.sapsailing.com 127.0.0.1 8923
|
||||
|
||||
# Tobias Schadewaldt <tobias.schadewaldt@me.com>
|
||||
Use Plain-SSL schadewaldt.sapsailing.com 127.0.0.1 8924
|
||||
|
||||
# HSC Women's Team <hsc.womensteam@gmail.com>
|
||||
Use Plain-SSL hsc-womensteam.sapsailing.com 127.0.0.1 8925
|
||||
|
||||
# aarhussejlklub.sapsailing.com (Fredrik Strange <sailor@fstrange.dk>)
|
||||
Use Plain-SSL aarhussejlklub.sapsailing.com 127.0.0.1 8927
|
||||
|
||||
# d-labs.sapsailing.com (David Eickhoff <david.eickhoff@d-labs.com>)
|
||||
Use Plain-SSL d-labs.sapsailing.com 127.0.0.1 8928
|
||||
|
||||
# alarie505.sapsailing.com (Peter Alarie,alarie505@gmail.com)
|
||||
Use Plain-SSL alarie505.sapsailing.com 127.0.0.1 8929
|
||||
|
||||
# schanzenberg.sapsailing.com (Segelzentrum Schanzenberg, Florian Mösch <florian@moesch.org>)
|
||||
Use Plain-SSL schanzenberg.sapsailing.com 127.0.0.1 8930
|
||||
|
||||
# phoenix.sapsailing.com (Team Phoenix, Douglas Edwards <doug.hemisphere@gmail.com>, Kristina Plattner <kristina.plattner@gmail.com>)
|
||||
Use Plain-SSL phoenix.sapsailing.com 127.0.0.1 8931
|
||||
|
||||
# my.sapsailing.com (Self-Service Smartphone Tracking)
|
||||
Use Home-SSL my.sapsailing.com 127.0.0.1 8932
|
||||
|
||||
# mdf.sapsailing.com (Medway Dragon Fleet, Chris Brealy <c.brealy@hotmail.co.uk>)
|
||||
Use Home-SSL mdf.sapsailing.com 127.0.0.1 8933
|
||||
|
||||
# jonaswitt.sapsailing.com (Jonas Witt, jonas@sailnjord.com)
|
||||
Use Plain-SSL jonaswitt.sapsailing.com 127.0.0.1 8934
|
||||
|
||||
# seascape.sapsailing.com (Dejan Presen <dejan.presen@gmail.com>)
|
||||
use Home-SSL seascape.sapsailing.com 127.0.0.1 8935
|
||||
|
||||
# Port 8936 (HTTP) freed up;
|
||||
|
||||
# oakcliff.sapsailing.com (Patrick Burks, Director Oakcliff Sailing <regatta@oakcliffsailing.org>, Roy Craft <r.craft@sap.com>)
|
||||
use Plain-SSL oakcliff.sapsailing.com 127.0.0.1 8937
|
||||
|
||||
# rheinwoche.sapsailing.com (Christoph Zander, praesident@h-boot.org, info@christophzander.de)
|
||||
use Home-SSL rheinwoche.sapsailing.com 127.0.0.1 8938
|
||||
|
||||
# kyc.sapsailing.com (Kieler Yacht Club, Felix Weidling, fw@kyc.de)
|
||||
use Plain-SSL kyc.sapsailing.com 127.0.0.1 8939
|
||||
|
||||
# schwielochsee.sapsailing.com (Segelclub Schwielochsee e.V., Maximilian Hartig, maximilian.hartig@sap.com, mh@sc-schwielochsee.de)
|
||||
use Plain-SSL schwielochsee.sapsailing.com 127.0.0.1 8940
|
||||
|
||||
# formula18.sapsailing.com (Formula 18 Class Association, Dirk Bleiker <dirk@bleiker-db.com>)
|
||||
use Plain-SSL formula18.sapsailing.com 127.0.0.1 8941
|
||||
|
||||
# baldeneysee.sapsailing.com (Wettfahrtgemeinschaft der Segler am Baldeneysee, https://wfg-baldeneysee.org/, Christoph Zander, vorsitzender@etuf-segeln.de, administrator@wfg-baldeneysee.org)
|
||||
use Home-SSL baldeneysee.sapsailing.com 127.0.0.1 8942
|
||||
|
||||
# Peter Wagner, AUT, Skype: peterwagner77, +4366087100213
|
||||
Use Home-SSL peter-training.sapsailing.com 127.0.0.1 8943
|
||||
|
||||
# Janek Balster, Schilkseer Yacht Club (SYC)
|
||||
Use Home-SSL janek-training.sapsailing.com 127.0.0.1 8944
|
||||
|
||||
Executable
+211
@@ -0,0 +1,211 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=aarhussejlklub
|
||||
SERVER_NAME=AARHUSSEJLKLUB
|
||||
SERVER_PORT=8927
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/AARHUSSEJLKLUB"
|
||||
EXPEDITION_PORT=2049
|
||||
TELNET_PORT=14927
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=abeam-training
|
||||
SERVER_NAME=abeam-training
|
||||
SERVER_PORT=8890
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/abeam-training?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2012
|
||||
TELNET_PORT=14890
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=alarie505
|
||||
SERVER_NAME=alarie505
|
||||
SERVER_PORT=8929
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/alarie505"
|
||||
EXPEDITION_PORT=2051
|
||||
TELNET_PORT=14929
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=asvia
|
||||
SERVER_NAME=ASVIA
|
||||
SERVER_PORT=8916
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/ASVIA"
|
||||
EXPEDITION_PORT=2038
|
||||
TELNET_PORT=14916
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=baldeneysee
|
||||
SERVER_NAME=baldeneysee
|
||||
SERVER_PORT=8942
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/baldeneysee?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2064
|
||||
TELNET_PORT=14942
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=byc
|
||||
SERVER_NAME=BYC
|
||||
SERVER_PORT=8894
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/BYC?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2016
|
||||
TELNET_PORT=14894
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
SERVER_NAME=$1
|
||||
SERVER_PORT=$2
|
||||
TELNET_PORT=$((SERVER_PORT+6000))
|
||||
EXPEDITION_PORT=$((2010+SERVER_PORT-8888))
|
||||
MONGODB_URI=$3
|
||||
cp -rp TEMPLATE $SERVER_NAME
|
||||
ENV_SH=$SERVER_NAME/env.sh
|
||||
echo "DEPLOY_TO=$SERVER_NAME" >>$ENV_SH
|
||||
echo "SERVER_NAME=$SERVER_NAME" >>$ENV_SH
|
||||
echo "SERVER_PORT=$SERVER_PORT" >>$ENV_SH
|
||||
echo "MONGODB_URI=\"$MONGODB_URI\"" >>$ENV_SH
|
||||
echo "EXPEDITION_PORT=$EXPEDITION_PORT" >>$ENV_SH
|
||||
echo "TELNET_PORT=$TELNET_PORT" >>$ENV_SH
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=first-seascape-germany
|
||||
SERVER_NAME=first-seascape-germany
|
||||
SERVER_PORT=8897
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/first-seascape-germany?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2019
|
||||
TELNET_PORT=14897
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=formula18
|
||||
SERVER_NAME=formula18
|
||||
SERVER_PORT=8941
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/formula18?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2063
|
||||
TELNET_PORT=14941
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=galvestaure
|
||||
SERVER_NAME=galvestaure
|
||||
SERVER_PORT=8923
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/galvestaure?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2045
|
||||
TELNET_PORT=14923
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=hnv
|
||||
SERVER_NAME=HNV
|
||||
SERVER_PORT=8901
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/HNV?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2023
|
||||
TELNET_PORT=14901
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=hsc-womensteam
|
||||
SERVER_NAME=hsc-womensteam
|
||||
SERVER_PORT=8925
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/hsc-womensteam"
|
||||
EXPEDITION_PORT=2047
|
||||
TELNET_PORT=14925
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=irishdbscdw3
|
||||
SERVER_NAME=IRISHDBSCDW3
|
||||
SERVER_PORT=8896
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/irishdbscdw3"
|
||||
EXPEDITION_PORT=2018
|
||||
TELNET_PORT=14896
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=isr
|
||||
SERVER_NAME=ISR
|
||||
SERVER_PORT=8902
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/ISR"
|
||||
EXPEDITION_PORT=2024
|
||||
TELNET_PORT=14902
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=janek-training
|
||||
SERVER_NAME=janekbalster
|
||||
SERVER_PORT=8944
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/janekbalster"
|
||||
EXPEDITION_PORT=2066
|
||||
TELNET_PORT=14944
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=jojopolgar
|
||||
SERVER_NAME=JOJOPOLGAR
|
||||
SERVER_PORT=8905
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/JOJOPOLGAR?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2027
|
||||
TELNET_PORT=14905
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=jonaswitt
|
||||
SERVER_NAME=jonaswitt
|
||||
SERVER_PORT=8934
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/jonaswitt?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2056
|
||||
TELNET_PORT=14934
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=kbsc
|
||||
SERVER_NAME=KBSC
|
||||
SERVER_PORT=8899
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/KBSC"
|
||||
EXPEDITION_PORT=2021
|
||||
TELNET_PORT=14899
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=kjscs
|
||||
SERVER_NAME=KJSCS
|
||||
SERVER_PORT=8910
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/KJSCS?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2032
|
||||
TELNET_PORT=14910
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=ksss
|
||||
SERVER_NAME=KSSS
|
||||
SERVER_PORT=8911
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/KSSS"
|
||||
EXPEDITION_PORT=2033
|
||||
TELNET_PORT=14911
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=kyc
|
||||
SERVER_NAME=kyc
|
||||
SERVER_PORT=8939
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/kyc?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2061
|
||||
TELNET_PORT=14939
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
SERVER_NAME=LYC
|
||||
DEPLOY_TO=lyc
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/LYC?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2020
|
||||
SERVER_PORT=8898
|
||||
TELNET_PORT=14898
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=mdf
|
||||
SERVER_NAME=mdf
|
||||
SERVER_PORT=8933
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/mdf"
|
||||
EXPEDITION_PORT=2055
|
||||
TELNET_PORT=14933
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=my
|
||||
SERVER_NAME=my
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/my?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2054
|
||||
SERVER_PORT=8932
|
||||
TELNET_PORT=14932
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=nor
|
||||
SERVER_NAME=NOR
|
||||
SERVER_PORT=8904
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/NOR?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2026
|
||||
TELNET_PORT=14904
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=oakcliff
|
||||
SERVER_NAME=oakcliff
|
||||
SERVER_PORT=8937
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/oakcliff?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2059
|
||||
TELNET_PORT=14937
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=peter-training
|
||||
SERVER_NAME=peterwagner
|
||||
SERVER_PORT=8943
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/peterwagner?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2065
|
||||
TELNET_PORT=14943
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=phoenix
|
||||
SERVER_NAME=phoenix
|
||||
SERVER_PORT=8931
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/phoenix"
|
||||
EXPEDITION_PORT=2053
|
||||
TELNET_PORT=14931
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=pmyc
|
||||
SERVER_NAME=PMYC
|
||||
SERVER_PORT=8919
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/PMYC"
|
||||
EXPEDITION_PORT=2041
|
||||
TELNET_PORT=14919
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=rdsailing
|
||||
SERVER_NAME=RDSAILING
|
||||
SERVER_PORT=8909
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/RDSAILING?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2031
|
||||
TELNET_PORT=14909
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=rheinwoche
|
||||
SERVER_NAME=rheinwoche2019
|
||||
SERVER_PORT=8938
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/rheinwoche2019?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2060
|
||||
TELNET_PORT=14938
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=sailcanada
|
||||
SERVER_NAME=SAILCANADA
|
||||
SERVER_PORT=8918
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/SAILCANADA"
|
||||
EXPEDITION_PORT=2040
|
||||
TELNET_PORT=14918
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=sailingacademy
|
||||
SERVER_NAME=SAILINGACADEMY
|
||||
SERVER_PORT=8912
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/SAILINGACADEMY"
|
||||
EXPEDITION_PORT=2034
|
||||
TELNET_PORT=14912
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=sailracer
|
||||
SERVER_NAME=sailracer
|
||||
SERVER_PORT=8922
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/sailracer?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2044
|
||||
TELNET_PORT=14922
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS"
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
#REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=sailtracks
|
||||
SERVER_NAME=sailtracks
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/Sailtracks?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2025
|
||||
SERVER_PORT=8903
|
||||
TELNET_PORT=14903
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=schadewaldt
|
||||
SERVER_NAME=schadewaldt
|
||||
SERVER_PORT=8924
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/schadewaldt"
|
||||
EXPEDITION_PORT=2046
|
||||
TELNET_PORT=14924
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=schanzenberg
|
||||
SERVER_NAME=schanzenberg
|
||||
SERVER_PORT=8930
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/schanzenberg"
|
||||
EXPEDITION_PORT=2052
|
||||
TELNET_PORT=14930
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=schwielochsee
|
||||
SERVER_NAME=schwielochsee
|
||||
SERVER_PORT=8940
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/schwielochsee?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2062
|
||||
TELNET_PORT=14940
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=seascape
|
||||
SERVER_NAME=SEASCAPE
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/seascape?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2057
|
||||
SERVER_PORT=8935
|
||||
TELNET_PORT=14935
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=segelzentrum
|
||||
SERVER_NAME=SEGELZENTRUM
|
||||
SERVER_PORT=8908
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/SEGELZENTRUM?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2030
|
||||
TELNET_PORT=14908
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=singaporesailing
|
||||
SERVER_NAME=SINGAPORESAILING
|
||||
SERVER_PORT=8914
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/SINGAPORESAILING"
|
||||
EXPEDITION_PORT=2036
|
||||
TELNET_PORT=14914
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=sitges
|
||||
SERVER_NAME=SITGES
|
||||
SERVER_PORT=8915
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/SITGES?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2037
|
||||
TELNET_PORT=14915
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=srn
|
||||
SERVER_NAME=SRN
|
||||
SERVER_PORT=8906
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/SRN?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2028
|
||||
TELNET_PORT=14906
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=srv
|
||||
SERVER_NAME=SRV
|
||||
SERVER_PORT=8900
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/SRV?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2022
|
||||
TELNET_PORT=14900
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=ssc
|
||||
SERVER_NAME=SSC
|
||||
SERVER_PORT=8920
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/SSC"
|
||||
EXPEDITION_PORT=2042
|
||||
TELNET_PORT=14920
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=ssv
|
||||
SERVER_NAME=SSV
|
||||
SERVER_PORT=8917
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/SSV"
|
||||
EXPEDITION_PORT=2039
|
||||
TELNET_PORT=14917
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=starlab
|
||||
SERVER_NAME=STARLAB
|
||||
SERVER_PORT=8913
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/STARLAB?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2035
|
||||
TELNET_PORT=14913
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=swisstimingtest
|
||||
SERVER_NAME=swisstimingtest
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/swisstimingtest?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2017
|
||||
SERVER_PORT=8895
|
||||
TELNET_PORT=14895
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=tractractest
|
||||
SERVER_NAME=TracTracTest
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/TracTracTest?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2013
|
||||
SERVER_PORT=8891
|
||||
TELNET_PORT=14891
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=ussailing
|
||||
SERVER_NAME=USSAILING
|
||||
SERVER_PORT=8889
|
||||
MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10202/USSAILING"
|
||||
EXPEDITION_PORT=14889
|
||||
TELNET_PORT=2011
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This file contains the configuration for the Java server
|
||||
|
||||
# *******************************************************
|
||||
# ATTENTION: Make sure to always also check the variables at the end
|
||||
# of this file as there could be overwritten ones!
|
||||
# *******************************************************
|
||||
|
||||
if [ -z $SERVER_NAME ]; then
|
||||
SERVER_NAME=MASTER
|
||||
fi
|
||||
|
||||
# This is a default heap size only; the boot script of an instance (see
|
||||
# configuration/sailing) will add a MEMORY assignment to this file in the
|
||||
# server's directory that has a default value computed from the total
|
||||
# memory installed in the machine and the number of server instances to
|
||||
# start on that machine. This default can be overwritten by manually appending
|
||||
# another MEMORY assignment at the end of the file or by defining an environment
|
||||
# file with a MEMORY assignment which is then used in conjunction with refreshInstance.sh
|
||||
# or by setting the MEMORY variable in the EC2 Instance Details section which will be appended
|
||||
# at the end of the file.
|
||||
MEMORY="20000m"
|
||||
|
||||
# Message Queue hostname where to
|
||||
# send messages for replicas (this server is master)
|
||||
if [ -z $REPLICATION_HOST ]; then
|
||||
REPLICATION_HOST=localhost
|
||||
fi
|
||||
# For the port, use 0 for the RabbitMQ default or a specific port that your RabbitMQ server is listening on
|
||||
if [ -z $REPLICATION_PORT ]; then
|
||||
REPLICATION_PORT=0
|
||||
fi
|
||||
# The name of the message queuing fan-out exchange that this server will use in its role as replication master.
|
||||
# Make sure this is unique so that no other master is writing to this exchange at any time.
|
||||
if [ -z $REPLICATION_CHANNEL ]; then
|
||||
REPLICATION_CHANNEL=sapsailinganalytics-master
|
||||
fi
|
||||
|
||||
if [ -z $TELNET_PORT ]; then
|
||||
TELNET_PORT=14888
|
||||
fi
|
||||
if [ -z $SERVER_PORT ]; then
|
||||
SERVER_PORT=8888
|
||||
fi
|
||||
if [ -z $MONGODB_HOST ]; then
|
||||
MONGODB_HOST=10.0.75.1
|
||||
fi
|
||||
if [ -z $MONGODB_PORT ]; then
|
||||
MONGODB_PORT=27017
|
||||
fi
|
||||
if [ -z $MONGODB_NAME ]; then
|
||||
MONGODB_NAME=winddb
|
||||
fi
|
||||
if [ -z $EXPEDITION_PORT ]; then
|
||||
EXPEDITION_PORT=2010
|
||||
fi
|
||||
|
||||
# To start replication upon startup provide the fully-qualified names of the Replicable service classes
|
||||
# for which to trigger replication. If you activate this make sure to
|
||||
# set the REPLICATE_MASTER_EXCHANGE_NAME variable to the
|
||||
# same channel the master is using in its REPLICATION_CHANNEL variable
|
||||
|
||||
if [ -n "$AUTO_REPLICATE" ]; then
|
||||
REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.windestimation.integration.WindEstimationFactoryServiceImpl,com.sap.sailing.server.impl.com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
fi
|
||||
# Host where the master Java instance is running
|
||||
# Make sure firewall configurations allow access
|
||||
#
|
||||
# REPLICATE_MASTER_SERVLET_HOST=
|
||||
# REPLICATE_MASTER_SERVLET_PORT=
|
||||
|
||||
# Host where RabbitMQ is running
|
||||
# REPLICATE_MASTER_QUEUE_HOST=
|
||||
# Port that RabbitMQ is listening on (normally something like 5672); use 0 to connect to RabbitMQ's default port
|
||||
if [ -z $REPLICATE_MASTER_QUEUE_PORT ]; then
|
||||
REPLICATE_MASTER_QUEUE_PORT=0
|
||||
fi
|
||||
|
||||
# Exchange name that the master from which to auto-replicate is using as
|
||||
# its REPLICATION_CHANNEL variable, mapping to the master's replication.exchangeName
|
||||
# system property.
|
||||
#
|
||||
# REPLICATE_MASTER_EXCHANGE_NAME=
|
||||
|
||||
# Credentials for replication access to the master server
|
||||
# Make sure, the user is granted the permission SERVER:REPLICATE:<server-name>
|
||||
# Credentials can be provided either as a combination of username and password,
|
||||
# or alternatively as a single bearer token that was obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://master-server.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the master server using your web browser and then navigating to
|
||||
# https://master-server.sapsailing.com/security/api/restsecurity/access_token
|
||||
#
|
||||
# REPLICATE_MASTER_USERNAME=
|
||||
# REPLICATE_MASTER_PASSWORD=
|
||||
# REPLICATE_MASTER_BEARER_TOKEN=
|
||||
|
||||
# Automatic build and test configuration
|
||||
DEPLOY_TO=server
|
||||
BUILD_BEFORE_START=False
|
||||
BUILD_FROM=master
|
||||
COMPILE_GWT=True
|
||||
RUN_TESTS=False
|
||||
CODE_DIRECTORY=code
|
||||
|
||||
# Specify an email adress that should be notified
|
||||
# whenever a build or install has been completed
|
||||
#
|
||||
# BUILD_COMPLETE_NOTIFY=
|
||||
|
||||
# Specify an email address that should be notified
|
||||
# whenever the server has been started
|
||||
#
|
||||
# SERVER_STARTUP_NOTIFY=
|
||||
|
||||
# Specify filename that is usually located at
|
||||
# http://release.sapsailing.com/ that should
|
||||
# be used as a base for the server
|
||||
#
|
||||
# INSTALL_FROM_RELEASE=
|
||||
|
||||
# Specify name of file that can usually be found
|
||||
# at http://release.sapsailing.com/environments
|
||||
#
|
||||
# USE_ENVIRONMENT=
|
||||
|
||||
INSTANCE_ID="$SERVER_NAME:$SERVER_PORT"
|
||||
if [[ ! -d $JAVA_HOME ]] && [[ -f "/usr/libexec/java_home" ]]; then
|
||||
JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
JAVA_BINARY="$JAVA_HOME/bin/java"
|
||||
JAVA_VERSION_OUTPUT=$("$JAVA_BINARY" -version 2>&1)
|
||||
JAVA_VERSION=$(echo "$JAVA_VERSION_OUTPUT" | sed 's/^.* version "\(.*\)\.\(.*\)\..*".*$/\1.\2/; 1q')
|
||||
export JAVA_11_LOGGING_ARGS="-Xlog:gc+ergo*=trace:file=logs/gc_ergo.log:time:filecount=10,filesize=100000 -Xlog:gc*:file=logs/gc.log:time:filecount=10,filesize=100000"
|
||||
export JAVA_11_ARGS="-Dosgi.java.profile=file://`pwd`/JavaSE-11.profile --add-modules=ALL-SYSTEM -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ${JAVA_11_LOGGING_ARGS}"
|
||||
export JAVA_8_LOGGING_ARGS="-XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||
echo JAVA_VERSION detected: $JAVA_VERSION
|
||||
if echo $JAVA_VERSION | grep -q "^11\."; then
|
||||
echo Java 11 detected
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_11_ARGS
|
||||
else
|
||||
echo Java other than 11 detected
|
||||
# options for use with SAP JVM only:
|
||||
if echo "$JAVA_VERSION_OUTPUT" | grep -q "SAP Java"; then
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -XX:+GCHistory -XX:GCHistoryFilename=logs/sapjvm_gc@PID.prf"
|
||||
BUILD=$( echo "$JAVA_VERSION_OUTPUT" | grep "(build [^ ]*)" )
|
||||
MAJOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\1/' )
|
||||
MINOR=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\2/' )
|
||||
UPDATE=$( echo "$BUILD" | sed -e 's/^.*(build \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)).*$/\3/' )
|
||||
echo "SAP JVM $MAJOR $MINOR $UPDATE detected"
|
||||
if [ $MAJOR -ge 8 -a $MINOR -ge 1 -a $UPDATE -ge 45 ]; then
|
||||
echo "Update 8.1.045 or later; using Java11 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_11_LOGGING_ARGS"
|
||||
else
|
||||
echo "Update before 8.1.045; using Java8 GC logging options"
|
||||
LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
else
|
||||
# non-SAP JVM 8
|
||||
export LOGGING_ARGS="$JAVA_8_LOGGING_ARGS"
|
||||
fi
|
||||
export JAVA_8_ARGS="-XX:ThreadPriorityPolicy=2 -XX:+UseG1GC ${LOGGING_ARGS}"
|
||||
JAVA_VERSION_SPECIFIC_ARGS=$JAVA_8_ARGS
|
||||
fi
|
||||
ADDITIONAL_JAVA_ARGS="$JAVA_VERSION_SPECIFIC_ARGS $ADDITIONAL_JAVA_ARGS -Dpersistentcompetitors.clear=false -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -XX:MaxGCPauseMillis=500"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com, uncomment and fill in the following:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
# Obtain the bearer token for user security-service-replicator by logging on to https://security-service.sapsailing.com and then
|
||||
# getting https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
echo ADDITIONAL_JAVA_ARGS=${ADDITIONAL_JAVA_ARGS}
|
||||
ON_AMAZON=`command -v ec2-metadata`
|
||||
|
||||
# **** Overwritten environment variables ****
|
||||
# live-master-server
|
||||
REPLICATION_HOST=rabbit.internal.sapsailing.com
|
||||
TELNET_PORT=14888
|
||||
SERVER_PORT=8888
|
||||
MONGODB_HOST=dbserver.internal.sapsailing.com
|
||||
MONGODB_PORT=10202
|
||||
EXPEDITION_PORT=2010
|
||||
REPLICATE_ON_START=
|
||||
REPLICATE_MASTER_SERVLET_HOST=
|
||||
REPLICATE_MASTER_SERVLET_PORT=
|
||||
REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com
|
||||
REPLICATE_MASTER_QUEUE_PORT=5672
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Xms$MEMORY -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2"
|
||||
|
||||
# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com:
|
||||
ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$"
|
||||
REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl
|
||||
REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com
|
||||
REPLICATE_MASTER_SERVLET_PORT=443
|
||||
REPLICATE_MASTER_EXCHANGE_NAME=security_service
|
||||
|
||||
# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password...
|
||||
#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission)
|
||||
#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com)
|
||||
# Or by bearer token, obtained, e.g., through
|
||||
# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token
|
||||
# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service
|
||||
# permissions, using your web browser and then navigating to
|
||||
# https://security-service.sapsailing.com/security/api/restsecurity/access_token
|
||||
REPLICATE_MASTER_BEARER_TOKEN="Gecx+W/dwFKRAxFbIvC/IMafEnJ8kTQF+MlYNVhEwD4="
|
||||
|
||||
DEPLOY_TO=vsaw
|
||||
SERVER_NAME=VSAW
|
||||
MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/VSAW?replicaSet=live&retryWrites=true"
|
||||
EXPEDITION_PORT=2015
|
||||
SERVER_PORT=8893
|
||||
TELNET_PORT=14893
|
||||
+64
-55
@@ -22,12 +22,16 @@
|
||||
|
||||
RETVAL=0
|
||||
|
||||
JAVA_START_INSTANCES="server"
|
||||
SERVERS_DIR=/home/sailing/servers
|
||||
cd "${SERVERS_DIR}"
|
||||
JAVA_START_INSTANCES="$(find * -type d -prune)"
|
||||
GIT_REPOSITORY=/home/sailing/code
|
||||
APACHE_CONFIG_DIR=/etc/httpd/conf.d
|
||||
APACHE_INTERNALS_CONFIG_FILE="$APACHE_CONFIG_DIR/001-internals.conf"
|
||||
EC2_METADATA_CMD=/opt/aws/bin/ec2-metadata
|
||||
REBOOT_INDICATOR=/var/run/is-rebooted
|
||||
|
||||
echo "Executing with $1" >>/var/log/sailing.out
|
||||
echo "Executing with $1 at `date`" >>/var/log/sailing.err
|
||||
|
||||
start_tmux() {
|
||||
su - sailing -c "/home/sailing/bin/tmuxConsole.sh unattended"
|
||||
@@ -35,47 +39,48 @@ start_tmux() {
|
||||
}
|
||||
|
||||
start_servers() {
|
||||
su - sailing -c "cd $GIT_REPOSITORY && git fetch && git merge origin/master" 2>>/var/log/sailing.err >>/var/log/sailing.out
|
||||
NUMBER_OF_INSTANCES=`echo "$JAVA_START_INSTANCES" | wc -w`
|
||||
MEMORY_PER_INSTANCE_IN_MB=`cat /proc/meminfo | grep MemTotal | awk '{printf("%i\n", ($2 / 1024 * 0.75 - 1500) / '$NUMBER_OF_INSTANCES' );}'`
|
||||
echo "Using ${MEMORY_PER_INSTANCE_IN_MB}MB as default heap size per instance."
|
||||
for conf in $JAVA_START_INSTANCES; do
|
||||
echo "Checking for amazon update..." >>/var/log/sailing.out
|
||||
echo "MEMORY=\"${MEMORY_PER_INSTANCE_IN_MB}m\"" >>$SERVERS_DIR/$conf/env.sh
|
||||
su - sailing -c "cd $SERVERS_DIR/$conf && $GIT_REPOSITORY/java/target/refreshInstance.sh auto-install" 2>>/var/log/sailing.err >>/var/log/sailing.out
|
||||
(
|
||||
# execute env.sh in a subshell which now has the same set of variables that the server will see
|
||||
source $SERVERS_DIR/$conf/env.sh
|
||||
echo "Starting Java server \"$conf\"" >>/var/log/sailing.out
|
||||
su - sailing -c "cd $SERVERS_DIR/$conf && ./start" 2>>/var/log/sailing.err >>/var/log/sailing.out
|
||||
server_name="`echo $SERVER_NAME | tr [A-Z] [a-z]`"
|
||||
echo "Appending macro invocation to $APACHE_CONFIG_DIR/001-events.conf to map internal IP $INSTANCE_INTERNAL_IP4 to plain server running $SERVER_PORT..." >>/var/log/sailing.out
|
||||
echo "Use Plain-SSL ${INSTANCE_INTERNAL_IP4} 127.0.0.1 $SERVER_PORT" >>$APACHE_CONFIG_DIR/001-events.conf
|
||||
echo "Appending macro invocation to $APACHE_CONFIG_DIR/001-events.conf to map ${server_name}.sapsailing.com to event with ID $EVENT_ID with server running on local port $SERVER_PORT..." >>/var/log/sailing.out
|
||||
echo "## EVENT ${server_name}" >>$APACHE_CONFIG_DIR/001-events.conf
|
||||
echo "Use Event-SSL ${server_name}.sapsailing.com \"$EVENT_ID\" 127.0.0.1 $SERVER_PORT" >>$APACHE_CONFIG_DIR/001-events.conf
|
||||
# check if an secondary event shall be pasted to 001-events.conf
|
||||
if [[ ${HTTP_SEC_EVENT} && ${HTTP_SEC_EVENT_ID} ]]; then
|
||||
http_sec_event="`echo $HTTP_SEC_EVENT | tr [A-Z] [a-z]`"
|
||||
echo "Appending macro invocation to $APACHE_CONFIG_DIR/001-events.conf to map ${http_sec_event}.sapsailing.com to event with ID ${HTTP_SEC_EVENT_ID} with server running on local port $SERVER_PORT..." >>/var/log/sailing.out
|
||||
echo "## EVENT ${http_sec_event}" >>$APACHE_CONFIG_DIR/001-events.conf
|
||||
echo "Use Event ${http_sec_event}.sapsailing.com \"$HTTP_SEC_EVENT_ID\" 127.0.0.1 $SERVER_PORT" >>$APACHE_CONFIG_DIR/001-events.conf
|
||||
echo "Use Event-SSL ${http_sec_event}.sapsailing.com \"$HTTP_SEC_EVENT_ID\" 127.0.0.1 $SERVER_PORT" >>$APACHE_CONFIG_DIR/001-events.conf
|
||||
fi
|
||||
HTTP_LOGROTATE=/etc/logrotate.d/httpd
|
||||
echo "Patching $HTTP_LOGROTATE so that old logs go to /var/log/old/$SERVER_NAME/$INSTANCE_IP4" >>/var/log/sailing.out
|
||||
sed -i -e "s/\/var\/log\/old\/\([^/]*\)\/\([^/ ]*\)/\/var\/log\/old\/$SERVER_NAME\/$INSTANCE_IP4/" $HTTP_LOGROTATE
|
||||
# terminating the subshell will forget all the variable assignments brought in by env.sh, clearing for the next server instance
|
||||
)
|
||||
RETVAL=$?
|
||||
[ $RETVAL -eq 0 ] && success || failure
|
||||
done
|
||||
launch_httpd
|
||||
if which $EC2_METADATA_CMD && $EC2_METADATA_CMD -d | sed "s/user-data\: //g" | grep "^image-upgrade$"; then
|
||||
echo "Found image-upgrade in EC2 user data; upgrading image, then probably shutting down for AMI creation depending on the no-shutdown user data string..." >>/var/log/sailing.err
|
||||
$GIT_REPOSITORY/configuration/imageupgrade.sh
|
||||
else
|
||||
echo "No image-upgrade request found in EC2 user data $($EC2_METADATA_CMD -d); proceeding with regular server launch..." >>/var/log/sailing.err
|
||||
echo "Servers to launch: ${JAVA_START_INSTANCES}" >>/var/log/sailing.err
|
||||
NUMBER_OF_INSTANCES=`echo "$JAVA_START_INSTANCES" | wc -w`
|
||||
FIRST_SERVER=`echo $JAVA_START_INSTANCES | awk '{print $1;}'`
|
||||
if [ -f "${REBOOT_INDICATOR}" ]; then
|
||||
echo "This is a re-boot. No EC2 user data is evaluated for server configuration; no server configuration is performed. Only configured applications are launched." >>/var/log/sailing.err
|
||||
for conf in ${JAVA_START_INSTANCES}; do
|
||||
su - sailing -c "cd ${SERVERS_DIR}/${conf} && ./start" 2>>/var/log/sailing.err >>/var/log/sailing.err
|
||||
done
|
||||
else
|
||||
echo "This is a first-time boot. EC2 user data is evaluated for potential application deployment and configuration; reverse proxy entries may be created, and applications are launched." >>/var/log/sailing.err
|
||||
if [ ${NUMBER_OF_INSTANCES} -gt 1 ]; then
|
||||
echo "More than one server cannot be configured from user data; only configuring ${FIRST_SERVER}" >>/var/log/sailing.err
|
||||
fi
|
||||
configure_and_start_server "${FIRST_SERVER}"
|
||||
create_basic_httpd_config
|
||||
reload_httpd
|
||||
echo 1 >"${REBOOT_INDICATOR}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Call with the server directory name (not the full path, just a single element from ${JAVA_START_INSTANCE}) as parameter
|
||||
# Example: configure_and_start_server server
|
||||
# This is expected to be called only in case there is only one server to configure; otherwise, the same EC2 user data
|
||||
# would get applied to all application configurations which would not be a good idea.
|
||||
configure_and_start_server() {
|
||||
conf="$1"
|
||||
mkdir -p "${SERVERS_DIR}/${conf}" >/dev/null 2>/dev/null
|
||||
local ENV_SH="${SERVERS_DIR}/$conf/env.sh"
|
||||
su - sailing -c "cd ${SERVERS_DIR}/${conf} && ${GIT_REPOSITORY}/java/target/refreshInstance.sh auto-install; ./start; ./defineReverseProxyMappings.sh" 2>>/var/log/sailing.err >>/var/log/sailing.err
|
||||
RETVAL=$?
|
||||
[ $RETVAL -eq 0 ] && success || failure
|
||||
}
|
||||
|
||||
stop_servers() {
|
||||
for conf in $JAVA_START_INSTANCES; do
|
||||
echo "Stopping Java server $conf" >> /var/log/sailing.out
|
||||
echo "Stopping Java server $conf" >> /var/log/sailing.err
|
||||
su - sailing -c "cd $SERVERS_DIR/$conf && ./stop"
|
||||
RETVAL=$?
|
||||
[ $RETVAL -eq 0 ] && success || failure
|
||||
@@ -85,41 +90,45 @@ stop_servers() {
|
||||
}
|
||||
|
||||
sync_logs() {
|
||||
echo "Executing logrotate followed by a sync to ensure that logs are synchronized" >> /var/log/sailing.out
|
||||
echo "Executing logrotate followed by a sync to ensure that logs are synchronized" >> /var/log/sailing.err
|
||||
logrotate -f /etc/logrotate.conf
|
||||
sync
|
||||
}
|
||||
|
||||
# launch_httpd(server_name, port, event_id)
|
||||
launch_httpd() {
|
||||
echo "Will try to launch httpd so this replica can work with an ELB easily." >>/var/log/sailing.out
|
||||
reload_httpd() {
|
||||
echo "Will try to launch httpd so this replica can work with an ELB easily." >>/var/log/sailing.err
|
||||
if [ -x /etc/init.d/httpd ]; then
|
||||
FIRST_SERVER=`echo $JAVA_START_INSTANCES | awk '{print $1;}'`
|
||||
source $SERVERS_DIR/$FIRST_SERVER/env.sh
|
||||
# Append Apache macro invocation for /internal-server-status based on mod_status and INSTANCE_DNS to $APACHE_CONFIG_DIR/001-events.conf
|
||||
echo "Appending macro usage for $INSTANCE_DNS/internal-server-status URL for mod_status based Apache monitoring to $APACHE_CONFIG_DIR/001-events.conf" >>/var/log/sailing.out
|
||||
echo "## SERVER STATUS" >>$APACHE_CONFIG_DIR/001-events.conf
|
||||
echo "Use Status $INSTANCE_DNS internal-server-status" >>$APACHE_CONFIG_DIR/001-events.conf
|
||||
echo "Launching httpd..." >>/var/log/sailing.out
|
||||
service httpd start
|
||||
echo "Reloading httpd configuration..." >>/var/log/sailing.err
|
||||
service httpd reload
|
||||
else
|
||||
echo "Can't launch httpd; start script doesn't seem to be installed at /etc/init.d/httpd"
|
||||
echo "Can't launch httpd; start script doesn't seem to be installed at /etc/init.d/httpd"
|
||||
fi
|
||||
}
|
||||
|
||||
# Adds a Plain-SSL mapping to the first server's port and a mapping for /internal-server-status, both to 001-internals.conf
|
||||
create_basic_httpd_config() {
|
||||
FIRST_SERVER=`echo $JAVA_START_INSTANCES | awk '{print $1;}'`
|
||||
source $SERVERS_DIR/$FIRST_SERVER/env.sh
|
||||
echo "Writing macro invocation to ${APACHE_INTERNALS_CONFIG_FILE} to map internal IP $INSTANCE_INTERNAL_IP4 to plain server running $SERVER_PORT..." >>/var/log/sailing.err
|
||||
echo "Use Plain-SSL ${INSTANCE_INTERNAL_IP4} 127.0.0.1 $SERVER_PORT" >"${APACHE_INTERNALS_CONFIG_FILE}"
|
||||
# Append Apache macro invocation for /internal-server-status based on mod_status and INSTANCE_DNS to "${APACHE_INTERNALS_CONFIG_FILE}"
|
||||
echo "Appending macro usage for $INSTANCE_DNS/internal-server-status URL for mod_status based Apache monitoring to ${APACHE_INTERNALS_CONFIG_FILE}" >>/var/log/sailing.err
|
||||
echo "## SERVER STATUS" >>"${APACHE_INTERNALS_CONFIG_FILE}"
|
||||
echo "Use Status $INSTANCE_DNS internal-server-status" >>"${APACHE_INTERNALS_CONFIG_FILE}"
|
||||
}
|
||||
|
||||
stop_httpd() {
|
||||
if [ -x /etc/init.d/httpd ]; then
|
||||
service httpd stop
|
||||
echo "Stopped httpd..." >>/var/log/sailing.out
|
||||
echo "Stopped httpd..." >>/var/log/sailing.err
|
||||
fi
|
||||
}
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start)
|
||||
/usr/local/bin/mountnvmeswap
|
||||
/usr/sbin/update-motd
|
||||
start_servers
|
||||
/usr/sbin/update-motd
|
||||
touch /var/lock/subsys/sailing
|
||||
;;
|
||||
stop)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM donaldduck70/sapjvm8:8.1.062
|
||||
FROM donaldduck70/sapjvm8:8.1.064
|
||||
LABEL maintainer=axel.uhl@sap.com
|
||||
# Download and extract the release
|
||||
WORKDIR /home/sailing/servers/server
|
||||
|
||||
@@ -6,7 +6,7 @@ ENV JAVA_HOME=/opt/sapjvm_8
|
||||
WORKDIR /opt
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y wget unzip \
|
||||
&& curl --cookie eula_3_1_agreed=tools.hana.ondemand.com/developer-license-3_1.txt "https://tools.hana.ondemand.com/additional/sapjvm-8.1.062-linux-x64.zip" --output sapjvm8-linux-x64.zip \
|
||||
&& curl --cookie eula_3_1_agreed=tools.hana.ondemand.com/developer-license-3_1.txt "https://tools.hana.ondemand.com/additional/sapjvm-8.1.064-linux-x64.zip" --output sapjvm8-linux-x64.zip \
|
||||
&& unzip sapjvm8-linux-x64.zip \
|
||||
&& rm sapjvm8-linux-x64.zip \
|
||||
&& echo "export JAVA_HOME=/opt/sapjvm_8; export PATH=\${PATH}:/opt/sapjvm_8/bin" > /etc/profile.d/javahome.sh
|
||||
@@ -1,8 +1,9 @@
|
||||
#!/bin/bash
|
||||
read -p "Secretname: " SECRETNAME
|
||||
read -p "Docker username: " USERNAME
|
||||
read -p "Password: " -s PASSWORD
|
||||
read -p "
|
||||
e-Mail: " EMAIL
|
||||
|
||||
kubectl create secret docker-registry regcred --docker-server=https://index.docker.io/v1/ --docker-username=$USERNAME --docker-password=$PASSWORD --docker-email=$EMAIL
|
||||
kubectl create secret docker-registry $SECRETNAME --docker-server=https://index.docker.io/v1/ --docker-username=$USERNAME --docker-password=$PASSWORD --docker-email=$EMAIL
|
||||
|
||||
@@ -25,7 +25,7 @@ spec:
|
||||
selector:
|
||||
role: mongo
|
||||
---
|
||||
apiVersion: apps/v1beta1
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: mongo
|
||||
|
||||
@@ -33,6 +33,7 @@ SAP is at the center of today’s technology revolution, developing innovations
|
||||
* [[Amazon EC2|wiki/info/landscape/amazon-ec2]]
|
||||
* [[EC2 Backup Strategy|wiki/info/landscape/amazon-ec2-backup-strategy]]
|
||||
* [[Creating an EC2 image from scratch|wiki/info/landscape/creating-ec2-image-from-scratch]]
|
||||
* [[Upgrading an EC2 image|wiki/info/landscape/upgrading-ec2-image]]
|
||||
* [[Creating a webserver EC2 image from scratch|wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch]]
|
||||
* [[EC2 mail relaying vs. Amazon Simple E-Mail Service (SES)|wiki/info/landscape/mail-relaying]]
|
||||
* [[Establishing support@sapsailing.com with AWS SES, SNS, and Lambda|wiki/info/landscape/support-email]]
|
||||
@@ -43,7 +44,7 @@ SAP is at the center of today’s technology revolution, developing innovations
|
||||
* [[Typical Data Mining Scenarios|wiki/info/landscape/typical-data-mining-scenarios]]
|
||||
* [[Create clickable UI prototypes with Axure|wiki/info/landscape/ui-clickable-prototypes]]
|
||||
* [[Webdesign|wiki/info/landscape/webdesign]]
|
||||
|
||||
* [[sail-insight.com website|wiki/info/landscape/sail-insight.com-website]]
|
||||
|
||||
### Mobile
|
||||
|
||||
@@ -93,9 +94,11 @@ SAP is at the center of today’s technology revolution, developing innovations
|
||||
## HowTo
|
||||
|
||||
* [[Onboarding|wiki/howto/onboarding]]
|
||||
* [[Managing Events with the AdminConsole|wiki/howto/adminconsoleinstructions]]
|
||||
* [[Importing Sessions from Expedition|wiki/howto/expeditionimport]]
|
||||
* [[Checking our DBs for a user record by e-mail|wiki/howto/privacy]]
|
||||
* [[Managing ORC Performance Curve Regattas|wiki/howto/setup-orc-regatta]]
|
||||
* [[Qualtrics Surveys|wiki/howto/qualtrics/qualtrics]]
|
||||
|
||||
### Development
|
||||
|
||||
@@ -162,8 +165,7 @@ SAP is at the center of today’s technology revolution, developing innovations
|
||||
|
||||
## Internal services (not related to wiki but useful)
|
||||
|
||||
* [Bugzilla Issue Tracking System](http://bugzilla.sapsailing.com/bugzilla/)
|
||||
* [Bugzilla Issue Tracking System](https://bugzilla.sapsailing.com/bugzilla/)
|
||||
* [GIT Repository (SAP)](ssh://git.wdf.sap.corp:29418/SAPSail/sapsailingcapture.git)
|
||||
* [Maven Repository Browser](http://maven.sapsailing.com/maven/) (see [[how to setup repository for Android builds|wiki/info/mobile/racecommittee-app-environment]])
|
||||
* [Main Sailing Website](http://www.sapsailing.com)
|
||||
* [Visitor Statistics](http://analysis.sapsailing.com/)
|
||||
* [Maven Repository Browser](https://maven.sapsailing.com/maven/) (see [[how to setup repository for Android builds|wiki/info/mobile/racecommittee-app-environment]])
|
||||
* [Main Sailing Website](https://www.sapsailing.com)
|
||||
@@ -1,8 +1,4 @@
|
||||
/* InfoPlist.strings
|
||||
SAPTracker
|
||||
|
||||
Created by Raimund Wege on 04.11.16.
|
||||
Copyright © 2016 com.sap.sailing. All rights reserved. */
|
||||
/* InfoPlist.strings\n SAPTracker\n \n Created by Raimund Wege on 04.11.16.\n Copyright © 2016 com.sap.sailing. All rights reserved. */
|
||||
"NSLocationAlwaysUsageDescription" = "Para poder realizar el rastreo de toda una carrera, es necesario que su teléfono continúe rastreando cuando apague o bloquee la pantalla, lo que ayuda a ahorrar batería y evita tener que parar el proceso de rastreo de forma involuntaria.";
|
||||
|
||||
"NSLocationWhenInUseUsageDescription" = "Para poder realizar el rastreo de toda una carrera, es necesario que su teléfono continúe rastreando cuando apague o bloquee la pantalla, lo que ayuda a ahorrar batería y evita tener que parar el proceso de rastreo de forma involuntaria.";
|
||||
|
||||
Binary file not shown.
@@ -1,8 +1,4 @@
|
||||
/* InfoPlist.strings
|
||||
SAPTracker
|
||||
|
||||
Created by Raimund Wege on 04.11.16.
|
||||
Copyright © 2016 com.sap.sailing. All rights reserved. */
|
||||
/* InfoPlist.strings\n SAPTracker\n \n Created by Raimund Wege on 04.11.16.\n Copyright © 2016 com.sap.sailing. All rights reserved. */
|
||||
"NSLocationAlwaysUsageDescription" = "Pour pouvoir suivre l'intégralité de votre course, votre téléphone doit continuer le suivi même si vous l'éteignez ou verrouillez l'écran (pour économiser de l'énergie). Ainsi, vous évitez un arrêt non voulu du suivi.";
|
||||
|
||||
"NSLocationWhenInUseUsageDescription" = "Pour pouvoir suivre l'intégralité de votre course, votre téléphone doit continuer le suivi même si vous l'éteignez ou verrouillez l'écran (pour économiser de l'énergie). Ainsi, vous évitez un arrêt non voulu du suivi.";
|
||||
|
||||
Binary file not shown.
Loaded 100 of 2115 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user