Skip to content

Instantly share code, notes, and snippets.

@vortec
Created January 3, 2014 14:46
Show Gist options
  • Select an option

  • Save vortec/8239009 to your computer and use it in GitHub Desktop.

Select an option

Save vortec/8239009 to your computer and use it in GitHub Desktop.
cnf: each of our services has its own git repository and some services depend
on each other. my goal is to ease and automate the setup of dev environments.
to do that, i need a Vagrantfile, a few scripts which are part of the provision
process and said git repositories (containing the services' code).
also, you convinced me that it's a good idea to keep the code outside the VM,
because it's better for various reasons (way it's supposed to be, can edit code
in editor on the host)
so, how do i get the vagrant files and service repositories out to the users?
i can think of three ways of doing that: a tarball containing vagrant files +
service repos, another git repository containing vagrant files + service repos
or either of them containing only the vagrant files and a provisioning script
that retrieves the service repos.
a) tarballs could easily contain the service repositories which a user need to
get up to speed, but they would lack user information (the remote login for
communicating with the git remote, mostly). also if something changes in the
vagrant files, the update process would be kind of complicated.
b) a git repository would give me version control and hooks that automatically
do a "vagrant reload --provision" if something changes. regarding the service
repositories, i could either staff them into the working tree which is a bad
idea (it will break things) or use git submodules which are, in my opinion,
very annoying and confusing.
c) let the a provision script gather the username which is needed for
communicating with git remote and write it into a shared folder. that would
give me the benefits of either a) _or_ b) and will do exactly what i need, but
doesn't conform to vagrants best practice of having code on the host.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment