Skip to content

Transfer Ljubljana Galaxy server instance to local infrastructures

Christophe Antoniewski edited this page Dec 23, 2018 · 5 revisions

The procedure has been tested in CentOS 7

  • Pull GalaxyKickStart Docker Image
docker pull artbio/galaxykickstart:xenial
  • Run a first time the container using the following command
docker run -d --privileged=true -p 80:80 -p 21:21 -e NAT_MASQUERADE=true -v /tmp/:/tmp/ -v /lubiana:/export artbio/galaxykickstart:xenial

Note that an exported folder /lubiana will be created. This can be adapted to your needs / configuration.

Pay also extra-attention to the port export command so that to adapt it to your infrastructure and firewall. (I have noticed that your galaxy instances were running on exotic ports, this is where you can tune -p 61257:80 for instance.

  • Stop and delete the container after checking its name with docker ps command
docker stop <container_name> && docker rm <container name>
  • upload the 25 Gb archive ljubljana_pigz.tar.gz within the /lubiana folder
wget https://storage.googleapis.com/ljubljana-data/ljubljana_pigz.tar.gz
  • remove the pre-existing (created at first docker container run) /lubiana/home and /lubiana/var folders
rm -rf /lubiana/home /lubiana/var
  • decompress the ljubljana_pigz.tar.gz
tar -xvzf ljubljana_pigz.tar.gz
  • you should now have galaxy-data being their in place of the previous /lubiana/home and /lubiana/var folders
  • Re-Run the docker container using the same command as before:
docker run -d --privileged=true -p 80:80 -p 21:21 -e NAT_MASQUERADE=true -v /tmp/:/tmp/ -v /lubiana:/export artbio/galaxykickstart:xenial

If everything was ok, you should now be able to access your instance and find all tools, data-libraries, histories and users.

To access the instance as an admin, use [email protected]:admin credentials

Bonus:

In this docker container, all galaxy related services are controlled by the service manager supervisor

to see the service, access inside the container as a bash session and type

supervisorctl status

to just restart galaxy:

supervisorctl restart galaxy:

to stop all or start all:

supervisorctl stop all
supervisorctl start all

In addition, you may have to tune the number of core taken by a job.

for instance look in /home/galaxy/galaxy/config/job_conf.xml at the --ntasks=2 --share and edit to have more or less cores attributed to jobs by default You may also look at the "limits" section

    <limits>
        <limit type="anonymous_user_concurrent_jobs">1</limit>
        <limit type="destination_user_concurrent_jobs" id="slurm_cluster">8</limit>
        <limit type="destination_total_concurrent_jobs" id="slurm_cluster">8</limit>
    </limits>

This was the settings I have used in Ljubljana and worked well.

  • Last important note: During the deployment of the docker container, slurm is set dynamically in function of the hardware of the local target machine. You should not have to take care of this. The settings of slurm can be accessed to (within the container) /etc/slurm-llnl/slurm.conf, usually the two last lines of this file are the important one !