Monday, December 22, 2008

Don't Go Away Mad...

Ok, it has been a little while since the last post, but hey, I don't create magic that often (never if you ask my wife).

One of the things we were dealing with is an automated flow that deleted our Virtual Machines. This is a good thing if you want the VM's gone but in our case we kind of wanted them there but they kept getting deleted. Needless to say this was NOT a good thing. I was able to come up with a solution. We modified the delete script to a rename script.

Here is how it works....

The script was using "rm vm_name" and with a little trial and error I came up with...



mv vm_name vm_name.`date +"%Y%m%d"`_`date +"%H%m"`

Now that seems complex but it moves (hence the mv command" from the vm_name directory to vm_name.yearmonthday_hourminute .. for example a VM named vm01 decomissioned on December 19th at 11:15 am would be...

vm01.20081219_1115

Now it it would still be resident on the disk but it would show when it was decomissioned. This will help if you want to keep VM's around for 30 days or so before deleting them.

Also some other steps were not covered.. the vmware-cmd was used for all the shutdown and unregistering of the VM's..

Hope this helps somone..

Tuesday, December 2, 2008

Perl and the Array..

Ok this is not going to be much fun for the average person but I found it helpful. Figured I would put it out here for everyone to ponder.. much like the meaning of life, why are we here, how my belly button fills with lint. The REALLY important stuff.

I was working on a small script ( I really do not call it a program). In this script, I needed to find the most recent log file on a Linux box and do something with it. How I accomplished this was a rather cumbersome Perl script but here goes:

1. I was able to sort the data by using "ls -c". This put the newest log file on top.
2. The I was able to pipe that data into an array. If you are not familiar with an array, it stores information in separate entries kind of like of a database.
3. Since I wanted the first entry in the array I was able to pull it using the following code:

@item_wanted = $array_i_am_using[0];

Then I can print the array item out if needed etc.

Hope this helps someone.

I might be reading this later in the future :)

Wednesday, November 26, 2008

So this would make it easier..

I am in the process of creating a script that will look @ a text file (from and AV scan in this case )and then email a portion of it to someone. We have five Red Hat servers and in the time it has taken for me to beat this into submission I could MANUALLY check AV scan file.

However, I digress. In the process I am learning some PERL, a little HTML and a program called sendEmail-v1.55.tar.gz. This program looks like a god-send and will come in handy in the future I can see.

The broad strokes of the process is this:
1. AV scans system (I know scanning for Viruses on a Linux box .. don't get me started)
2. Perl script runs and parses the AV scan log and then creates an HTML file.
3. sendEmail uses the HTML file as the body of the email to the admin folks to allow them to quickly see if there is a problem or not.

The sendEmail program will communicate directly to an SMTP server (if you do not know what this is... might want to read up a little bit) and it is all done @ a command line and easy to script.

Well all for now. Hope everyones Thanksgiving goes well.

Thursday, November 13, 2008

Another Day Another Patch..

Life in Missouri is always great on the health. (no not really) The weather likes to change quickly and the mold count is always high. So right now I have a head cold. It makes this work more challenging that it should.

Yesterday I set up a Web Server to hold the ESX patches. Once the ESX-1003525 (for version 3.0.2) is loaded the rollup packages work pretty great. Here is a crib notes version on how to set this up.

1. Take your everyday Linux build and load Apache.
2. Once Apache is loaded, find the directory that the web content goes into. (/var/www/html for RedHat EL 5)
3. Create a sub directory for the ESX patches. I used the crazy name of "esx"
4. Edit to the /etc/httpd/conf/httpd.conf file.. Find the section "Listen" and change the port after Listen to something you like.. I used 8080 so that it is not as vunerable.
5. After saving the httpd.conf file, type "service httpd restart" to restart Apache
6. You should now be able to open a web browser to the http://my_web_server:8080/esx directory.
7. Use WinSCP or something else to move the packages to the esx directory on the web server.
8. Un-TAR the patch files
9. Check the connection from the web browser again, you should be able to see the patch files.

Now on the ESX server to be patched:
1. Open the ESX firewall type "esxcfg-firewall -o port_number,tcp,out,httpConnection" this will open the firewall to allow the esxupdate to connect to the web server.
2. Now type "esxupdate -d http://my_web_server:8080/esx/ESX302-Rollup-01 update"
3. The esxupdate will check for the contents.xml file in the directory and will install all the files listed in it.

Note: More details on the esxupdate command can be found by typing esxupdate without anything else.

Hope this helps someone!

Monday, November 10, 2008

Time for Maintenance

ESX Maintenance Mode.. this mode is important for applying the all important updates. This can be done easily via Virtual Center but in the event you need to patch oh I don't know.. 40+ ESX hosts in an automated fashon this can be a pain in the rear.

My new best friend is VIMSH. The vimsh can be used to process many thing on the command line of the console of an ESX server. The details can be found in this doc..Here.



An example of the code I am going to use is:



vimsh -n -e hostsvc/maintenance_mode_enter

vimsh -n -e hostsvc/maintenance_mode_exit



Running vimsh --help shows that the "-n" runs the command in non-interactive mode and the "-e" runs the commands specifed. THIS IS COOL! Now I can set up the Opsware client to place an ESX host into maintence mode, patch it, reboot it, and then exit maintence mode.



Whoo Hoo! Its a great day to be a Geek!

Friday, October 17, 2008

Software Upgrade

Last night was the "Mans Night" at the Pub. I have not missed Mans Night in MONTHS. However, I was at work last night working on a "Software Upgrade". Working at a Government facility which requires 15 character passwords and changing from one network to another is cumbersome to say the least. So back to the upgrade. It takes 15 min to download, I have to burn a CD, transfer it to the server and then walk back to the office to begin the install process.

I begin the upgrade. It is on Tomcat. It is not working. They suggest D/L the file again. I say "NO". I checked the permissions on the D/L file that Tomcat was supposed to be working with. It is set to ROOT only. Duh. How can the Tomcat Service get to the file.
I change the permissions and restart Tomcat and Pow.. it works.

I am cutting out much cussing and other things that took place. I left @ 12:10 in the morning.

Needless to say, I will make sure I check the permissions from now on.

That is my tip for the day.

Monday, October 13, 2008

Back at the Salt Mine..

Well, I was out of circulation for a while.. and we won't go into that now. I have been back @ work for 2 weeks now. I am working for a small computer company (HP..joke get it.. they are not small) as a consultant on a Government Project. That is all I can say about that.

However, I have been working with OpsWare, VMware and Linux (2 of the 3 are new to me) and figured I would put down some thoughts as I come across them.

YUM - yum is another package manager in the Linux world. I am not sure when it came into existance or where from but it is cool! I am working on a project where we wanted to install all packages with the exception of BIND and SENDMAIL. Ok.. I try to remove the BIND with rpm..nothing doing. There are all kinds of other packages that rely on it. However you can go "yum -y remove sendmail" and BAM, it removes all the associated packages.

In the words of Ricky Bobby "That Just Happened!"

I am able to move on for the day.