For Little Feedback I wanted to have a blog to release new features on and post other updates to. It’s a Rails application and I also wanted it to reside on the same top-level domain(www.littlefeedback.com/blog vs. blog.littlefeedback.com). There’s a couple routes that come to mind for doing this.
I was getting pretty tired of constantly running
vagrant provision after making changes to a pretty large playbook that I’ve been working on. The playbook I was working on has roles for setting up a full stack which takes a bit of time and you want to know that you can provision a server from scratch whenever you need.
Ansible is a systems automation tool, similar to Chef and Puppet but with a very different approach. Ansible doesn’t by default use a client-server model or a push-pull management style, it doesn’t leave any artifacts behind and doesn’t need to install anything to run on the server.
It’s really simple to have multiple workers going through your Delayed::Job queue and it’s just as easy to start monitoring them properly with Bluepill.
I like to be able to count down to big milestones in life. Whether it’s a big vacation, your birthday or the launch date for your new product.
I created makemeacountdown.com to help out with this as there’s nothing that exists on iOS to keep a countdown omnipresent. On the Android platform you can have widgets and there are plenty of countdown widgets that you can throw on your home screen. I wanted the constant reminder for that next big thing.
librarian-chef is a gem that makes installing and managing Chef cookbooks locally much easier. It’s
Bundler for Chef basically. You have a Cheffile that specifies your cookbook dependencies and then you just run
librarian-chef install to install those cookbooks. You can install cookbooks via refs, paths, urls, github, etc. The interface and setup is identical to Bundler.
We’re going to implement a few simple methods to go over getting started with testing in Ruby. You’ll first need Ruby installed of course, use RVM or rbenv to get Ruby setup on your machine. For this tutorial we’ll be using
Ruby 1.9.3. You’ll also need to know a few of the basics about Ruby such as seting variables and control structures.
Chef and Capistrano are the perfect pair when it comes to managing and deploying your web application to the cloud.
Chef is strictly responsible for managing the server, items like installing Ubuntu packages, configuring Nginx, Varnish, etc. Capistrano is strictly responsible for deploying new application code and running migrations. We’re also using capistrano-ext so that we can deploy to multiple stages which is nice and works really well with the Chef environment’s we’ve configured.
First you’ll need to register your application so that you can obtain your 37Signals client credentials. I recommend setting the redirect URI to
http://127.0.0.1/users/auth/37signals/callback so that you can test it locally if you need to. If you’re using pow.cx you can specify that symlink as the default and easily test your OAuth integration. Even better if you’re using the powder gem you can just run “powder default” from the app root and it’ll link that up as the default app which will then respond at 127.0.0.1.