{"id":33257986,"url":"https://github.com/usegalaxy-eu/vgcn","last_synced_at":"2026-01-17T16:48:51.861Z","repository":{"id":25415131,"uuid":"103938934","full_name":"usegalaxy-eu/vgcn","owner":"usegalaxy-eu","description":"Virtual Galaxy Compute Nodes (vgcn)","archived":false,"fork":false,"pushed_at":"2025-12-19T13:36:30.000Z","size":52140,"stargazers_count":6,"open_issues_count":11,"forks_count":9,"subscribers_count":4,"default_branch":"dev","last_synced_at":"2025-12-20T22:19:20.172Z","etag":null,"topics":["ansible","bioinformatics","packer","usegalaxy","virtualization"],"latest_commit_sha":null,"homepage":"","language":"Python","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/usegalaxy-eu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-09-18T12:55:13.000Z","updated_at":"2025-01-10T16:28:28.000Z","dependencies_parsed_at":"2023-02-14T08:45:41.619Z","dependency_job_id":"704e151b-ec74-461e-934e-e862207d57be","html_url":"https://github.com/usegalaxy-eu/vgcn","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/usegalaxy-eu/vgcn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usegalaxy-eu%2Fvgcn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usegalaxy-eu%2Fvgcn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usegalaxy-eu%2Fvgcn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usegalaxy-eu%2Fvgcn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/usegalaxy-eu","download_url":"https://codeload.github.com/usegalaxy-eu/vgcn/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usegalaxy-eu%2Fvgcn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ansible","bioinformatics","packer","usegalaxy","virtualization"],"created_at":"2025-11-17T03:00:25.166Z","updated_at":"2026-01-17T16:48:51.833Z","avatar_url":"https://github.com/usegalaxy-eu.png","language":"Python","funding_links":[],"categories":["Awesome Galaxy"],"sub_categories":["Virtual Machines"],"readme":"# Virtual Galaxy Compute Nodes\n\n[Galaxy Europe](https://usegalaxy.eu/) runs jobs on compute nodes belonging\nto the\n[bwCloud](https://www.bw-cloud.org/)/[de.NBI-cloud](https://www.denbi.de/).\nThese compute nodes are known as \"Virtual Galaxy Compute Nodes\" (VGCN).\n\nVirtual Galaxy Compute Nodes boot from VGCN images, which are built off this\nrepository and made available as\n[GitHub releases](https://github.com/usegalaxy-eu/vgcn/releases) and on\n[this static site](https://usegalaxy.eu/static/vgcn/).\n\n## Virtual Galaxy Compute Node images\n\nVirtual Galaxy Compute Node images contain everything needed to run\nGalaxy jobs.\n\n- [Apptainer](https://apptainer.org/)\n- [CVMFS](https://cernvm.cern.ch/fs/)\n- [Docker](https://www.docker.com/)\n- [NFS](https://nfs.sourceforge.net/)\n- [Pulsar](https://github.com/galaxyproject/pulsar)\n- [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/)\n\nEach service can be further configured via\n[cloud-init](https://cloudinit.readthedocs.io/en/23.2.2/) scripts to meet \nspecific needs. A few setup ideas:\n\n- Like on usegalaxy.eu: one machine as the HTCondor master, the rest as job \n  runners.\n- Like usegalaxy.eu's remote clusters: one machine as the HTCondor master and\n  pulsar server, another as NFS file server, the rest as job runners.\n- For \"Bring Your own Compute\" (BYOC) use cases: A single node that acts as\n  HTCondor master, Pulsar server, and job runner.\n\n**Important:** HTCondor has a new authentication mechanism, which uses\npasswords and tokens, generated automatically during startup. The easiest and\nleast error-prone way to set this up is during\n[installation](https://htcondor.readthedocs.io/en/latest/getting-htcondor/admin-quick-start.html#administrative-quick-start-guide).\n\n```diff\n! This is why we removed HTCondor from public images.\n```\n\nYou can easily install it and set up your password by adding the `execute`\ninstallation line from the link above to your cloud-init script. There you can\nset your own password and host. Both should be identical on all machines you\nuse, the host is the hostname or IP address of your central manager - usually\nthe node that accepts Pulsar requests. An implementation in\n[Pulsar-Infrastructure-Playbook](https://github.com/usegalaxy-eu/pulsar-infrastructure-playbook)\nis in progress.\n\n## Build instructions\n\nMake sure the following packages are installed on your system.\n\n- [Packer](https://www.packer.io/downloads.html) \u003e= 1.9.1, \u003c 2\n- [QEMU](https://www.packer.io/downloads.html) \u003e= 6.2, \u003c 9\n- [Ansible](https://www.ansible.com/), see [requirements.txt](./requirements.txt)\n\nRun Packer to build the images.\n\n```shell\npacker build \\\n    -only=qemu.rockylinux-8.6-x86_64,qemu.rockylinux-9.2-x86_64 \\\n    -var=\"headless=true\" \\\n    -var='groups=[\"generic\", \"workers\", \"external\"]' \\\n    templates\n```\n\n- `-only=qemu.rockylinux-8.6-x86_64,qemu.rockylinux-9.2-x86_64`: selects the\n  underlying operating system on which the images will be based. One image will\n  be produced for each item. The argument can be omitted to produce images for\n  all supported operating systems. All builds use the\n  [QEMU builder](https://developer.hashicorp.com/packer/integrations/hashicorp/qemu/latest/components/builder/qemu),\n  hence the prefix. Supported operating systems are listed in\n  [build.pkr.hcl](templates/build.pkr.hcl).\n- `-var=\"headless=true\"`: display the screen of the QEMU virtual machines used to build the images by\n  setting this variable to false.\n- `-var='groups=[\"generic\", \"workers\", \"external\"]'`: Playbooks that the Packer\n  Ansible provisioner will run. VGCN standard images are built with the setting\n  `groups=[\"generic\", \"workers\", \"external\"]`. Add `workers-gpu` to the list\n  to get the GPU images. Read the comments in \n  [variables.pkr.hcl](templates/variables.pkr.hcl) for more details.\n- `templates`: the directory containing the Packer templates.\n\nOnce the images are built, they will be available in a new directory called\n\"images\".\n\n## Running VGCN images\n\nPlease see [https://github.com/usegalaxy-eu/terraform/](https://github.com/usegalaxy-eu/terraform/) for examples of how to launch and configure this.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusegalaxy-eu%2Fvgcn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fusegalaxy-eu%2Fvgcn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusegalaxy-eu%2Fvgcn/lists"}