I would like to setup a simple environment for development (git, emacs, python, node + ?) and have it easily reproducible. Be able to run it on aws, digital ocean etc and locally. So far I can start a vm locally or on aws, using vagrant. But I havent done any provisioning. I have looked into puppet and a had a quick look at ansible. Both look overkill and kinda complicated for what I am trying to do, looks like they are more for setting up many "nodes". I just need basic installation for now, no services running on ports etc.
Guess shell scripts can be used, but then you are tied to the type of box (the os of the box). Is there something else? Or is ansible or puppet the way to go?
Edit: I mean to to just vagrant up, use git to pull / commit, then vagrant destroy when done. Also took a look all the [provisioners for vagrant](https://www.vagrantup.com/docs/provisioning/chef_solo.html), there are quite a few.
3 thoughts on “Provisioner for simple dev setup?”
You can use Vagrant to provison a VM using an inline script or an entrypoint script just like you could in Docker for example, the difference being a development VM versus possibly a production server.
Ansible is a configuration management tool which pushes configuration to nodes. Its main benefits are at scale, so it depends on your specific needs really. Maybe some more information?
You can make most modern tooling “fit” and only you can decide what works best for you.
I’d recommend Ansible, it’s fairly easy to pick up IMHO. I wrote a wrapper for it which works fairly well by now, and cuts down on configuration by focussing on single machine setups: https://freckles.io Its prototype quality though, with some documentation and tests missing and a few minor warts, and I have no idea how much sense it makes for anyone not me 🙂
But, as I said, Ansible itself it not that hard to pick up, and a perfect fit for what you try to do.
Ansible is quite easy compared to Puppet, give it a go otherwise your Vagrant file can include shell scripting: