This is an example of an Airtime Chef automated deployment, that we use internally for easily testing new releases and features.
This is NOT meant for production use.
It uses Vagrant, Opscode Chef (solo) 11.x Berkshelf.
Software includes apache2, php5, icecast2, postgresql, airtime.
- Virtualbox or VMware or anything that works for you with Vagrant.
- Vagrant '>= 1.5.2' and a Ubuntu Box (there's an excellent Vagrant VMware plugin)
- a working ruby dev environment with bundler: try homebrew for a good start on OSX
- some Vagrant plugins (unfortunately, as of lately, Vagrant-Bindle isn't maintained anymore)
Unfortunately, as of lately, Vagrant-Bindle isn't maintained anymore.
We'll use Vagrant-Cachier
$ vagrant plugin install vagrant-cachier
and Vagrant-Omnibus to ensure the desired version of Chef is installed.
$ vagrant plugin install vagrant-omnibus
$ vagrant plugin install vagrant-berkshelf --plugin-version 2.0.1
If you need to hack on cookbooks, you might need Chef binaries, tools and plugins. Go take a look at Chef-DK, the Chef Development Kit. It contains everything you neeed.
To manage cookbook dependencies, install Berkshelf:
$ bundle install --binstubs
$ ./bin/berks vendor cookbooks
Or if you use the above Chef-DK, just
$ berks vendor cookbooks
Here's a dependency graph:
This is an example to launch the default "airtime" Vagrant profile.
- VMware Fusion
$ vagrant up airtime --provider=vmware_fusion
- VirtualBox
$ vagrant up airtime --provider=virtualbox
Access your new Airtime installation:
- Airtime web GUI: http://localhost:8080
- Icecast stream: http://localhost:8000/airtime_128
If needed, you can access the box by SSH.
$ vagrant ssh
Airtime timezone is optionnaly to be configured
(updated by issuing knife role spaghetti
)