...
Login to the Nginx server. If you are using the project key pair it will look like this (make sure you have the key in your .ssh folder, get it from Nebula interface https://nebula.ncsa.illinois.edu/dashboard/project/access_and_security/:
Code Block ssh -i ~/.ssh/<key> ubuntu@<vm floating ip address>
Install Nginx:
Code Block apt-get install nginx
Edit nginx config
create and edit
Code Block sudo vim /etc/nginx/sites-available/gltg gl # creates file name gltg and opens vim editor (change to your key name)
populate config (this is bare min without ssl, more docs coming)
Code Block server { listen 80; client_max_body_size 0; proxy_read_timeout 300; # answer from server, 5 min proxy_send_timeout 300; # chunks to server, 5 min proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; port_in_redirect off; root /usr/share/nginx/html; index index.html index.htm; # Deny all attempts to access hidden files # such as .htaccess, .htpasswd, .DS_Store (Mac). location ~ /\. { deny all; } location / { try_files $uri $uri/ /index.html; } rewrite ^/geodashboard$ /geodashboard/ permanent; location /geodashboard { proxy_pass http://<geodashboard floating IP>:9000; # replace <geodashboard floating IP> with the floating IP of your geodashboard machine } rewrite ^/clowder$ /clowder/ permanent; location /clowder/ { proxy_pass http://<clowder floating IP>:9000; # replace <clowder floating IP> with the floating IP of your geodashboard machine } }
delete (soft link) of default config and enable new config
Code Block sudo rm /etc/nginx/sites-enabled/default sudo ln -s /etc/nginx/sites-available/gltg /etc/nginx/sites-enabled/gltg
Add (Edit) index file to root
For the tutorial we will only put a redirect to the /geodashboard route. If you want to put in a static landing page with links to /geodashboard, /clowder, etc, please do - everyone will love you.
Code Block sudo vim /usr/share/nginx/html/index.html # This is the root path in the config we just created
Add this text to file
Code Block <meta http-equiv="refresh" content="0; url=http:/geodashboard/" />
Install geodashboard-v3 https://opensource.ncsa.illinois.edu/bitbucket/projects/GEOD/repos/geodashboard-v3/browse (as of this documentation, geodashboard-v2 runs on the geodashboard server, but uses the v3 search page which is installed on the nginx server)
In the nginx root directory (where we put the redirect above), create a directory 'gd3' which contains the build files bundle.js, config.js, index.html. If v3 doesn't work, there is an issue that on a build an extra "}" needs to be added at the end of config.js
Code Block ls /usr/share/nginx/html/gd3 # if gd3 directory is in correct nginx root path, 'ls' will show you the v3 build files bundle.js config.js index.html
Get an ssl
Setup Clowder Server
- Setup Puppet (Getting started - Marcus will need to do before docs will be good)
- Login to foreman https://gonzo-foreman.ncsa.illinois.edu/hosts
- verify existence of host - the name will be <name of vm>.os.ncsa.edu
- puppet env
- production
- puppet classes
- clowder
or install java
Code Block sudo apt-get install default-jre
- maybe service puppet restart on host machine
- Login to foreman https://gonzo-foreman.ncsa.illinois.edu/hosts
- configure clowder
login to clowder machine
Edit /home/clowder/clowder/custom/custom.conf
clowder should (as in must) have a security token if exposed to internet. If using ssl, set:
Code Block securesocial.ssl=true
Code Block permissions = public application.context="/clowder/" initialAdmins="" # add admin emails between quotes smtp.host="smtp.ncsa.illinois.edu" # securesocial customization securesocial.onLoginGoTo=/clowder/ securesocial.onLogoutGoTo=/clowder/login securesocial.ssl=false securesocial.cookie.idleTimeoutInMinutes=1440 # rabbitmq clowder.rabbitmq.uri="amqp://clowder:***********@rabbitmq.ncsa.illinois.edu/clowder" # you'll need the security code clowder.rabbitmq.exchange="gltg-clowder-dev" # mongodb These are the IP addresses for the current mongodb servers mongodbURI="mongodb://141.142.209.172:27017,141.142.209.173:27017,141.142.209.174:27017/gltg?replicaSet=GLTG&maxpoolsize=100" # postgres postgres.user="***********" # you'll need the postgres username postgres.password="**************" # you'll need the postgres user password postgres.host="141.142.209.176" # This is the IP of the current postgres vm postgres.db="geostream-dev" # you can start by using one of the existing databases - this is for gltg-dev # cache geostream.cache=/home/clowder/cache # security options application.secret="******************************************************" # you'll need to create and application.secret (random) commKey=************ # you'll need to create commKey (random) # storage service.byteStorage=services.filesystem.DiskByteStorageService clowder.diskStorage.path="/home/clowder/data"
Edit /home/clowder/clowder/custom/play.plugins
Code Block 9992:services.RabbitmqPlugin 10005:services.PostgresPlugin
...
- Clowder Disk Storage
- Goto the clowder custom configuration /home/clowder/clowder/custom/custon.conf on the server you are copying from
find the path of clowder file storage - something like this
Code Block clowder.diskStorage.path="/home/clowder/data"
- Likewise create or get the clowder file storage path from the server you are copying to (might be same path):
- authentication
- create a key, or
- user auth
- rsync the data
in the source server
Code Block rsync -az /home/clowder/data/uploads <source server>:/home/clowder/data
For example using user auth from source server to target server 'kryptonite' by user 'luther'
Code Block rsync -az /home/clowder/data/uploads luther@kryptonite:/home/clowder/data
- Goto the clowder custom configuration /home/clowder/clowder/custom/custon.conf on the server you are copying from
- Postgresdb
On source machine in a directory where you have permissions to write, dump the postgres database (assumed named 'geostream')
Code Block sudo -u postgres pg_dump geostream > geostream.sql
- Scp the file to the target server
On the targer server, if you already have a geostream database
Code Block sudo -u postgres psql geostream < geostream.sql
- if you need a new database or to replace and existing database, look here Recreate a Database
- Mongodb
In a directory on the source VM
Code Block sudo mongodump
Copy the 'dump' file to the source VM
Restore the database on the target VM
Code Block sudo mongorestore --drop -h mongo-db-1:27017 dump