{"id":27627684,"url":"https://github.com/galaxyproject/planemo-machine","last_synced_at":"2025-04-23T13:56:07.177Z","repository":{"id":25890451,"uuid":"29330933","full_name":"galaxyproject/planemo-machine","owner":"galaxyproject","description":"A packer.io configuration for building out Galaxy (http://galaxyproject.org/) tool development environments.","archived":false,"fork":false,"pushed_at":"2020-12-29T03:40:00.000Z","size":252,"stargazers_count":10,"open_issues_count":26,"forks_count":16,"subscribers_count":33,"default_branch":"master","last_synced_at":"2024-04-09T21:49:25.655Z","etag":null,"topics":["docker-image","planemo-machine","usegalaxy","virtualbox-ova"],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/galaxyproject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-16T03:30:12.000Z","updated_at":"2024-02-26T10:46:46.000Z","dependencies_parsed_at":"2022-08-07T11:16:07.756Z","dependency_job_id":null,"html_url":"https://github.com/galaxyproject/planemo-machine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galaxyproject%2Fplanemo-machine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galaxyproject%2Fplanemo-machine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galaxyproject%2Fplanemo-machine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galaxyproject%2Fplanemo-machine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/galaxyproject","download_url":"https://codeload.github.com/galaxyproject/planemo-machine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250444722,"owners_count":21431703,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-image","planemo-machine","usegalaxy","virtualbox-ova"],"created_at":"2025-04-23T13:56:02.093Z","updated_at":"2025-04-23T13:56:07.171Z","avatar_url":"https://github.com/galaxyproject.png","language":"HTML","funding_links":[],"categories":["Awesome Galaxy"],"sub_categories":["Virtual Machines"],"readme":"planemo-machine\n=====================\n\nA set of [packer](http://packer.io) and\n[ansible](http://www.ansible.com/) configuration files and scripts\nused to build [Ubuntu](http://www.ubuntu.com/) environment for\n[Galaxy](http://galaxyproject.org) tool development.\n\n[![Build Status](https://travis-ci.org/galaxyproject/planemo-machine.svg?branch=master)](https://travis-ci.org/galaxyproject/planemo-machine)\n\nSetup\n-----------------------\n\nThis project makes use of git submodules and before you build any planemo\nmachines, you'll need to initialize them:\n\n``make init``\n\nThis will simply execute the following command ``git submodule init \u0026\u0026 git submodule update``.\n\nExample Uses\n-----------------------\n\n * Build and register Vagrant box (named ``planemo``).\n\n``make vagrant``\n\n * Build a virtualbox OVA for this vagrant box.\n\n``make virtualbox``\n\nThe virtualbox OVA unlink the other variants will include a graphical environment ([Xubuntu](http://xubuntu.org/)) tailored for development (auto logins to the ``ubuntu`` user, configured with tools such as [Komodo](http://komodoide.com/komodo-edit/)).\n\n * Build a modified variant of the recipes with a Dockerfile directly\n     (skipping packer). Skipping packer makes it easier to iterate on and applicable\n     for tools like Docker Hub, the cost is some amount of duplication between\n     the ``Dockerfile`` in this directory and ``provision.yml``.\n\n``make docker``\n\nTo override the Docker command to use sudo for instance do\n\n``make docker DOCKER_COMMAND='sudo docker'``\n\n * Build docker image using development Dockerfile (``dev.Dockerfile``).\n     This Dockefile is broken out into more steps and will result in a much\n     larger final container but can be quicker to develop against since the\n     individual steps are checkmarked.\n\n``make docker-dev``\n\n * Build Docker image (using packer directly).\n\n``make docker-via-packer``\n\nThe VM version of this build process will enable Docker by default - but when\nbuilding a Docker image we disable this so the developer doesn't need to\nconfigure docker-in-docker functionality.\n\n * Build Google Compute Engine image (untested). Follow instructions on\n     https://www.packer.io/docs/builders/googlecompute.html, you will\n     need to download your account file to gce_account.json (or set a\n     path with ``-var 'gce_account_file=/path/to/account.json'``)\n\n``packer build -var 'gce_project_id=\u003cPROJECT_ID\u003e' --only googlecompute packer.json``\n\n * Build Amazon Web Services AMI (untested).\n\n``packer build -var 'ami_access_key=\u003cAWS ACCESS KEY\u003e' -var 'ami_secret_key=\u003cAWS SECRET KEY\u003e' --only googlecompute packer.json``\n\nHow it works\n------------\n\nThe file ``packer.json`` contains a description of steps to execute to\nprovision a box - broken out by where it is being provisioned (Docker,\nAWS,GCE, etc...). The main step is the ansible provisioning step preceeded\nimmediately by the execution of the ``setup_ansible.sh`` script. These steps\nare executed for all platforms. To get to that point however, the RAW image\nneeds to be configured - basically an Ubuntu 14.04 machine needs to be created\nwith a password-less sudoing user (defaulting to ``ubuntu`` but overridable\nusing ``-var 'username=XXX'`` argument to ``packer`` - see for instance\n``vagrant_create_box.sh`` script which overrides this to be ``ubuntu``).\n\nThe Ansible roles used to provision the box are found in ``roles`` and the\nansible playbook used to specify and configure them is ``provision.yml``.\nOverview of the roles:\n\n * ``galaxyprojectdotorg.cloudmanimage`` A subset of the CloudMan image role,\n   hopefully this can be refactored an trimmed down so this project and\n   CloudMan can share the same base (via Ansible Galaxy or gitsubmodules).\n * ``galaxyprojectdotorg.cloudmandatabase`` The database role from CloudMan\n   (maybe with added defaults that should be backported). Used to create\n   postgres database.\n * ``galaxyprojectdotorg.galaxy`` Nate's Galaxy image - clones Galaxy, fetches\n   eggs, sets up static configuration, etc...\n * ``galaxyprojectdotorg.galaxyextras`` New role created by extracting and\n   generalizing stuff in Bjoern's Galaxy stable. Sets up Slurm, Proftp,\n   Supervisor, uwsgi, nginx.\n * ``galaxyprojectdotorg.devbox`` New role created explicitly for allocating\n   a development box. Install ``linuxbrew``, ``planemo``, and a ``codebox``\n   IDE.\n\n * ``galaxyprojectdotorg.trackster``, ``smola.java`` - these are modified roles\n   from CloudMan that work but seem less important for the devbox. They are\n   commented out in provision.yml but should be added back in once things\n   stabilize to unify CloudMan and this project.\n\nIdeas and code borrowed from various places\n-------------------------------------------\n\n * https://github.com/galaxyproject/cloudman-image-playbook\n * https://github.com/bgruening/docker-galaxy-stable\n * https://www.packer.io/docs/\n * https://github.com/flomotlik/packer-example\n * https://github.com/eggsby/docker-ansible-packer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalaxyproject%2Fplanemo-machine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgalaxyproject%2Fplanemo-machine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalaxyproject%2Fplanemo-machine/lists"}