Contributing is easy, the hardest part is knowing which project to add your pull request to.
We have a few internal Ansible tasks, but these are only for low level setup and a few features like custom tasks and the welcome message you see at the end of provisioning.
The first step to contributing is to bring up the example project:
git clone --recusive https://github.com/beetboxvm/beetbox && cd $_
This has been modified to use a debug mode which will:
- show more details when provisioning
provisioningdirectory into the VM, so it's editable and changes could be picked up by
- checkout the Ansible roles from their source repo, rather than from Ansible galaxy
From this point you can modify anything inside the
provisioning directory and apply changes with
Note: sometimes it's easier to disable (comment out) all roles when debugging, but be careful as there can be role dependencies.
Forking the project
Please follow these instructions to Fork a project on Github.
Next, you'll want to change your local repository to point at your new remote fork and add an upstream remote to keep it up-to-date.
git remote set-url origin https://github.com/YOUR_USERNAME/beetbox.git
git remote add upstream https://github.com/beetboxvm/beetbox.git
git fetch --all
Please follow these instructions to Sync a fork and keep it up-to-date.
Now you should be able to branch and push changes to your fork of the project.
Creating a PR
We use pull requests to accept changes to the project. Please read this article about using pull requests on Github.
If you find that the task/role you're updating isn't in the Beetbox core, this is because it is an external role. You can still contribute to these, however they are separate projects.
The roles we implement are listed in
The same applies to forking and creating PR's for these roles too, however you'll want to point the role repo to your fork rather than the Beetbox project.
git remote set-url origin [git URL of fork]
You can now commit and push changes to your fork for creating a PR on the external project.