Category Archives: Uncategorized

A Windows Guy Learns DevOps, part i

As a 14 year IT veteran it would be an understatement to say that I know how to stay on top of technology trends. In this industry it’s not just a ‘good’ thing to do, but a survival requirement. Lately I’ve been a little complacent about things like keeping up with my certifications and researching subjects outside of my job-related duties. On my climb out of the slump I seemed to get reignited with the spark that originally led me to this career at the age of 17. Due to personal and professional obligations I’m unable to stay up until 5AM every other day to tinker with new things, but I can still spend a little time learning new things off of the job.

I’ve decided to put some effort into learning this whole DevOps thing that’s all of the rage on job postings. I understand the concepts already, but I’ve never had to put them into practice. Some of my previous jobs have had me doing some heavy scripting, but never anything like what I’ve researched for DevOps. The concept of clicking a button (or sending a command) and creating a new service instance whenever code is updated is just so cool to me. Like most battle-hardened system admins/engineers I absolutely HATE doing the same task more than twice if I can execute it with a script.

I don’t have much in the way of spare equipment to setup a lab so I’m going to test everything in Virtualbox if possible. My first server will be the base image for a majority of my test servers. I’ll be using CentOS 7 minimal install ISO.

More to follow.

OS Call Errors during Jenkins Build

Background

I’m in the process of creating a Jenkins slave node for a Django project that I am currently the Software Integrator for. There is a current build slave for version 1 of the product that runs on Windows 2008 R2 server as a service that logs in with an Active Directory managed service account with no issues. The new build slave is running on Windows 2012 R2 as a service that logs in with an Active Directory group managed service account.

During the build process the Apache httpd service is told to stop/start with Python as follows:
import os
os.system(“httpd -k stop”)

The Error

The build log was showing the error:
‘httpd’ is not recognized as an internal or external command, operable program or batch file.

Why

For some reason the correct environment variable for %PATH% wasn’t being used by Jenkins on the new builder. When running a script to dump %PATH% as the gMSA I get:

C:\ProgramData\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\7-Zip;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Apache24\bin;C:\ant\bin;C:\Program Files\TortoiseSVN\bin

When running the same script through the Jenkins builder I get the result:

C:\ProgramData\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files\TortoiseSVN\bin

Notice anything missing? C:\Apache24\bin (and C:\ant\bin)

But How’d ya Fix It?

The usual Windows fix didn’t work (aka reboot). I received the same results. After thinking about it for way too long (hey… My background is mostly Microsoft; still a little green in this Open Source stuff…) I remembered that Jenkins can reference variables added to the node during the build.

In Jenkins I selected the problem node and chose ‘Configure’.
Under ‘Node Properties’ I added an Environment variable:
Name = PATH
Value = C:\ProgramData\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\7-Zip;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Apache24\bin;C:\ant\bin;C:\Program Files\TortoiseSVN\bin

I saved the config and kicked off another build and was excited to find that httpd was now accessible to the build job.

Odd System Center 2012 SP1 CU2 Install Error

I didn’t find much about this particular error. I ran into this while attempting to install Cumulative Update 2 on a SCSM 2012 SP1 Data Warehouse server.

From the log “<Install_Volume>:\Users\<Install_User>\AppData\Local\Temp\SCSMPatcherSetupWizard<##>”

Error lines:Install Progress – (StopServices) Stopping services
mtError: Service ” () could not be stopped.  Verify that you have sufficient privileges to stop system services.
An error occurred while executing a custom action:StopServices

ProcessInstalls: Patcher returned error 1603:Fatal error during installation

During the install process I witnessed the System Center related services being stopped. After a lot of research with no good answers I thought about what the Data Warehouse was and what might be stopping the update from installing. All of the sudden it hit me… the database services. Even with my DW jobs stopped the databases were still up and running. Looking at the database permissions the service account that SCSM uses did not have any SQL roles that could modify the SQL services. I have the service account permissions to modify the services (in my case I just gave it sysadmin, but I’m not a DBA and didn’t have time to research another more secure role).

The install worked like a charm afterward!

Analysis of Best Practices for Securing Active Directory

LINK: https://docs.google.com/file/d/0B1L7RpRzZZQ6akJQQjY4WUFJQ2c/edit?usp=sharing

In May 2010 I embarked on a journey of higher education at Western Governors University. With the support of my family, the course mentors, and my student mentor (Angie Carlen) I am finally finishing my Bachelor of Science in Information Technology with a security emphasis. The final class for any graduate of WGU is the Capstone course. For my Capstone project I chose to analyse the the Best Practices for Securing Active Directory publication released by Microsoft in April 2013.

One of my project deliverables was to create a compliance checklist from the analysis of the publication. I’ve also included a basic Acceptable Risk document for organizations that do not have one, but do not want to take the time to create there own. I have wrapped these documents into a zip file and have added them to a Google drive linked at the top. Please be gentile as this is my first attempt at governance from the IA perspective versus the IT perspective. I am open to any suggestions and would like to make this a governance document for ANY Windows-based infrastructure to use.

This brings me to my final deliverable; which is the public release of my documents.

Enjoy!

The results are in…

After months of searching (years in total really) I’ve finally figured out my problem with finding my passion. If you don’t know me then I’ll just say that I’ve struggled with finding myself for a long time now. I’ve taken a bunch of different personality and career matching tests with pretty much the same kind of results. I’m Introverted until I get to know you better. I am a good problem solver and leader (with compatible types as my subordinates); though I will never ‘choose’ to be a leader. It’s usually chosen for me by management. I enjoy challenges deep thought and tend to stay extremely focused on the challenge until it is complete.

But that’s where the results stop. What the tests don’t go into is the fact that once the challenge is complete and I feel that I’ve learned a lot about the given subject I get bored with it and want to move on. Looking at my job history I can see a pattern. I typically work really hard on some tough problems at most places before I start to get bored with it. And I mean really bored; like physically ill bored (and depressed afterward). I’ve been living my professional life for the past ten years just thinking that something was wrong with the jobs I was working; or even worse something was wrong with ME.

While watching a bunch of TED videos on Youtube.com I started writing a list of the things that I want to do; my passions if you will. Most speakers kept trying to encourage listeners to find THAT THING that would make them jump out of bed in the morning. I looked at my list and found that not a single one made me feel that way. I’m just not that passionate about anything. “Great!” I though. Not only do I not like what I do, but there is nothing that I’d like to make a new profession either. So what does a geek do when faced with a problem like this?

I googled. I searched “I have no passions…” in Google and came up with surprisingly less results than I thought that it would. One site stuck out in the results and I finally decided to follow one of the links: http://puttylike.com/terminology/

It was there that I discovered what I truly am. I am a Multipotentialite; aka Slasher; aka Scanner; aka Polymath. Basically…

A modern day Renaissance  Man. I have multiple things that I want to learn about, but not necessarily become a master in any of them. I don’t want to devote my life to becoming a specialist in something; I want to devote my life to learning about anything that interests me.

Emilie Wapnick is the creator of Puttylike and has brought together a community of non-specialists as well as written a ton of useful information. After reading a good bit of the site I decided to change my thought process. I tossed my list of ‘passions’ and started a list of what I’d like to learn more about:

– Photography
– Computer Programming
– Linux Operating System
– Wood Furniture Making
– Landscape Engineering
– Creative Writing
– Guitar (Learn to Play)
– Automotive Maintenance & Upgrading
– Plant & Tree Identification (I was never a boy scout)
– Physical Fitness (Explosive Power Specifically)
– Healthy Cooking (and not so healthy baking)
– Home Alcohol Production (Still want to make the drink of my ancestors; mead)
– Graphic Design

I fully expect this list to continue to grow, but for now this will do. The next step is to train myself that (job growth + job skills != happiness). The real equation I need to solve is (x + x.skill obtained == happiness). If you don’t algebra just know that ‘x’ represents the items in the list above.

My mind is in a fog

I was up late doing school work for my Java class. I am unable to think much to write about right this second; so I am going to post links to songs I’ve been listening to a lot lately.

Of Monsters and Men – Little Talks; http://youtu.be/ghb6eDopW8I

Imagine Dragons – Radioactive; http://youtu.be/ktvTqknDobU

Fun – Some Nights; http://youtu.be/qQkBeOisNM0

Zac Brown Band – Chicken Fried; http://youtu.be/e4ujS1er1r0

Yup…