tylerwalts / framework-vagrant

A framework for keeping Vagrantfiles consistent between projects
0 stars 2 forks source link

Vagrant Plugin management #2

Open jrnt30 opened 11 years ago

jrnt30 commented 11 years ago

Look into an automated way (or building some checks into Sprint-zero installation) to manage Vagrant plugins for new project users. Currently the files rely on vagrant-aws, which is not installed with a vanilla vagrant install.

Either scripting the installation (like gradlew and grailsw do) if it's Vagrant/necessary plugins aren't already present or bootstrapping in some other way to notify the user would be helpful.

tylerwalts commented 10 years ago

I like that idea, and of putting into the sprint-zero installation, or having sprint-zero deploy some sort of launch wrapper script in the root repo that could check for all the things.

Having a launch/bootstrap/wrapper type of script might also be useful to get us on the path to a 1 command curl-based install.

How to check if vagrant-aws plugin is already installed?

jrnt30 commented 10 years ago

For checking if it's installed, we could execute something like "vagrant plugin list | grep aws". The one thing I did realize is that to make this truly useful, it would have to be more than something in the install script for SprintZero, since new team members wouldn't be running that, they would simply be running "vagrant up" which we do not currently bootstrap in.

Perhaps a better solution is to have an "install_local" script that new team members would run. This would execute all scripts in a "module install" directory. Then each module could be responsible for adding it's own exec to bootstrap itself. As the vagrant example, it would do the check for the vagrant bin and all required plugins.

tylerwalts commented 10 years ago

+1 on making the logic live in one or more of the artifacts that gets generated into the project repo.

How about something like:

With a sane default that ran allthethings or went into interactive mode to prompt for common use cases.

What do you think?

Written on my phone...Brief and unformatted