{"id":19639029,"url":"https://github.com/timsutton/vagrant-bsdpy","last_synced_at":"2025-09-26T09:30:39.885Z","repository":{"id":26536199,"uuid":"29989472","full_name":"timsutton/vagrant-bsdpy","owner":"timsutton","description":"A basic Vagrant lab for testing/hacking BSDPy, a Python NetBoot server","archived":false,"fork":false,"pushed_at":"2015-05-13T19:34:19.000Z","size":216,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-15T00:04:31.610Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/timsutton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-28T21:36:50.000Z","updated_at":"2023-04-10T20:19:13.000Z","dependencies_parsed_at":"2022-08-29T10:51:02.970Z","dependency_job_id":null,"html_url":"https://github.com/timsutton/vagrant-bsdpy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/timsutton/vagrant-bsdpy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timsutton%2Fvagrant-bsdpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timsutton%2Fvagrant-bsdpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timsutton%2Fvagrant-bsdpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timsutton%2Fvagrant-bsdpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timsutton","download_url":"https://codeload.github.com/timsutton/vagrant-bsdpy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timsutton%2Fvagrant-bsdpy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277055568,"owners_count":25752824,"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","status":"online","status_checked_at":"2025-09-26T02:00:09.010Z","response_time":78,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-11T12:43:50.723Z","updated_at":"2025-09-26T09:30:39.643Z","avatar_url":"https://github.com/timsutton.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vagrant-bsdpy\nThis is a basic Vagrant lab for testing and hacking on [BSDPy](https://bitbucket.org/bruienne/bsdpy), a Python NetBoot server written by [Pepijn Bruienne](http://enterprisemac.bruienne.com). It is based on a Debian 8 (Jessie) box that supports both the `virtualbox` and `vmware_fusion` providers.\n\nThe default configuration is to use HTTP NBIs, but there is documentation in the Vagrantfile on how to configure synced folders for use with NFS NBIs. To be able to test this with other physical Macs, I configure a [public network interface](https://docs.vagrantup.com/v2/networking/public_network.html) in the Vagrantfile.\n\n## Components\n\nA NetBoot solution requires at least three services:\n\n* [BSDP](http://en.wikipedia.org/wiki/Boot_Service_Discovery_Protocol), implemented with BSDPy.\n* TFTP, implemented with [TFTPD-HPA](http://chschneider.eu/linux/server/tftpd-hpa.shtml).\n* NFS or HTTP for serving the actual boot image. This project uses the NFS kernel server, and Nginx for HTTP.\n\nThere is no vanilla DHCP solution included in this project. Clients will need to be able to acquire an IP address at boot time from elsewhere.\n\nThis project manages the BSDPy process using [runit](http://smarden.org/runit). Josh Timberman has a [great blog post](http://jtimberman.housepub.org/blog/2012/12/29/process-supervision-solved-problem) on this.\n\n## Setup\n\nClone this repo:\n\n```\ngit clone https://github.com/timsutton/vagrant-bsdpy\n```\n\nClone BSDPy from a branch/source of your choosing within the repo, for example:\n\n```\ncd vagrant-bsdpy\ngit clone https://bitbucket.org/bruienne/bsdpy\n```\n\nPut NBIs in the `nbi` directory.\n\nBring up the VM:\n\n`vagrant up`\n\nThis has been tested to work with both the default VirtualBox providers and the HashiCorp VMware providers. Specify the provider using the `--provider` option or by setting the `VAGRANT_DEFAULT_PROVIDER` environment variable.\n\nThis will provision the VM and set up the shared folder. At this point the BSDPy service should be running. You can also tail the logfile to view progress:\n\n`vagrant ssh -c \"tail -f /var/log/bsdpserver.log\"`\n\n## Runit config\n\nThe process will be started with the `run` script located at `/etc/sv/bsdpy/run`. This script is built when Vagrant provisions the machine, and the arguments can be customized by setting the `BSDPSERVER_ARGS` constant at the top of the Vagrantfile.\n\nUse `sv` to manage the service:\n\n```\nsv restart bsdpy\nsv stop bsdpy\nsv start bsdpy\nsv 1 bsdpy (send a USR1 signal to have BSDPy rescan images)\n```\n\nYou can also use typical init-style commands like `service restart bsdpy`.\n\n## Rsync\n\nIf you are using rsync synced folders (which might be the case if BSDPy is configured to point clients to NFS), don't forget to sync any changes you make to NBIs:\n\n`vagrant rsync`\n\nor have Vagrant poll for changes:\n\n`vagrant rsync-auto`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimsutton%2Fvagrant-bsdpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimsutton%2Fvagrant-bsdpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimsutton%2Fvagrant-bsdpy/lists"}