Chef really needs some dependency injection type stuff like what juju has going on. So something can provide a 'load balancer' and your app can optionally use a 'load balancer' but your app doesn't need to hardcode that it's using nginx, or ha proxy, or elb, or whatever in it's cookbook.
A popular blog post on the topic is http://devopsanywhere.blogspot.com/2012/11/how-to-write-reus...
There is also the fact that none of these tools actually address cloud provisioning. They all work really well once you have your entire topology mapped out but do nothing to actually help with building that topology. That's why I'm hoping Terra takes over because it addresses this aspect of configuration management and I rather use something from Hashicorp than some other vendor.
It looks like their bash snippet for generating a certificate can be replaced with the `openssl_x509` resource from this openssl cookbook .
I'm surprised running `gem update --system` is working without specifying the path .
The openssl_x509 resource looks interesting. I'm going to take a look at it. Thanks for the link!
The bash resource works because it uses the system path by default. We actually no longer use that code, but rather install Ruby PPA packages now:
Thanks for the feedback, I've emailed Mathias to let him know about your suggestions.
Bug reports, suggestions for improvements, and pull requests related to the cookbook can also be filed directly here:
Since we've been seeing a lot of traffic from this article, I'd be happy to also answer questions here that HN folks might have about how Practicing Ruby works!
Since the project was great in so many ways, I also shared some additional content on my personal blog today: