How to contribute to Jumpstart.


Fork the repository on GitHub.

Improvements / Minor Bugfixes

Submit pull requests to the dev branch on the repository. Your pull request will first go through testing, then will be manually approved and merged.

Major Bugfixes / Hotfixes

Submit pull requests directly master branch on the repository. Your pull request will go through testing, then will be manually reviewed for severity and will be merged.

Development Environment

Setting up a development environment is identical to using Jumpstart.

  1. Install pip

  2. Create a Python virtual environment in .venv within the git repository.

  3. Install ansible through pip

File Structure


The folder inventories/inventory contains the Ansible inventory used when running the application.


The folder playbooks/ contains the Ansible playbooks.


The playbook playbooks/configuration.yml is run if the user wants to customize their installation. This configuration playbook overwrites the user's configuration to global_vars/vars.yml.


The playbook playbooks/main.yml is called after the configuration playbook regardless of whether the user customizes their installation.

This playbook receives the variables in global_vars/vars.yml

This playbook calls the different roles for installation.


The roles are in the folder playbooks/roles.

These roles receive all the variables in global_vars/vars.yml

Continuous Integration

This repository is integrated with Travis CI. The continuous integration will test everything that is in the global_vars/vars.yml file.


In order to speed up the testing process, certain tasks can be ignored by using

when: is_travis is undefined

This is used in cases such as upgrading Homebrew with brew upgrade since the Travis CI macOS operating system is preinstalled with a variety of brew packages. Thus, if we upgrade Homebrew while testing, it increases the testing time by upwards of 6 minutes!

- name: Upgrading Homebrew
when: is_travis is not defined
upgrade_all: true