CentOS 7 & Varnish failing to start

Vanilla varnish fails to start after installation on CentOS 7 because of SELinux. I was getting this error when trying to start:

Failed to set permissions on ./vcl.NE6NDb0a.so: Operation not permitted
VCL compilation failed

Then it would fail. This is not obvious, but it’s due to SELinux. I found a bug report on RHEL over here.

To fix this, disable SELinux with this command

sudo setenforce 0

Then you can start varnish.

Posted in Automation | Leave a comment

Lead DevOps Engineer

Since May 2013, I’ve been with Thrillist Media Group, as a Web Applications Developer. Awesome place, awesome job, awesome people, all around the most excellent place I’ve ever worked.

A year after joining, I took on a new challenge there. I had been learning and making strides with automating our development environments. When I presented it to people, they loved it. So, they decided that I would be placed on the Developer Operations team, with the main idea being I would be the guy to automate not only the developer environment creation for all our services across tech, but also to automate the creation of staging and production environments for all the same as well.

I dove in, and I’ve loved every minute of it.

Fast forward a few months after transferring to DevOps, my supervisor took a new position elsewhere, and I was promoted to the lead of the department. I’ve refocused the efforts of my small team (myself and one other employee) into 3 facets I feel are best able to help the company: Automation, Monitoring, and Continuous Integration.

We use Ansible for automation. Fantastic tool, and we have yet to hit a wall in terms of what it can do.

Sensu is running our monitoring. We’re also planning on putting a graphing framework called Grafana in place before Black Friday to help us understand trends in our infrastructure.

Jenkins is our weapon of choice for Continuous Integration. Not only does it manage deployments, but honestly we’re using it for a lot more.

It’s been a really amazing summer and fall, and it looks to be getting even more interesting as we go into the holiday season with JackThreads.com, our retail arm, looking to kill it on Black Friday and Cyber Monday. However, with these tools working for us, I’m confident we’ll pretty much be able to sit back and watch the sales roll in.

I’ll also be refocusing the goal of this blog, because DevOps is the stuff I’m working on day to day. I’ve already written a couple of Ansible roles that I’ll be posting here. (and probably on the community-run Ansible Galaxy, as well) I’ve also got an idea for a Jenkins plugin that I might take on, but I’ve got to figure out how to write those first.

Thanks for reading!

Posted in Musings | Leave a comment

Homeless coders – Trees for Cars mobile app

Fantastic read, and I wish this guy all the best.

Grand was approached by a young programmer named Patrick McConlogue in mid-August with a choice: Take $100 or take an opportunity to learn how to code. Grand, who had been homeless since 2011 after he lost his job at MetLife and was priced out of his neighborhood when a high-rise went up on the next block, didn’t hesitate.

I tell my friends all the time, coding is a skill that you can take with you wherever you go, and make a difference in whichever endeavor you choose to be a part of. It should really be treated more like a trade than anything else, akin to being an electrician or a plumber, because at the end of the day, you have knowledge that anyone could learn, and if you haven’t learned something new every day, you’re doing something wrong.

If this guy has assimilated the skills it takes to create a mobile app in both iOS and Android, he can probably get himself a job paying a very decent amount in the next couple of weeks, especially with the exposure he’s going to get from the launch of this app.

Tagged | Leave a comment

BruceBlog: VIM Syntax Highlighting for Scala: A Bash One-Liner

Started learning Vim recently, and It’s been about 2 months since I’ve made the switch and I still learn new things about it every day. At Thrillist, we use several different languages, including Scala, which is a new one to me. Had to go out and find a syntax highlighter for it, and stumbled across this excellent one-liner. Sharing below!

Just for posterity, here is a Bash one-liner to download the plugins to handle syntax highlighting for Scala:

mkdir -p ~/.vim/{ftdetect,indent,syntax} && for d in ftdetect indent syntax ; do curl -o ~/.vim/$d/scala.vimhttps://raw.github.com/scala/scala-dist/master/tool-support/src/vim/$d/scala.vim; done
This is the kind of stuff that I hope to find more of and put up here.
Tagged | 1 Comment

Kerrick Long : FTP is so 90’s. Let’s deploy via Git instead!

This is an excellent post about how to manage your code in a more efficient way. I’ve replaced most of my deployment workflow with Git in one way or another, and I’ve totally seen the benefits. However, there has not been “one tutorial to rule them all” yet for setting up a version controlled development environment that pushes to production via git hooks. It’s something worth looking into and I think I’ll start writing something for it.

Tagged | Leave a comment

Internal Server Errors, and future infrastructure.

So on the second day of my decision to write every day, I’m blocked from writing by my server updating and erroring out my WordPress instance. Let this be a lesson to me: don’t put custom php.ini configurations in user’s directory, ever. I did it ages ago for myself, and of course totally forgot that it was even there, just hanging out while the system php.ini got updated.

Best practices for system administration I’m particularly bad at. I work with a couple of developer operations guys, who if they knew about this, would slap me across the face. I know enough to be dangerous, and this time it bit me in the ass.

I’ve worked at Thrillist for about 7 months now, and learned so damn much; it might be time to move beyond the HostGator VPS. There’s no reason that I couldn’t transfer everything over to a more dedicated platform, with more RAM and CPU power, and be able to script out a hosting signup platform. I’d love to automate a setup that integrated NGINX rather than Apache, for example, and I’ve always wanted to learn more about setting up email. I’m also pretty sure that I could automate setting up Google Apps for your domain, given someone signed up for the service and just wanted to point DNS stuff.


Posted in Musings | Leave a comment

Writing more often to exercise the writing muscle

I’ve been lazy for a while, which happens a month or so after I “re-launch” my blog. Every time. To be honest I’m not sure what the issue is with myself; I could lean towards the fact that “I’ve got a lot going on” but that doesn’t really fly because I’ve got extra time on the bus on the way back and forth from work. I don’t like the “I’m lazy” description, because all in all I think I do pretty well. I think that my issue is that I don’t treat writing like a job. Other things I think of as “my job” always get done, usually without a problem and on time. So, I read this article today, and in an attempt to change this behavior, I’m going to give this method a shot.

It was likely just over a year or two ago when I read a productivity tip Jerry Seinfeld gave about having a giant wall calendar and making an X across every day that he wrote jokes. His goal then became to not break the chain. If 750words shut down or turned off the “streak feature” it would be harder to stay motivated. People love seeing progress, in stories and in themselves.

Writing Rules

I’m going to put a calendar at my desk, and every day by 9am I’m going to publish a post. The post is going to be 300 words minimum, and will be well edited and fully realized. Each one will include an image. Because images are cool. Some might embed Youtube videos, although that’s a stretch because watching videos of people writing code is boring.

I think that writing every day, because it’s my job is a mindset that I have to assimilate, and once I do, I’ll be able to breeze through it every day. However, in the mean time, it might make for some shaky posts. Long term though I want to develop my “writing muscle” so that I can spin it up at any time.

Wish me luck!

Tagged | Leave a comment

Returning Hierarchical Data in a Single (Postgre) SQL Query

Andrew Bender brings us a great little tip about PostgreSQL.

When working with data in your backend code, you often need quick access to the relationships within your data model. Including nested JSON objects in your result set is a great way to accomplish this naturally. This approach works particularly well if you’re interfacing with the database using node.js or another platform with fast JSON decoding.

This almost makes me want to take a look at Postgre to see if it’s feasible for a project I’m working on, but I wonder about the performance implications.

Tagged | Leave a comment

Tomb Raider, Sleeping Dogs, and Hitman Absolution on sale 9/12 for $14.99

I hadn’t heard of Sleeping Dogs, but I’ve wanted to play the new Tomb Raider for a long time, and now I can get it for less than 30 bucks, so I think I’ll probably take the plunge and buy the bundle. Keep an eye on the thread in the link so that on Thursday when it gets update, you can get it. It’s a Steam deal, so you’ll get keys you can redeem.

Tagged | Leave a comment

Autoworkers of our generation – Greg Baugues

Greg Baugues is absolutely correct, about how developers are the autoworkers of this generation:

No one’s got it better than developers right now. When the most frequent complaint you hear is “I wish recruiters would stop spamming me with six-figure job offers,” life’s gotten pretty good.

Don’t get complacent, comfortable or stagnant. Most importantly, don’t be a dick. Connections with other people is part of what makes us desirable as employees.

I just came across a great site recently that can help developers with their networking: Treatin.gs is basically a “meet for coffee with someone new near you” sort of site. I’m not involved with them at all, but I met the technical co-founder the other day, and we had a great chat. Granted, they absolutely are aware of the recruiting potential for the site, but the fact is that developers can meet up with other developers, and have a nice talk about the strengths of their languages, or maybe server operations or whatever.

Tagged | Leave a comment