Does it make sense?

I know it's useful when we have many servers/virtual machines, but I wanted to use these tools to manage my personal virtual machines.

I'm using virtualbox. sometimes I have to write something in Ruby, later in Python, from time to time, I need full Android SDK, or Java etc. After month or 2, my VM is a mess and in the end I'm starting with a fresh one and I have to start everything from the scratch. I'm not bash guru and I don't have, all these fancy bash scripts to do everything for me and it's why I'm looking for soemthing else.

I need something to organise my software/dependencies etc. And I came up with an idea. Why I can't use vagrant to spawn my virtual machines and Ansible/Chef/Puppet to manage the software, but does it make sens to you guys? I don't have experience with these tools (Ansible/Chef/Puppet) and I just read few brief notes about all of them and everyone says "there's much to learn"... Ansible looks to be the easiest one and Puppet the hardest...

I don't know if it's a lot, but I'm using one VM per week and after that time I would like to pick most interesting things from my chef/ansible/pupet scripts (some configs, some installed software), move them to mys scripts and destroy the VM. When I'll need it I would like to spawn it, choose recipe/puppet,ansible script and automagically instlal everything.

Could you give me any advice? Is it worth to use these tools, or old plain bash scripts + apt-get/aptitude would be best?

Mostly I'm using Debian/Ubuntu/Mint based VMs. Sometimes Fedora/CentOS.

closed as primarily opinion-based by Wesley, Ward, mdpc, dawud, MichelZ Apr 12 '14 at 14:55

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • sounds like you should be snapshotting your VMs so you can easily rollback when you don't want extraneous stuff anymore. That said, there's nothing wrong or weird about using management tools to, well, manage your systems :) – warren Jan 29 '14 at 16:23
  • We can't really tell you if something is "worth it" for your environment. That's a value judgement YOU have to make as the administrator. I can tell you what you want is technically possible/feasible, but I can't tell you if it would be more or less work than an alternative (like snapshotting) in your particular environment. – voretaq7 Apr 11 '14 at 22:08

I do this personally.

I will not enter if Puppet is harder or easier, but this is the tool I use and will explain here.

It has few great points :

  • Version your manifest file : Your needs will evolve. You might need your VM to come with ruby packaged and at a later point with some extra configuration. Puppet as a Vagrant provider - as the other you mentioned - will allow you to always spawn a VM with the last update you made to your manifest

  • Enjoy community contribution : All the software you mentioned has a great community, the fact that you can enjoy all their contribution will save you lot of redo and allow you to concentrate straight to the point.

  • Not fear failure or misconfiguration : VM's are cheap. really. Dropping a VM will be like vagrant destroy and then a new vagrant up and you'll be back on a working state VM. This way you won't fear / neither lost a substantial amount of time if something goes wrong

  • Sharing environment : I know you said personal, but if tomorrow you want to start working with a friend on a project that require lot of configuration, this schema will allow you to give him your manifest and he will be up and running in no time

I am sure I missed some points, but using Vagrant + Puppet definitely changed my workflow and it has been worth while. Both works well on the platform you mentioned.

Not the answer you're looking for? Browse other questions tagged or ask your own question.