I recently had to replace my main workstation because of a graphics card dying. It wasn’t all that big of a deal, thanks to the magic of regular backups and whatnot, but I found a very strange problem where when I tried to use knife to do any chef work that required editing anything in knife, I got the message: ERROR: RuntimeError: Please set EDITOR environment variable This was odd, since EDITOR was in fact set.
I am pleased to announce another goiardi (a Chef server written in go) release. Version 0.3.0 of goiardi adds the ability to save the in-memory data store and the search index to disk, rather than losing everything everytime the server restarts. If the options are set, goiardi will save when it receives a SIGTERM or SIGINT signal, as well as save in the background periodically. The interval defaults to five minutes, but can be specified as an option as well.
A while back, I decided that I would like to learn Go, which is a pretty neat language all around (in my humble opinion). I had to come up with some sort of project that would be ambitious enough to teach myself a lot of the language features, but not so huge that I’d give up in frustration. Then I thought of a name, and realized what I had to do.
At long last, I’ve cleaned up and generalized the cookbook we’ve been using to install lighttpd on our servers here, and finally released the Chef cookbook for lighttpd to the world. It works pretty similarly to the cookbooks for other webservers, so there aren’t really any surprises there. I have a few further things planned with it, like adding CentOS support and getting it to work with test-kitchen. In the meantime feel free to check it out, especially if you use or have used lighttpd in the past, and let me know if you have any suggestions.
If you have a “mature”, “legacy”, or just plain old application and are considering using Chef or similar to automate provisioning and deployment, you might be a little discouraged when you browse through the available cookbooks and see that the vast majority of them are written for the latest and greatest programs and frameworks. You might be discouraged at first, like I was, when you see tons of resources for rails apps and ngnix, but not so much for, say, mod_perl and lighttpd.
Automation’s great for ops, no matter the size of your workplace. I’ve noticed, however, that there seems to be a certain assumption that automating deploying and maintaining servers with something like Chef is most useful for huge outfits with dozens, hundreds, or thousands of servers. Undoubtedly it’s great for them, but I think that same kind of automation is important even if you’re the only ops guy at your company and you only manage a small handful of servers.
I’ve been given permission to release Daily Kos’ Chef cookbook for installing the Zeus Traffic Manager. It’s located at https://github.com/dailykos/zeus-zxtm on github, and I’ll be adding it to the community repository at Opscode soon. What it does: Installs Zeus Traffic Manager and does the basic configuration. There are some attributes to set in the cookbook for it to run properly, like the version, location of the Zeus installation tarball, etc.
Polls are beginning to close. Everything I’ve been working on for the last eleven months or so has been building up to this evening. Shaving down slow queries, optimizing perl, writing and improving Chef cookbooks, building custom Debian packages, even some C work. All these things and more were for tonight. We weathered one storm last week. Now, as they say in retail, it’s time for Christmas.
Linux on a S/390 or z/Machine is pretty similar to Linux running on any other architecture, but installing Chef on one is an interesting thought experiment. One major issue, though, is that binary packages are (not surprisingly) not built for s390 by Opscode, so you’ll have to do the more manual installation. First, unless you have a mainframe laying around, set up a Linux/390 VM running under Hercules. I found these instructions to be useful, but since I’m on a Mac I had to make a few changes:
Productivity is the greatest scourge a workplace can face. You want to make sure your workers aren’t too productive, but how do you do that? Sure, you could install Dwarf Fortress, but then you’d need to keep up with all the Dwarf Fortress updates. If you have your workers do it, they might get distracted and get work done while they should be playing Dwarf Fortress. What are you going to do?
Chef the automated systems stuff is very nice, but I’ve always felt its lack of a cookbook for Chef the programming language was a serious omission. This omission has been rectified. I give you a Chef cookbook for the Chef programming language. Here’s an example program from the main Chef site: Fibonacci Numbers with Caramel Sauce. This recipe prints the first 100 Fibonacci numbers. It uses an auxiliary recipe for caramel sauce to define Fibonacci numbers recursively.
I have too many Chef projects lying around in varying states of completion waiting to be spruced up and shared with the world. If left to my own devices I’ll keep putting it off, so I’m putting them down here to help remind myself to finish them and keep track of what they actually are. Encrypted cookbook and remote files for Chef. The cookbook file part is finished, but remote’s a work in progress.