{"id":19367128,"url":"https://github.com/abailly/jepsen-vagrant","last_synced_at":"2025-04-23T14:31:43.987Z","repository":{"id":18294238,"uuid":"21467209","full_name":"abailly/jepsen-vagrant","owner":"abailly","description":"Vagrant box for running jepsen tests","archived":false,"fork":false,"pushed_at":"2015-08-19T10:02:31.000Z","size":162,"stargazers_count":12,"open_issues_count":1,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T16:11:44.027Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abailly.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":"2014-07-03T15:18:39.000Z","updated_at":"2018-11-13T00:17:27.000Z","dependencies_parsed_at":"2022-08-04T23:16:02.051Z","dependency_job_id":null,"html_url":"https://github.com/abailly/jepsen-vagrant","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/abailly%2Fjepsen-vagrant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abailly%2Fjepsen-vagrant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abailly%2Fjepsen-vagrant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abailly%2Fjepsen-vagrant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abailly","download_url":"https://codeload.github.com/abailly/jepsen-vagrant/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250451805,"owners_count":21432902,"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":[],"created_at":"2024-11-10T07:48:18.454Z","updated_at":"2025-04-23T14:31:43.748Z","avatar_url":"https://github.com/abailly.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Requirements\n\n* Vagrant version \u003e= 1.6.3\n\n# Running Jepsen\n\nThis directory contains a bunch of files to ease the setup of boxes for running [jepsen](http://github.com/aphyr/jepsen) tests. \nIt might be useful to people that do not run\nnatively on OSes providing lxc/containers implementation nor have access to dedicated testing infrastructure, yet want to study\njepsen, run the test suite it provides and test implementation for other databases/systems.\n\n* The `Vagrantfile`is a [vagrant](http://vagrantup.com) file (!) that creates a VM box containing all the needed tools to run\njepsen. For detailed usage please refer to Vagrant's documentation. Normally the following should give you, after a couple of\ncoffees, a working VM containing five configured LXC boxes configured for running jepsen:\n\n         vagrant up\n         ..... [long]\n         vagrant ssh\n         cd /jepsen\n         lein with-profile elasticsearch test :only jepsen.system.elasticsearch-test\n\n* Configuration of the vagrant's VM is provided as a bunch of scripts (yes, this should be\n  puppet/chef/salt/pick-your-own-scm-tool) which may be used independently from Vagrant itself:\n\n   * `setup.sh` install dev packages: git, java and lein\n   * `net.sh` setup the virtual network that connects all LXC boxes \n   * `lxc.sh` creates the five LXC boxes and configures them\n   *  `functions.sh` contains auxiliary functions useful to other scripts\n   * Note that scripts should be idempotent\n      \n* **Caveat**: Tests might need to be modified as the authentication configuration of LXC boxes is a bit rough. Modify the tests\n  accordingly by adding `:ssh` keys to the `core/run!`function's parameters. Normally, logging in as `root` with key\n  `~/.ssh/id_rsa` should work fine.\n\n* **Troubleshooting**:  If during provisioning, your terminal turn to gibberish, follow these steps to manually complete\n  provisioning:\n\n  First, fix your terminal:\n\n        reset\n\n  Next log in, repair the problem which I'm relatively sure will be wrong with your apt, and run the provisioning again manually:\n\n        vagrant ssh\n        cd /vagrant\n        sudo bash setup.sh # once this is complete, this vm will always be setup for jepsen\n        sudo bash net.sh # this needs to be run on each boot to setup the network for lxcs\n        sudo bash lxc.sh # this creates and/or starts the lxc containers, run once per boot\n\n  At this point, in 'ps auxf' output, you should see a bunch of lxc containers running things like ElasticSearch and RabbitMQ.  If not, restart the machine and re-run net.sh and lxc.sh .\n\n  Now you can run a sample command such as in Jepsen docs:\n  \n        lein with-profile +rabbitmq test jepsen.system.rabbitmq-test\n\n* As mentioned in Jepsen's own README, if you get errors about HostKey failure from jsch, you probably need to auth all of the vms:\n\n        for i in 1 2 3 4 5; do ssh-keyscan -t rsa n${i}; done \u003e\u003e ~/.ssh/known_hosts\n\n# TODO\n\n* Ensure all tests for all systems run correctly\n    * elasticsearch works fine\n    * etcd installation works fine but runner stays lock in the synchronization phase\n* Number and name of boxes should be parameterized\n* Provide the ability to build boxes using docker\n\n         \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabailly%2Fjepsen-vagrant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabailly%2Fjepsen-vagrant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabailly%2Fjepsen-vagrant/lists"}