Microsoft NO-tepad

This may be old hat news to some people, but I’ve been out of the Micro$oft camp for some time now.  I did mention I was a Penguinista!

One of the roles I’m working on is to automate the installation of MSSQL server through the use of an unattended configuration file.  While working on this I came upon a very interesting problem.  There are some options that will be different in production environments from localised development environments so I’ve placed the configuration in the role’s templates folder.  The various dynamic values I want to ensure match environment types were replaced with {{ variables }}.  Sounds easy right? What could go wrong?

As I found out, plenty.  When I edited the files in Atom locally on my Development environment (Windows 7) the configuration file looks ok. It even looked fine on my personal development environment (Linux Mint 17) but when the role is ran against the virtualized environment (a Vagrant Virutalbox machine) it failed.  Opening the file on the guest there were some extra odd symbols at the start of the file that weren’t on the host.  And all the values I’d entered had changed to what looked like a mix of Russian Crylic and Chinese.

The configuration file I’m using had already been written by the Ops team to help them define standard settings for their SQL servers.  Except that they had edited those settings in Microsoft Notepad.  Which I recently found out places a binary byte marker at the start of the file thus corrupting it when attempting to parse it through Ansible’s Templates module that uses the Jinja 2 templating language.

When I recreated the file, keeping it as far away from Notepad as I digitally could, the role parsed the new template perfectly.

So moral of the story is don’t use Notepad!  Use a proper text editor like Notepad++ or Atom.

Hello world!

Supposedly the first post in your blog is the most important.  Capture the audience, state your intentions, introduce yourself yadda yadda yadda.  Sounds so easy until you sit there for half an hour with out a clue what to type.

Who am I, what am I, what do I do?  Existential dilemma aside all valid questions.

Those who know me well, know that I am a self certified Linux fan boy.  I love Linux! I use it as much as I can!  It’s been my main OS for nearly a decade and it has filled a major part of my career to date, so it may come as a surprise to many to find out that my current contract has almost no Linux technology.  My client is an entirely Windows based house with MSDN subscriptions to everything, yet they have employed me in the position as a DevOps consultant to analyse and implement improvements to their current development environments and software delivery processes.

There are many out there who think that DevOps is not something that can be successfully implemented into a windows based environment, but even though I come from the dark side of the force, I am going to take the challenge and prove that DevOps is not limited by technology, tools or operating systems, but is truly about the attitudes and willingness of people who want to improve their software development and delivery environments.

This blog is to help me keep track of my journey into implementing the processes, methodologies and some of the tools I’ve used in previous Linux based organisations into this Wintel house.  To talk about many of the challenges I face, the compromises I have had to and will have to make, and how I will bring about what is considered the impossible.