• Elasticsearch on AWS OpsWorks

    I really like Elastic search and have been impressed using qbox for a small ElasticSearch deployment, but recently needed to stand up a cluster for myself and decided to give it a go using Chef and Amazon OpsWorks. Once over the initial hurdles of the still-young OpsWorks, I’ve had a good experience using these in conjunction when deploying the Ultravisual infrastructure.

    After a small amount of WTF’s (26, to be exact), I’m happy to be able to release a Chef cookbook for deploying ElasticSearch via AWS OpsWorks. Happy searching

  • Flipboard

    In case you missed it, Ultravisual got acquired by Flipboard. We’re extremely excited to bring the knowledge born of hard-fought battles to a product and team that we greatly admire. I’m fortunate to have had the opportunity to create something awesome with the best people over the last few years and am looking forward to what comes next.

  • Cassandra 2.0.0 Package and Ubuntu

    I tried giving Cassandra 2.0.0 a whirl tonight by installing the dsc20 package from the DataStax Community repository but found that Cassandra would not start due to incompatible class files.  The error you’ll see in output.log looks something like this:

    CassandraDaemon : Unsupported major.minor version 51.0

    If you’ve done much in Java you’ll probably recognize that this is a version inconsistency and, sure enough, you need Java 7.  The dsc package doesn’t seem to specify this (and the opscenter-free package actually depends on java-6-jre-headless if you apt-cache show the package.

    To solve this you’re going to want to install Java 7 and update your configuration to set it as the default.

    sudo apt-get install java-7-jre
    sudo update-alternatives --config java

    The update-alternatives command will prompt you to choose which Java you’d like to use. After all this, give starting Cassandra another go and you should be all set.

    sudo service cassandra start
    sudo service cassandra status
  • AWS OpsWorks CookbookNotFound on Custom Repositories

    Since Amazon began offering OpsWorks earlier this year, I’ve been looking forward to giving it a go and picking up some Chef know-how in the process. I have come upon a rather painful issue where a single cookbook in my git repository’s root continuously threw Chef’s CookbookNotFound exception. After hours of futile trial and error and a heap of Googling I finally happened upon this thread in the AWS forums.

    The important takeaways are:

    • OpsWorks doesn’t currently handle single-cookbook repositories correctly.
    • Putting your cookbook in a subdirectory of the git repository should work.

    I suppose this explains why all of Amazon’s example cookbooks are parented under the same repository! To avoid this insanity in the future, you may as well just create the cookbook in a subdirectory of a git repository to begin with.

    mkdir my_app_cookbook
    cd my_app_cookbook
    git init
    knife cookbook create my_app -o ./
  • Great Find for Pretty JSON in Safari

    I finally got tired of going to the [really, really awesome] pro.jsonlint.com and decided to have a quick look for a Safari plugin. Sure enough, in about 6 seconds of searching, I found this safari-json-formatter on GitHub. Its advertised for Safari 5 but installs without issue and works great on Safari 6. Thanks, Rick Fletcher!