Part 4: Ansible Tower

This article suffers from severe linkrot. You may remember that in January, I wrote a trilogy of blogposts surrounding the use of Ansible, as a handy guide to help y’all get started. I’ve decided to revisit this now, and write another part, about Ansible Tower. In the 6-odd months since I wrote Parts 1, 2 and 3 of my Getting Started with Ansible guide, it’s had over 10,000 unique visitors. I’m quite impressed with that alone....

July 21, 2014

Part 3: Ansible and Amazon Web Services

This no longer represents good practices. Use Terraform for deploying resources to AWS instead of Ansible. By this point, you should have read Part 1: Getting Started with Ansible, and Part 2: Deploying Applications with Ansible. If you haven’t, go and do it now. You should also be familar with some of the basic concept surrounding AWS deployment, how AWS works, and so on. So, you’ll have some idea how Ansible uses playbooks to control deployment to target hosts, and some idea of the capability for deploying code from version control systems (in Part 2, we used the Ansible git: module....

January 29, 2014

Part 2: Deploying Applications with Ansible

You should by now have worked your way through Part 1: Getting Started with Ansible. If you haven’t, go and do that now. In this article, I’ll be demonstrating a very simple application deployment workflow, deploying an insanely simple node.js application from a github repository, and configuring it to start with supervisord, and be reverse-proxied with Nginx. As with last time, we’ll be using Parallax as the starting point for this....

January 27, 2014

Part 1: Getting Started With Ansible

An introduction to Ansible Configuration Management A brief history of Configuration Management =========================================== CFEngine - Released 1993. Written in C Puppet - Released 2005 - Written in Ruby. Domain Specific Language (DSL. SSL Nightmare. Chef - Released 2009 - Written in Ruby, also a DSL, more like pure Ruby Juju - Released 2010, Python, Very ubuntu. Salt - Released 2011, Python, Never got it working right Ansible - Released 2012, Python....

January 26, 2014

VPN Technologies: A Primer

What does VPN stand for? Virtual Private Network. Moving on… What is a VPN? A VPN is a mechanism to extend a private network (like your LAN [Local Area Network]) across a public network (like the Internet). The upshot of this is, that you can connect two separate computers, each on their own LAN, across a VPN so that they appear to be on the same network; which, in a sense, they are....

January 12, 2014

Things That Concern Me: Unified Threat Management

We live in a dangerous world. It should come as no surprise to anyone who is a Citizen of the Internet, that the risks of interacting with others on the ’net is a somewhat dangerous business. Riskier still, is operating a server, or entire network with direct connection to the internet. The number of denial of service and code execution exploits has risen dramatically in the last decade, unsurprisingly. The number of black-hat hacking attempts (to use “hacking” from the vernacular of the media - rather than it’s true, nobler meaning) has also risen....

November 24, 2013

FakeRAID and Virtualisation

I’ve been tinkering with Virtualisation quite a bit recently. For a new project, without an allocated budget, I was asked to provide some simple Virtualisation capability, to hold them over until they get budget approval, and can buy their own hardware. I managed to rescue a Dell R510 server from the scrap heap, only to discover that it contains a Dell S300 “FakeRAID” card, that’s not supported by Linux (so KVM, Xen et al are out)....

November 14, 2013

When should I use eval()?

NEVER. That’s got that off my chest. eval() is possibly the most dangerous thing ever. It’s basically a way to execute arbitrary code from a string or variable. Here’s a few reasons why it’s dangerous. It leaves you open to injection attacks. In Javascript, eval() forces the engine to drop into Interpreter mode, which slows down your application, and it will remain slow, as there’s no opportunity for optimisation-level caching to take place....

October 7, 2013

How To: Find a rogue DHCP server on your network

Symptoms: Some clients are unable to connect to the internet. Some clients report a different IP address, subnet mask and default gateway, compared to others. Caveats: Without a managed switch fabric, this is considerably more difficult. Diagnosis: Allow a device to get an IP address from the rogue server. You might need to disable the main DHCP server to allow this to happen, as DHCP is a broadcast protocol, so it’s really a case of the early bird getting the worm....

September 27, 2013

Freeswitch on a Raspberry Pi

I’ve had a Raspberry Pi for ages now.. I got one free courtesy of Paypal at their Charity Hack in late 2012, and our team (see photo, I’m there!) went on to use it to create the (World’s First?) Raspberry Pi based Wifi Hotspot. I’ve wanted to do something potentially useful, definitely interesting, and probably rewarding with it for a while. I’ve also recently acquired an Arduino with Ethernet Shield, so that’s also been on my mind for another hack platform....

June 13, 2013