Last week, I took a look at github boxen. Here are my thoughts:
- automated workstation setup rocks
- uses puppet, which is one of the major configuration management tools
- it uses librarian-puppet, which looks pretty sophisticated, too
- all dependencies, including project dependencies, are managed by a global
Puppetfile. This is not too bad, since in the puppet modules could provide some versioning themselves. Unfortunately, they rarely do. So it can happen that you have two projects that depend on two different versions of a module. That's why varant rocks for project setups.
- OS and OS versions are disregarded. All is tuned for OS X 10.8
- non-github puppet modules can be added with
mod "MODULE", :git => "path_to_git_repo". See librarian-puppet.
~/srcis where your project installations will be. It can be customized, see here
- depends on rbenv, so rvm is out of the picture since they are mutually exclusive. However, it looks as if this could be fixed soon since you always include a generic
Rubyinstead of a specific rbenv class.
I am still not sure if a tool like boxen is necessary for personal workstations. In teams like github I can understand it's use, but if you are working solo, you have other tools at your disposal:
- TimeMachine / Migration Assistant to create another installation just like your's.
- Vagrant for projects. For projects, Vagrant is definelty better than boxen[^my_opinion], since you have total control over machine and tools (versions).
I really like the idea of an automated machine setup. So I will definelty check boxen out later again. But for now, I stay with my old setup.
[^my_opinion]: As always, this is my opinion. If you feel like I am disregarding an important fact, please leave a comment.