Last modified 2 days ago
List of MOLGENIS servers
Table of Contents
These are production servers: For now:
- Apache runs on 80
- Molgenis runs on 8080 (either via Tomcat or standalone)
| Server | Alias | Server Port | Connector Port | Application | App name | Contact | Backup? | GPFS |
| http://molgenis01.target.rug.nl | Static downloads for all apps | 8080 | NA | NA | NA | mswertz | n | |
| http://molgenis02.target.rug.nl | http://www.xqtl.org/stable | 8080 | NA | xQTL demo | xqtl | jvelde | n | |
| http://molgenis03.target.rug.nl | http://fwnstable.animaldb.org | 8080 | NA | AnimalDDB | animaldb | eroos | SQL dump copied to GPFS daily | n |
| http://molgenis04.target.rug.nl | http://www.wormqtl.org | 8080 | NA | WormQTL | wormqtl | jvelde | y | |
| http://molgenis05.target.rug.nl | http://www.deb-central.org | 8080 | NA | COL7A1 | rwagner | n | ||
| http://molgenis06.target.rug.nl | na | 8080 | NA | BBMRI Catalogue | bbmri_gcc.war | antonakd | n | |
| http://molgenis07.target.rug.nl | LFN | 8080 | NA | Learning From Nature | xqtl | jvelde | n | |
| http://molgenis08.target.rug.nl | IBD | 8080 | NA | Parel IBD | xqtl | jvelde | y | |
| http://molgenis09.target.rug.nl | http://www.chd7.org | 80 | NA | CHD7 | rwagner | n | ||
| http://molgenis10.target.rug.nl | TIFN + GIDS | roan | n | |||||
| http://molgenis11.target.rug.nl | 80 | NA | designgg | jvelde | n | |||
| http://molgenis12.target.rug.nl | 80 | NA | c2cards | rwagner | n | |||
| http://molgenis14.target.rug.nl | 80 | NA | GoNL | rwagner + pneerincx | n |
List of MOLGENIS test servers
These are test servers that we may destroy at any time
| vm7.target.rug.nl | 8305 | 8380 | ngs_test | rwagner | |
| vm7.target.rug.nl | 8405 | 8480 | autodeploy | eroos | |
| vm7.target.rug.nl | 7005 | 7080 | c2cards | rwagner | |
| vm7.target.rug.nl | - | 9000 through 9020 | xQTL apps and DesignGG | jvelde | |
| application32.target.rug.nl | - | 9000 through 9020 | Reserved for xQTL / DesignGG / et al. | jvelde | |
| vm7.target.rug.nl | 6405 | 6480 | CVDB | rwagner | |
| vm7.target.rug.nl | 7778 | 7777 | Lifelines | lifelines | antonakd |
| vm7.target.rug.nl | 9998 | 9999 | compute | compute | george |
| vm7.target.rug.nl | 7305 | 7380 | humanpathwaydb | rwagner + morris | |
| vm7.target.rug.nl | 7405 | 7480 | computegonl | computegonl | freerk |
| vm7.target.rug.nl | 7605 | 7680 | chado | rwagner | |
| vm7.target.rug.nl | - | 11000 through 12000 | Used for selenium tests | jvelde | |
| application32.target.rug.nl | - | 11000 through 12000 | Reserved for selenium tests | jvelde | |
| vm7.target.rug.nl | 4444 | 4888 | Catalogue | catalogue.war | antonakd, chao |
| vm7.target.rug.nl | ? | ? | scrum_online | Standalone | eroos |
| vm7.target.rug.nl | ? | ? | animaldb | Standalone | eroos |
FAQ for servers and VMs
General
- What is a virtual machine? - VM is a server that physically runs on top of another server. http://en.wikipedia.org/wiki/Virtual_machine
- What is the advantage? - You can copy VMs easily to other hardware without need of reinstall (in particular useful if hardware brakes).
- Where do we use our VMs for? - for all our MOLGENIS deployments.
- How request one? - Ask Morris to add your new VM to the above list.
- Can VMs be automatically created and killed? - No, currently all server startup/shutdown goes via Ger or Wietze
Access
- What kind of account do I need for VM access, and where do I get it? You need the standard LDAP in gcc group.
- How do I get a /home/myname directory? - Get somebody having root to create it for you on a particular vm (Ger, Morris, Wietze, ...)
- How do I log in to a VM? - From UMCG ssh yourname@…. From home first go via vm7.target.rug.nl
- Do we use SSH keys for authentication? - No. For the moment everybody can setup their own keys if they like
- Is my account centralized across all VMs? - Yes. One login and password. Exceptions: vm7.target.rug.nl and gbic.target.rug.nl and millipede.service.rug.nl
- How do I install an additional application or library on a VM? - Binaries you can just put on your %PATH; otherwise as a 'root' to install RPMs
- Do I have root access on the VM's? - No. We aim to have VMs work without root access and have all software installed once centrally.
- Who have root access and when would they use it? - Ger, Morris, Wietze, ...
- Can I be a sudoer on a VM? Should I be? - QUESTION: can we install sudo on our servers??
Operating system
- Which OS do the VMs run? SUSE 11.x
- Is there anything I should pay special attention to?
- What are some basic commands and tools to get me started?
Storage and backups
- What is GPFS? - GPFS is our central storage. We have a small share of it at /target/gpfs2/gcc/.
- What is the relation to the VMs? - All VMs have access to the shared storage always using the same path /target/gpfs2/gcc/.
- When should I work on the local drive, and when on GPFS?
- How do I access the GPFS? Do I need additional permissions?
- Are database better located on the local drive, or on GPFS?
- What locations are suitable for certain data or user groups on GPFS?
- Can I request additional local harddrive space, or other upgrades like CPU or RAM?
- Are the VMs automatically backupped? If not can I request this? - BIG TODO
- Which folders on the VMs or GPFS are backupped? How can I verify or request this? - BIG TODO. Are whole VMs backupped?
- How do I restore a backup? - BIG TODO
Configuration
- How is my VM configured regarding to access and security, other than SSH/LDAP? - Everybody in 'gcc' group can login via ssh only.
- Where do I configure e.g. the firewall or proxy settings of a VM?
- Should I edit this if I can, and if so, what could go wrong?
- Which ports are opened by default, and what is their function? - Standard port 80 and port 8080 are open.
- How can I tweak memory usage of my applications? - TODO howto do this with ANT and Tomcat startup script
- How can I tweak memory usage of mysql? - TODO howto my.conf. In principle each VM should be preoptimized
- Can I monitor CPU, RAM, network or drive IO? - TODO
Hosting
- What processes should be run under which user, with regards to security? - TODO If with GPFS you ideally would like a user per app
- How secure should a demonstration system be, with regards to running tools, disk access, HTML exploits, etc? - TODO sandboxed (only local resources)
- How can I test this, and what is the worst case scenario? - Worst case: private data is shared or deleted; This should be prevented at all times.
- Should I prepare for this? - Yes: simplest solution is to limit access to local data only.
- Can I offer static files or HTML pages for download on a VM? How do I do this? - Put them in standard /srv/www/htdocs (served at port 80)
- Can I run other dynamic content scripts such as Perl / PHP via my VM? - No, please request if you need this
- How secure should a production system be? Should it be seperated from demonstration systems? - Yes
- What guarantees should or can I offer my customers? - TODO need recovery procedure; 1st line, nightly backup of the VM; 2nd line, complete reinstall
SOPs
- Install Java / ANT
Install and run standalone
##################################### # SOP: Installation of standalone + mysql app # on SUSE (any molgenis user) ##################################### #change line below to match your app app=animaldb #become molgenis user sudo su molgenis cd /srv/molgenis # if /srv/molgenis doesn't exist, ask 'root' user to run installation SOP #checkout your app mkdir $app cd $app svn co http://www.molgenis.org/svn/molgenis/trunk molgenis svn co http://www.molgenis.org/svn/molgenis_apps/trunk molgenis_app #create mysql db (if applicable) mysql -u molgenis -pmolgenis -e "create database $app"; #generate app cd molgenis_app ant -f build_$app.xml clean-generate-compile-test #run kill -9 `lsof -i :8080 -t` nohup ant -f build_$app.xml run &
Install on tomcat6 and mysql
##################################### # SOP: Installation of tomcat6 + mysql app (any gcc member) ##################################### #change line below to match your app app=animaldb #become molgenis user sudo su molgenis cd /srv/molgenis # if /srv/molgenis doesn't exist, ask 'root' user to run installation SOP #checkout mkdir $app cd $app svn co http://www.molgenis.org/svn/molgenis/trunk molgenis svn co http://www.molgenis.org/svn/molgenis_apps/trunk molgenis_apps cd molgenis_apps #create mysql mysql -u molgenis -pmolgenis -e "create database $app"; #generate war ant -f build_$app.xml clean-generate-compile-war #delete previous war, if updating rm /srv/tomcat6/webapps/$app.war #copy new war (tomcat will automatically reload the app) cp dist/war/$app.war /srv/tomcat6/webapps/$app.war
Create backup cron job
As root user edit /etc/crontab
00 04 * * * molgenis /usr/bin/mysqldump --user=molgenis --password=molgenis YOURDATABASENAME | gzip > /srv/molgenis/backups/YOURDATABASE_`date +%Y-%m-%d`.sql.gz
NB: this assumes the vm itself is backed up as well!!
Copy a file from sftp to molgenis VM
Upload your data to your home on GPFS2 using the sftp server:
See DataStorage
Then:
# login to Molgenis VM server ssh username@molgenisXX.target.rug.nl # Change to the molgenis user sudo su molgenis # Change your umask the change the default permissions for new files and dirs you create. umask 0077 # # Use secure copy to fetch 'dir' from another server with GPFS mounted to the Molgenis VM: # # Option A: From the sftp server to the current directory (note: path is relative and you have a different home on the sftp server.) scp -r username@sftp.gcc.rug.nl:home/username/dir ./ . # # Option B: From another server with GPFS mounted to the current directory (note: path is relative) scp -r username@sftp.gcc.rug.nl:dir ./ .
Installation of SUSE VM
##################################### # SOP: Installation of SUSE VM (root only) ##################################### # stop and unmount gpfs mmshutdown # mysql (assume installed and running) echo "grant all privileges on *.* to molgenis@localhost identified by 'molgenis'; flush privileges;" > mysqlconfig mysql -u root -p < mysqlconfig # install particlar java and javac versions [interactive] wget http://gbicdev.target.rug.nl/downloads/jdk-7u3-linux-x64.rpm zypper in jdk-7u3-linux-x64.rpm #update paths update-alternatives --install "/usr/bin/java" "java" "/usr/java/latest/jre/bin/java" 1 update-alternatives --set java "/usr/java/latest/jre/bin/java" update-alternatives --install "/usr/bin/javac" "javac" "/usr/java/latest/bin/javac" 1 update-alternatives --set javac "/usr/java/latest/bin/javac" update-alternatives --install "/usr/bin/jre" "jre" "/usr/java/latest/jre" 1 update-alternatives --set jre "/usr/java/latest/jre" echo "export JAVA_HOME=/usr/java/latest/" >> /srv/molgenis/.bashrc # create molgenis home directory mkdir /srv/molgenis chown -R molgenis /srv/molgenis # add su molgenis for all sudoers echo "%gcc ALL=(ALL) NOPASSWD:/bin/su molgenis" >> /etc/sudoers #add molgenis to restart tomcat echo "molgenis ALL=(ALL) NOPASSWD:/etc/init.d/tomcat6 restart" >> /etc/sudoers # assumes ant, tomcat, svn, libcurl, R installed (skipped for now) # zypper install tomcat6 wget http://download.opensuse.org/repositories/devel:/tools:/scm:/svn/SLE_11/x86_64/subversion-1.7.4-75.1.x86_64.rpm zypper in subversion-1.7.4-75.1.x86_64.rpm # use 'zypper search java' to see what packages are there matching search term # TODO: configure mysql large database echo "HOME=/srv/molgenis/" >> /etc/environment # allow molgenis user to add wars usermod -G tomcat molgenis
Upload metadata
to log in first time with admin/admin go to the molgenis_apps folder and type:
ant -f build_APP.xml updatedbfillmeta
replace APP with your app name
NOTE
If Ant gives you Error: Could not find or load main class org.apache.tools.ant.launch.Launcher, input this:
export JAVA_HOME=/usr/java/latest/
And try again.
How to change firewall
As admin edit /etc/iptables-access.sh