gvlproject / gvl.ansible.playbook

Playbook for building the Genomics Virtual Laboratory
7 stars 4 forks source link

Attempting to install on CentOS. Question regarding the launcher #98

Open JamesJond opened 6 years ago

JamesJond commented 6 years ago

Hi,

I am attempting to replicate GVL on CentOS. We have some internal extensions we wanted to apply that only works on CentOS and wanted to see how easy it is to replicate GVL environment on CentOS image.

I have identified few other GitHub repositories that the Ansible playbook was pointing to in order to understand what packages are being installed underneath. What I didn't quite figure out was this part here:

You cannot directly launch the image without the Launcher because the launcher passes in some "user data" to contextualize the image, and manually performing this process is error-prone, inconvenient and therefore not recommended.

Could you provide me where I can find out about how exactly the launcher passes in the user data?

Much appreciated,

James

nuwang commented 6 years ago

Hi James,

Good to hear you're thinking of porting the GVL to centos - we'd be glad to have that contributed to the codebase. Just a note - if you're planning to run this on OpenStack, you will need to enable the EC2-API service.

The user-data that's passed in is actually a YAML file, which CloudLaunch formulates based on user selections, and is passed into the VM when it's created (the user_data parameter to boto's run_instances call). This user_data is then read in by cloudman from within the VM, which then initializes Galaxy based on the user_data parameters.

A sample would look as follows:

access_key: *************
bucket_default: cloudman-test
cloud_type: ec2
cluster_name: galaxy-cloud-18-01-28t15-42
cluster_storage_type: volume
cluster_templates:
- filesystem_templates:
  - archive_url: http://s3.amazonaws.com/cloudman/fs-archives/galaxyFS-20170622.tar.gz
    data_source: archive
    name: galaxy
    roles: galaxyTools,galaxyData
    type: volume
  - mount_point: /cvmfs/data.galaxyproject.org
    name: galaxyIndices
    roles: galaxyIndices
    type: cvmfs
  name: Galaxy
- filesystem_templates:
  - name: galaxy
    type: volume
  name: Data
cm_remote_filename: cm.tar.gz
ec2_conn_path: /
ec2_port: null
initial_cluster_type: Galaxy
is_secure: true
password: **********
post_start_script_url: null
region_endpoint: https://ec2.us-east-1.amazonaws.com
region_name: us-east-1
s3_conn_path: /
s3_host: https://s3.amazonaws.com
s3_port: null
secret_key: *****************
storage_size: 100
storage_type: volume
worker_post_start_script_url: null

The format is more fully described here: https://galaxyproject.org/cloudman/userdata/

Instead of formulating the above by hand, cloudlaunch will do that through a GUI. You can set up a cloudlaunch server: https://github.com/galaxyproject/cloudlaunch or use the public one.

Let us know if you need any more info.