Saturday, June 27, 2009

But, should I learn programming?

On thing I have found over the years as a senior systems administrator is that my programming abilities have always come in handy. Many times these two skills seem to be very different..and they are. Programming is taking a problem, find out how to solve it and telling a computer how to do the task. Systems administration is taking an existing working system and implementing it, tuning it and making it run and finally upgrading and decommissioning the system.

Two very different skill sets.

But, should I learn programming? The simple answer is yes. Maybe being a "code jock" is in your cards, but having it in the Swiss Amy Knife set of tools will make you a better systems administrator and a more valuable employee.

Another good skill is database work. Why? Well, what is Active Directory? It's a database built on the Jet database engine from the boys in Redmond.

Some good examples from work. Account creation. Who likes account creation, especially when you have a hundred or more to create in a short time. You have to reconcile and figure out what needs to be created, and then do the work. Not fun.

Ah, write a program to solve the problem. Taking my database skills I was able to interrogate our Administrative Computing system (CARS, or CX from Jenzabar) to come up with a list of students. I then interrogated Active Directory to see who has accounts. A little reconciliation and *poof* I have a valid list of accounts to be created. Now, how to create those accounts? I've been programming in PHP as of late because it's simple, robust and effective. But PHP can't interface with PowerShell directly. So, my PHP programs generates a .ps1 script that I then execute on the Exchange 2007 server to create the accounts. Oh, but wait there's more. We hand out a sheet for all of the students to have with their account information. Being an old Adobe PostScript developer I then generate a .PDF file with the information sheets. Print that out and the work is done.

Now, generating accounts is a five step process that takes about 5-10 minutes to build out 100+ accounts that are accurate, mailbox enabled with hand outs. Not too bad.

If I didn't have programming and database skills this task would be far more complicated then it needs to be. So, be a good sysadmin and learn some coding skills.

Did I mention that coding helps monitor the network? No? Well, we use Nagios to monitor the network. When something fails and we were not monitoring for it, you guessed it, I write a script to do so. Sometimes it's C, C++, PERL, PHP, Bash, whatever it takes to get the job done. Now we are able to more quickly identify problems on the network before our customers notice.

Be a good sysadmin and learn some coding skills, it will pay off for both you and your customers.

Friday, June 26, 2009

Server changes -- why plan?

Well this week we had some interesting server issues to resolve. One of the guys decided to try out the VMWare converter and move a domain controller to a virtualized environment. All seemed well until Active Directory decided that it didn't want to replicate on that controller

The root cause of the problem was a USN rollback situation. Fixing the problem turned to to not be very nice. I had to forcibly remove Active Directory from the system, cleanup metadata on the other servers and then DC promo the box back into the domain. This all took the better part of a day to ensure that all is well and well done.

The bigger issue turned out to be Outlook Web Access. Through the process it totally messed up OWA on the system. We had a new VM setup to move it onto. This was the needed "nudge" to get the system moved. We had some problems with our wildcard certificate, which was mostly my problem of not installing it properly.

So after several days of Server 2003 and Exchange 2007 work all is well with Active Directory and Exchange's OWA front end.

Why plan? Well, a little research would have shown that there are steps and procedures to make sure that the move was successful. I don't like down time on any system. I have learned over the years that most of the work that I've done on servers has been done by someone else, so learn from their mistakes. This is a lesson that I've learned from being a pilot. We read accident reports and learn what our fellow (and less fortunate) pilots have done. Learn from their mistakes so we don't make the same blunders. All accidents -- and server problems -- can be related to some chain of events. Break one of the links and the problem won't happen.

Coming from an aircraft manufacturing background, two primary things were emphasized: Project Management and Six Sigma. Sure, some could argue that Six Sigma doesn't apply to IT work, but I would argue that it does. Well written procedures will result in good results. Same with making parts. Also, Project Management will force one to think and to plan their work.

Think, plan, execute and learn from one's mistakes. This will result in better service for the customers and make you look like a hero.

First blog post

Well, I decided that maybe it's time that I started a blog. I've been twittering for sometime now (www.twitter.com/jeffroberson) if you want to see my tweets.

Overall, I have a lot to share, I face some interesting challenges and I suppose that this blog can be a two fold thing. For me to share and to track a little bit more of my life and interests.

So, welcome to my blog.