Seems that I’ll work with Chef soon, so it’s time to review some lessons about it. After browsing the web for a while, I found that using Virtualbox to virtualize infrastructure and Vagrant to manage it as code is the easiest and fastest way to provision new lab environments for Chef.
The first step to start working is to create a baseline, a minimal workaround built with one server host and two nodes. The server host will have Chef Infra Server installed and client hosts will be minimal GNU/Linux hosts without agents and with SSH access enabled. This way nodes would be bootstrapped on demand.
Having this baseline is very quick and easy to create new Chef environments for several use cases, so the one I created is shared on GitLab. Although it’s a minimal environment, I designed it as a lab, so if you follow instructions in file README.md you will provision the infrastructure, bootstrap the nodes installing Chef Client into them and run a custom cookbook recipe to install Apache HTTP server. If you’re experienced in Chef you can simply clone the project and extend it for your needs.
If you didn’t try Chef before, this is a good starting point to learn. On the other hand, if you know Chef, this project could be a good baseline for your future developments. Anyway, I hope this post to be useful and you to continue sailing with good winds, buccaneers.