Showing posts with label centos. Show all posts
Showing posts with label centos. Show all posts

Thursday, August 25, 2011

How to set or reset a Dell Service Tag

Kinda bummed about having to do this on my own, but it just seemed easier. I have a Dell PowerEdge R710 that DID NOT handle either a iDrac or BIOS version update very well. The BIOS would not show a version number and the iDRAC6 would just hang. Couldn't reset the iDRAC and could barely get the box running again (had to pull power and do a dance and hope for it to boot). Most of the time the iDRAC boot option would get auto selected... long story. None of the 2 days of work requested by Dell tech's helped... they had to replace both the motherboard and iDRAC6 card. (on a side note, I may post on the large number of ways to flash firmware or BIOS's that Dell has provided to Linux users)

Sadly, the "asset" program the tech had with him seemed to only set the "Asset Tag" and not the Service Tag. The BIOS was the only thing that would show the Service Tag correctly. None of the normal ways to get the ST would produce results:
dmidecode -s system-serial-number racadm getsvctag getSystemId
I did find a DOS asset.exe executable, but who wants to boot a server system to DOS?! There was the lonesysadmin.net peeps with a plausible boot .iso... nah, there's gotta be a better way without having to resort to that... More google'n and bingo the hint I needed.

Turns out that the OMSA install I had could do what I wanted. I just didn't know it. At least for CentOS 6.0 and with smbios-utils-python-2.2.26-6.1.el6.x86_64 on a Dell R710 with BIOS 3.0.0, I can run:
smbios-sys-info --service-tag --set=123456
and this will set/reset my newly replaced motherboard to have the Service Tag I need! Please note that this Service Tag also persists over reboots unlike some older posts seem to have issues with.

As always, YMMV

Tuesday, August 16, 2011

CentOS 5.6 bugzilla email reply-to bugs howto

This is a quick and dirty set of steps to get an internal bugzilla to allow replies from bugzilla emails to be added to a bug. I'm sure there is a more "proper" way, but since the user that runs email is "nobody" for CentOS, I don't see how at this time.

First, I am using the EPEL repository in order to be a newer bugzilla than is provided with stock CentOS 5.6 at this time. In fact, I tend to even use the "testing" repo in order to get what I want. The current version as of this writing is bugzilla-3.2.10-1.el5 if you are interested. The information here is realy just a documentation place for what I have had to do for a while now.

/usr/share/bugzilla/checksetup.pl

Make sure you have all the perl modules to run email_in.pl at least from the command line. If you run this, it should *not* return any error. It should just sit there waiting for input; just +c to terminate.

/usr/share/bugzilla/email_in.pl

Make sure you have a bugzilla alias. Make sure to check a past email to see what the reply-to address is going to be. You can add the alias like the following on the server that has bugzilla running on it.
echo 'bugzilla-daemon:"| cd /usr/share/bugzilla/ ; /usr/share/bugzilla/email_in.pl -vvv > /tmp/email_in.pl.out 2>&1"' >> /etc/aliases newaliases

Here is the shotgun approach I took in order to get replies to function. Keep in mind that this system does *not* have user accounts on it and is internal to a network. I would *NOT* do this for on with user accounts or if it was exposed to the outside world. If you happen to know the proper way to handle this, drop me a note!

find /var/lib/bugzilla/data -type d -exec chmod 755 {} \; find /var/lib/bugzilla/data -type f -exec chmod 744 {} \; find /var/lib/bugzilla/data \( -name "*.pm" -o -name "*.pl" -o -name "*.cgi" \) -exec chmod 755 {} \; find /usr/share/bugzilla/ -type f -exec chmod 744 {} \; find /usr/share/bugzilla/ -type d -exec chmod 755 {} \; find /usr/share/bugzilla/ \( -name "*.pm" -o -name "*.pl" -o -name "*.cgi" \) -exec chmod 755 {} \; chmod 755 /etc/bugzilla/ chmod 744 /etc/bugzilla/localconfig

Please note that *any* time you run "checksetup.pl", you will need to redo the commands above! That perl script will make the bugzilla install more secure again. It is good practice to make sure that you can past most all of the module recommendations it has prior to doing anything else.

When you start wanting to send test messages to bugzilla, make sure to watch the maillog for errors. Those errors *may* also come back as emails if you are lucky.
tail -f /var/log/maillog|grep bug

Also, based on an email_in.pl bugzilla bug I slightly modified the /usr/share/bugzilla/email_in.pl by applying THIS very easy patch to fix this next error.

Use of uninitialized value in concatenation (.) or string at Bugzilla/DB.pm line 106, <STDIN> line 49.
Use of uninitialized value in require at (eval 99) line 2, <STDIN> line 49.
Use of uninitialized value in concatenation (.) or string at Bugzilla/DB.pm line 106, <STDIN> line 49.
Can't call method "isa" without a package or object reference at /usr/share/bugzilla/email_in.pl line 303, <STDIN> line 49.

If the permissions are messed up, you will get errors like:


Use of uninitialized value in concatenation (.) or string at Bugzilla/DB.pm line 106, <STDIN> line 57.
Use of uninitialized value in require at (eval 100) line 2, <STDIN> line 57.
Use of uninitialized value in concatenation (.) or string at Bugzilla/DB.pm line 106, <STDIN> line 57.
'' is not a valid choice for $db_driver in localconfig: Null filename used 

OR

Error reading /var/lib/bugzilla/data/params: Permission denied at Bugzilla/Config.pm line 319.
Compilation failed in require at /usr/share/bugzilla/email_in.pl line 43.
BEGIN failed--compilation aborted at /usr/share/bugzilla/email_in.pl line 43.

OR

Use of uninitialized value in string ne at Bugzilla/Util.pm line 290, <STDIN> line 49.
Use of uninitialized value in string eq at process_bug.cgi line 435, <STDIN> line 49.
of uninitialized value in string eq at Bugzilla/Mailer.pm line 57.
Use of uninitialized value in string eq at Bugzilla/Mailer.pm line 121.
Use of uninitialized value in pattern match (m//) at Bugzilla/Mailer.pm line 141.
Use of uninitialized value in string eq at Bugzilla/Mailer.pm line 152.
Use of uninitialized value in string eq at Bugzilla/Mailer.pm line 160.
error: template error: file error - failed to create compiled templates directory: /var/lib/bugzilla/data/template/template/en/default/global (mkdir /var/lib/bugzilla/data/template: Permission denied 

Tuesday, August 2, 2011

CentOS 6.0 Zimbra 7.1.1 Open Source Edition install

Update 8/12/2011:
Good news! CentOS 6.x is out of beta and in stable with version 7.1.2 from HERE. In fact, you may just want to check their download page.

I wanted to take a peak at what is going on with Zimbra and CentOS 6 install capability. Currently, CentOS 6/RHEL 6 is listed as a beta for Zimbra 7.x installs. To to be deterred, I grabbed the beta download from the beta download page
wget http://files2.zimbra.com/downloads/7.1.1_GA/zcs-7.1.1_GA_3196.RHEL6_64.20110527010625.tgz
Test server is decent Dell Poweredge 2950 type II with 2 Intel quad core E5335 with 6GB RAM, RAID 1 for / (qty 2x80GB SATA) and RAID 5 for /opt (qty 4x500 SATA)
CentOS 6.0 x86_64 install was done as a "web server" install to provide most options I thought I would need as a start for the Zimbra install.

Note: I always suggest to install OMSA on any Dell server!

After the system is setup make sure that services that will interfere with Zimbra installed version are stopped and will not turn on at boot time:
chkconfig postfix off service postfix stop chkconfig httpd off service httpd stop tar -xzvf zcs-7.1.1_GA_3196.RHEL6_64.20110527010625.tgz cd zcs-7.1.1_GA_3196.RHEL6_64.20110527010625 ./install.sh
64 bit install but the installer still wants "libstdc++-4.4.4-13.el6.i686" installed.?
yum install libstdc++-4.4.4-13.el6.i686
Read Zimbra install info seems to be the moral of the story.

Finally installed with:
./install.sh --platform-override
followed prompts. Initial failure with log message with many:
sudo: sorry, you must have a tty to run sudo

Ran visudo to temporarily comment the "Defaults    requiretty" line and then ran:

/opt/zimbra/libexec/zmsetup.pl
To complete the install. Reboot just to make sure everything starts and begin the setup process. Now on to the much harder Zimbra setup!

Wow, still not done! Zimbra zmconfigd seems to need netcat, but is not a rpm requirement.??
yum -y install nc

Also, the install seems to need a patch before I can start working:
wget http://files2.zimbra.com/downloads/7.1.1_GA/zcs-patch-7.1.1_GA_3213.tgz

Sunday, July 31, 2011

CentOS 6.0 install on Dell E6410 laptop

First I would like to say, "Thank You!" to all of the hard working developers and other at CentOS. In spite of some VERY well published delays in getting CentOS 6.0 out the door, it's finally here! I hope to see 6.1 soon.

I am using a more recent Dell E6410 laptop with 4GB RAM, an Intel i7 M620 CPU and dedicated nVidia GT218 [NVS 3100M] video card. WIFI is handled by the Broadcom BCM4314 chipset. Pretty good by current standards. It's the same laptop I have used for my Fedora 13 review.

When I first went to burn the i386 .iso file, k3b greeted me with an interesting, "your image will not fit on your disk" kinda message. I was puzzled and then discovered the issue noted in the CentOS 6.0 release notes about the DVD+R media creation issue. Fair enough, I did not have at the time any other media, so I just overburned past the disk and tried to boot from the media anyway (which worked fine for *my* install). Just don't try to validate the disk ;)

Next, my default DVD install attempt was met with a very disappointing blank/black screen with the onboard Nvidia ??? video card. My good buddy google quickly lead me to some information that either "nomodeset" kernel option or install with the "basic video driver" would be needed. And either of those allowed me to move on through the install.

Reboot after install leads to a rather disappointing 800x600 resolution login screen. At least there is a login screen at all. First a quick <ctrl><alt><f2> key sequence to dump me to console in order to log in as root in order to do a full update and reboot just to see if that will help my screen resolution issue with the *default* install. Darn, still no better resolution! Need to jump to elrepo's kmod-nvidia fast.

Normally, the rpmfusion repository would be my way to get the included BCM4313 with a simple
yum -y install broadcom-wl kmod-wl-`uname -r`
After being told by yum that there was nothing to install, I scratched my head and google'd a bit and found that "Due to an excessively restrictive license accompanying this Broadcom driver, the ELRepo repository developers have refrained from supplying it via an rpm package" according to at least CentOS Broadcom page. Shame on you Broadcom... at least there is a way around the issue based on the instructions on the CentOS page noted! It would be so much easier if Broadcom's legal would just relax.

The bluetooth functions without issue. I could pair with my Droidx in seconds.

Sadly, I don't seem to be able to update the BIOS from the Dell OMSA repository. Initial indications are that they don't care.

Here's the lspci for the laptop:

00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
00:01.0 PCI bridge: Intel Corporation Core Processor PCI Express x16 Root Port (rev 02)
00:19.0 Ethernet controller: Intel Corporation 82577LM Gigabit Network Connection (rev 05)
00:1a.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 05)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 05)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 05)
00:1c.1 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 2 (rev 05)
00:1c.2 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 3 (rev 05)
00:1c.3 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 4 (rev 05)
00:1d.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 05)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a5)
00:1f.0 ISA bridge: Intel Corporation Mobile 5 Series Chipset LPC Interface Controller (rev 05)
00:1f.2 RAID bus controller: Intel Corporation Mobile 82801 SATA RAID Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 05)
00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 05)
01:00.0 VGA compatible controller: nVidia Corporation GT218 [NVS 3100M] (rev a2)
01:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1)
03:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g LP-PHY (rev 01)
04:00.0 SD Host controller: Ricoh Co Ltd Device e822 (rev 03)
04:00.4 FireWire (IEEE 1394): Ricoh Co Ltd Device e832 (rev 03)
3f:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02)
3f:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02)
3f:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
3f:02.1 Host bridge: Intel Corporation Core Processor QPI Physical 0 (rev 02)
3f:02.2 Host bridge: Intel Corporation Core Processor Reserved (rev 02)
3f:02.3 Host bridge: Intel Corporation Core Processor Reserved (rev 02)

Helpful links:
E-Family Reimage “How-To” Guide
E6410 Manuals

Thursday, July 28, 2011

LibreOffice for CentOS 5 or CentOS 6 install howto

OpenOffice at this point seems to have stalled out with no recent bug fixes. The LibreOffice folks seem to to be be moving forward and fixing issues. This is just a simple install howto for getting LibreOffice onto your otherwise stock CentOS 5 or CentOS 6 desktop system. If you are doing these easy steps, you might as well take the steps to get Thunderbird 5 or FireFox 5 on your system. I have every reason to believe that all of these steps will work just fine for any Scientific Linux 5 or 6. Heck might as well just stall onto the otherwise identical RedHat Enterprise Linux RHEL 5 or RHEL 6.

First download a version of your choice.

UPDATE 05/02/2012: the following code has been updated for the 3.5.3 release of LibreOffice.

wget "http://download.documentfoundation.org/libreoffice/stable/3.5.3/rpm/x86/LibO_3.5.3_Linux_x86_install-rpm_en-US.tar.gz" tar -xzvf LibO_3.5.3_Linux_x86_install-rpm_en-US.tar.gz cd LibO_3.5.3rc2_Linux_x86_install-rpm_en-US/RPMS/ mv desktop-integration/libreoffice3.5-freedesktop-menus-3.5.3-2.noarch.rpm ./ yum remove openoffice\* yum install --nogpgcheck lib*

You will likely want to install the helppack rpm
wget "http://download.documentfoundation.org/libreoffice/stable/3.5.3/rpm/x86/LibO_3.5.3_Linux_x86_helppack-rpm_en-US.tar.gz" tar -xvf LibO_3.5.3_Linux_x86_helppack-rpm_en-US.tar.gz
yum install --nogpgcheck LibO_3.5.3rc2_Linux_x86_helppack-rpm_en-US/RPMS/libobasis3.5-en-US-help-3.5.3-2.i586.rpm

You can copy line for line or copy paste into a script, but the jist of what needs to be done is easy to figure out above.

Redhat menus install nicely

Startup loading bar is nice

LibreOffice starts fast and looks familiar to existing OpenOffice users, but with more bug fixes

One easy upgrade! Nice job LibreOffice peeps! Enjoy.

Saturday, July 23, 2011

CentOS 6.0 install on Dell D630 laptop and short review

First I would like to say, "Thank You!" to all of the hard working developers and other at org.org. In spite of some VERY well published delays in getting CentOS 6.0 out the door, it's finally here! I hope to see 6.1 soon.

Once again, I am using my venerable Dell D630 laptop with 2GB RAM, a dual core Intel T7500 and dedicated nVidia G86M Quadro NVS 135M video card. WIFI is handled by the Broadcom BCM4312 802.11a/b/g chipset. Modest by today's standards. It's the same laptop I have used for my Fedora 15 beta review. I can say with certainty that both this laptop and I are very grateful to be running Gnome 2.x instead of 3.x!

When I first went to burn the i386 .iso file, k3b greeted me with an interesting, "your image will not fit on your disk" kinda message. I was puzzled and then discovered the issue noted in the CentOS 6.0 release notes about the DVD+R media creation issue. Fair enough, I did not have at the time any other media, so I just overburned past the disk and tried to boot from the media anyway (which worked fine for *my* install). Just don't try to validate the disk ;)

Next, my default DVD install attempt was met with a very disappointing blank/black screen with the onboard Nvidia NVS 135M quadro video card. My good buddy google quickly lead me to some information that either "nomodeset" kernel option or install with the "basic video driver" would be needed. And either of those allowed me to move on through the install.

The rest of the install proceeded without issues. After the reboot, I was glad to see the nouveau driver seems to work well enough after the initial install problem. I was even more happy to see my wifi (Broadcom Corporation BCM4312 802.11a/b/g) installed with *no* intervention. And by this time, I always expect the onboard ethernet of (Broadcom Corporation NetXtreme BCM5755M Gigabit Ethernet PCI Express) to work without issues or intervention. Thankfully, I was not disappointed with any networking issues. Sorry to say that this laptop does not have bluetooth onboard, so I can't test that.

I was greeted with good old Gnome 2 running after login. Everything looked fine at 1440x900 resolution without messing with any xorg.conf file! I do not yet see a reason to blacklist nouveau. I expect even less to use the a downloaded NVIDIA-Linux-*.run file as the elrepo binary kmod-nvidia* version will end up being no additional work after a kernel upgrade.

Laptop is running very stable, dynamic CPU fan control functions as expected. Suspend and resume has not had any issue at all with the nouveau driver. Nice to have it all just work (minus the install quirk).

More updated versions of most major apps would be better. OpenOffice 3.2 is included rather than 3.3 or even better now, the Libreoffice version that Fedora 15 has.

In the end, I would have to say that for a good solid Linux OS experience, I would suggest CentOS 6 as a good option to any current distribution. You will have a long support cycle and a very stable base.

I have a very minor annoyance that seems to be shared now with all the recent Fedora versions; resuming the laptop shows an initial screen that is your session even with the screen lock applied. This running session screen last only a second or two, but kinda odd that it shows at all.

As a note, I have added the "xdriver=vesa nomodeset" options to my PXE install for this class of device to get past the video driver issue on install.

For completeness, here is the lspci for this Dell D630:
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c) 00:01.0 PCI bridge: Intel Corporation Mobile PM965/GM965/GL960 PCI Express Root Port (rev 0c) 00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 02) 00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 02) 00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 02) 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02) 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02) 00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 02) 00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 02) 00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 02) 00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 02) 00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 02) 00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f2) 00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 02) 00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 02) 00:1f.2 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller (rev 02) 00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02) 01:00.0 VGA compatible controller: nVidia Corporation G86M [Quadro NVS 135M] (rev a1) 03:01.0 CardBus bridge: O2 Micro, Inc. Cardbus bridge (rev 21) 03:01.4 FireWire (IEEE 1394): O2 Micro, Inc. Firewire (IEEE 1394) (rev 02) 09:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5755M Gigabit Ethernet PCI Express (rev 02) 0c:00.0 Network controller: Broadcom Corporation BCM4312 802.11a/b/g (rev 01)

My intent is to soon publish a server based CentOS 5.6 -vs- CentOS 6.0 competition review using the same hardware. Stay tuned.

Monday, July 11, 2011

CentOS 5.6 Thunderbird 5 working setup and install howto

UPDATE: Thunderbird 6.0 does not require the hack below!

If you are getting the error
thunderbird-bin: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by libxul.so)
You have come to one of the correct places. This is a continuation of the FIreFox 4 install. Again, I did not come up with this on my own! I just want to spread the word as much as possible that one very enlightened fellow referenced as "rkl" at forums.mozillazine.org has made it possible for the rest of us to hit the "easy button" and got FireFox 4.0 working on CentOS 5.x (CentOS 5.6 at this time). HERE is the original link that I lucked upon while trying to google it on my own.

This is my mostly plagiarized summary based on the original FF4 information for the link above. My testing was specifically done on CentOS 5.6 32bit desktop install:
1. Unpack the Thunderbird thunderbird-5.0.tar.bz2 somewhere (e.g. /opt/thunderbird5). A quick way to get the tar file is from the mozilla Thunderbird EN download link.

2. Download this 32-bit Fedora 9 libstdc++ RPM and unpack it with this command:

rpm2cpio libstdc++-4.3.0-8.i386.rpm | cpio -i --make-directories

3. Move the unpacked shared library into /opt/thunderbird5:

mv usr/lib/libstdc* /opt/thunderbird5/

Note: It's "usr/lib/libstdc*" above (i.e. the unpacked tree from the RPM, not the system /usr/lib tree) - do NOT put a leading slash there!

4. Run Thunderbird 5 with:

/opt/thunderbird5/thunderbird

I will say that TB5 is an *major* improvement from Thunderbird 3.x. So far there are less mailbox issues than with previous versions.

Friday, June 24, 2011

CentOS 5.x FireFox 5 working install

UPDATE: FireFox 6.0 does not require the hack below!

If you are getting the error
firefox-bin: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /opt/firefox5/libxul.so)
You have come to one of the correct places. This is a continuation of the FIreFox 4 install. Again, I did not come up with this on my own! I just want to spread the word as much as possible that one very enlightened fellow referenced as "rkl" at forums.mozillazine.org has made it possible for the rest of us to hit the "easy button" and get FireFox 4.0 working on CentOS 5.x (CentOS 5.5 at this time). HERE is the original link that I lucked upon while trying to google it on my own.

This is my mostly plagiarized summary based on the original FF4 information for the link above. My testing was specifically done on CentOS 5.6 32bit desktop install:
1. Unpack the Firefox firefox-5.0.tar.bz2 somewhere (e.g. /opt/firefox5). A quick way to get the tar file is from the mozilla EN download link.

2. Download this 32-bit Fedora 9 libstdc++ RPM and unpack it with this command:

rpm2cpio libstdc++-4.3.0-8.i386.rpm | cpio -i --make-directories

3. Move the unpacked shared library into /opt/firefox5:

mv usr/lib/libstdc* /opt/firefox5/

Note: It's "usr/lib/libstdc*" above (i.e. the unpacked tree from the RPM, not the system /usr/lib tree) - do NOT put a leading slash there!

4. Run Firefox 5 with:

/opt/firefox5/firefox

rkl references the FireFox 4 beta version, but all steps still apply for official FireFox 5 release.

I will say that FF5 is an incremental improvement from FF4. My initial usage has been positive. There seems to be a "follow the rapid release cycle of Google's Chrome" mentality. I hope this will not make it more difficult for organizations to break from the IE "standard".

Thursday, June 23, 2011

novi merge utility for creating a fully updated install (base plus updates)

Novi is a very handy repository merging utility! The purpose of novi is to remove the problem of a system install followed by an immediate update in order to get a system fully patched and ready to go into service. Maybe this quote from the website makes it more clear:
novi is a tool for finding the latest-version RPMs in a tree. You can use it to create Kickstart trees or yum repos that contain the updated RPMS. In the case of Kickstart, this means machines come to life with the updates already applied. Using novi for yum repos trims the size of the repodata files, which reduces client download and processing time.
In reality, novi saves time and resources. This is especially true when dealing with the Fedora distribution.

For example, if an install takes 15 minutes and then the update takes 30 minutes depending how you update (local mirror I hope), you end up with about 45 minutes of time. With novi, that's just 15 minutes total time to get to the same place. Plus you have a much cleaner install without all of those pesky .rpmnew and .rpmsave files cluttering up the pristine new filesystem.

Naturally, I team novi with PXE boot and Kickstart files for the ultimate in lazy installs on systems. I will only focus on the novi portion as much as possible and leave the other pieces for another time.

The most basic setup requires a machine with enough drive capacity to handle the the base install files (however you want to get them) and all of the updates that you may want. I don't want EVERY update, so I tend to limit what I get by excluding packages I will NEVER install. Really, I don't need anyone install AlienArena on any system under my control, for example ;) Luckily, novi can hard link the merged repository and not just add to any space issue. You will also need that server to provide ftp or http services for the merged repository in order to install a client. Ethan McCallum was nice enough to VERY WELL explain most all of the entire concept, already.

My current multi-repository mirror is a CentOS 5.x server. This example is *very simple* Fedora 13 via ftp install. This could also be a http accessible area. As stated above, I do have a fair number of items to exclude via rsync. I took the extra step of rpmbuild'ing the latest CentOS 5 capable version, 1.1.9 from src.rpm. Sadly, most every repository I found only had the 1.1.5 version. CentOS 6 will be able to use the newer 2.1.11 version (when released).

#!/bin/bash BASE_DIR="/var/ftp/pub/yum/Fedora/linux/releases/13" EXCLUDES="$BASE_DIR/13.excludes" INCLUDES="--include-from=$BASE_DIR/13.includes" LOCAL_DIR="$BASE_DIR/updates/" MERGED="$BASE_DIR/merged/i386" ADMINEMAIL=admin@yoursite.com MIRROR_SITE="rsync://mirrors3.kernel.org/fedora/updates/13/i386" LOGFILE="/tmp/`basename $0`.out" cd $MERGED for DIR in $LOCAL_DIR $MERGED_DIR do if [ ! -d "$DIR" ] then mkdir -p "$DIR" fi done rsync -PvaH --bwlimit=300 --timeout=600 $INCLUDES --exclude-from=$EXCLUDES --numeric-ids --delete --delete-after --delay-updates --delete-excluded $MIRROR_SITE $LOCAL_DIR >& $LOGFILE EXIT="$?" if [ "$EXIT" -eq "0" ] then rm -f Packages/*.rpm novi -a hardlink -t $MERGED/Packages $BASE_DIR/os/i386/Packages $LOCAL_DIR/i386 createrepo -g repodata/fce31f091be8211a394d8942fcf4f6cbeffa3d40d87b61af55a97b1a88b46987-Fedora-13-comps.xml $PWD else cat $LOGFILE | "ERROR in $0 on `hostname -s` exit status of $EXIT" $ADMINEMAIL fi

As usual, comments are welcome and appreciated! Again, this is a basic chunk of code that should be better fleshed out by you. It also only includes the i386 branch and is easily extended.

(Note: I know F13 is EOL, but we have been utilizing novi for a long time)

Wednesday, June 15, 2011

Google Music Beta review with screensthots

Background:
You've got mail... Stupid movie name aside, I got an email invite to play with Google's Music service. I like toys and this is just another kinda toy. There is nothing revolutionary in concept with this music service in concept or execution. Music streaming and downloading have been around for a while to say the least. Google just makes it easier and more convenient. It should be obvious to state the requirement of a Google account in order to start using the Music service. So, on to the review:

I will start with the bad. The Music Manager upload utility is Windows and Mac only. No direct GNU/Linux support! I will end up trying wine soon. If wine succeeds, I'll report back. Otherwise, I will need to add the Music Manager to my otherwise pristine gaming rig or bring up some Windows VM in order to upload.

Update 6/15/2011!: There is a working modified MusicManager that will work with Wine 1.3.21 on Fedora 15. I *could* also get it to work with Wine 1.3.18 from rpmforge-testing under CentOS 5.6. I could not get Wine 1.3.7 under CentOS 5.6 to run MusicManager, however.

Another bad, in my opinion is missing, "show lyrics" option. This kind of option is kinda lame for *GOOGLE* not to have. Don't they have an index on EVERYTHING?! A simple link out to a lyrics site the same way they handle the shopping would even be a good start. But some in browser option would be better.

The web interface could use a range delete like the gmail webmail has. For example, if you add any "free" songs, you will be forced to individually remove each unwanted song. That is not a trivial task when you mistakenly added *several* groups of free music. In addition, "Recently added" should allow a date range or similar IMHO. I can't even figure out what recently means in this context.

Now for the good news for GNU/Linux peeps: Google Music will work without issue under at least the CentOS 5.6 or Fedora 13 and Fedora 15 distributions using either FireFox 4 and Google's Chrome 12 browsers. Adobe Flash of some version is required, I have tested with 10.2.x and 10.3.x. If you use any flash-blocking add-on make sure to white list google.com. The Flashblock 1.5.14.2 I have on Fedora 15 with FireFox 4.0.1did block the flash, but did not show me a notice that it was blocking.


Browser controls are shown as simple player controls icons with shuffle and repeat options. In a normal Google fashion, there is not much fluff. Information presented on screen is basic, useful and utilitarian. This is a good thing in reality. If you think about, you should only visit the Google Music browser tab when you need to change something like a play list. It is very much a play and forget about browser tab.


Free songs are optionally provided you when activate your account. The songs I have come across are largely live versions of known songs. That's not completely the case, of course, but songs offered are worth the cost. Please keep in mind that you are limited to only 20,000 songs at this time.


Google has provided some basic Settings changes for the web version of the service. To their credit, you can opt of Google Music with the click of a mouse. You will loose all of the uploaded music of course, but you can do it. The same Settings page also displays registered devices to your Music account. Not much to look at here so move along.


Missing from the options is any parental controls or music content rating. I believe this needs to be corrected soon. Google has provided a ranking system as simple thumbs up or down. This option could use some improvement. I would like to have seen something more like Netfix has with a global ranking and the option to put your own ranking. This would make finding and buying new good songs much easier.

Speaking of buying, you are 2 clicks from shopping for any selected song. Not surprisingly, you are taken to the Google Shopping link for lots of buying choices. The buying options seem to drift quickly away from the starting song selected. Maybe that's good, maybe that's bad... I'm leaning towards bad - just slightly.

It should be noted that Google is looking to cover their but if you look at the usage agreement you are required to accept. I understand why, of course. I also find it acceptable to be allowed to only have one active player at a time. Make sure to read the fine print.

Beyond the browser usage, I also tested with my DroidX with Android 2.2.1 and the Google Music version v3.0.1.339. Newer versions may be better or worse... these are currently beta pieces after all.




Once again, utilitarian is the operative word when speaking of the Music App for Android. It is simple in layout and has very little fluff. Cover art is not made prominent, for example. Player controls are obvious and basic. We all know what a play button looks like, right.



Thought has been put into some of the back-end options. Specifically the cache and wifi options. I am very glad to see both. Heck anyone with anything but a truly unlimited data plan should be happy to see them. As you would expect, the cache option from the Music -> Settings option allows you to cache (keep a local copy) of the music you are streaming so you won't have too again any time soon. The wifi option allows allows for the ability to mandate that either streaming or downloading of music is done through the wifi connection. Heck that great in many ways. My home internet connection is WAY faster than the 3G I have and doesn't cost me any more. Nice going Google.



The down side of utilitarian is the realization that you might be missing something. One of the some-things for me seems to be an on-screen volume control. Not critical by any stretch. After all, there is that up-down volume button on the side after all.





My overall belief is Google Music is a winner. With ease of use, flexible device connectivity and Google is behind it, many people will enjoy this service.

Thursday, May 19, 2011

Dell printer warranty gathering information bash script for linux/unix

We have a LOT of different printer. A large number of them (over 60 and counting) are Dell branded printers. This includes laser printer models like the:
Dell Color Laser 3110cn
Dell Laser Printer 5210n
Dell Laser Printer M5200
Dell 5330dn Laser Printer
Dell Laser Printer 1720dn
Dell Laser Printer 5310n
Dell 2335dn MFP
Dell 2355dn Laser MFP
Dell 1815dn MFP
Dell 1600n MFP
Dell 3335dn MFP

I had a need to make sure to get all newer printers under warranty. Most of the units above have a web interface and most of the time the Service Tag is viewable from that interface. However, I'm very lazy even when it comes to clicking through all of the different types of printer web interfaces... then needing to go to Dell's support web site to manually check each Service Tag...

Naturally, I had to hack some shell script to do all of the dirty work for me. You will need snmpwalk, links, w3m and some added web fluff in the for of sortable columns and line highlighting via Sortable Table 2 java script. The script below will provide info on all printers found, just not warranty or Service Tag for non-Dell printers. The other good part is that you can tell from the "sysDescr.0" what firmware a printer is running also.

I don't remember why I have both links and w3m since this script was created a while back. I just thought it would be nice to post it now. Naturally, you could change out all of the html fluff and dump straight to csv for easy import into whatever you want.

If you have suggestions on code cleanup, I would love to see them. I think I have all the internal company specific stuff taken out and still usable. Enjoy. Sorry the formatting looks *UGLY*, but blogger freaks on the "span" greps in the code and this is the only way I have figured out how to show the code here. I need to verify that the stuff coming out of blogger is still working...

#!/bin/bash

WEBPINFO="/var/www/html/SOME/DIR/Printer_Info.html"
JSPATH="http://`hostname`/SOME/DIR"
PINFO="$WEBPINFO.`date +%y%m%d`"

cat > "$WEBPINFO" << EOF
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Printer Warranty and firmware Information - sortable</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="$JSPATH/sortedTable.js"></script>
<link type="text/css" href="$JSPATH/sortedTable.css" rel="stylesheet"/>
<link type="text/css" href="$JSPATH/nav.css" rel="stylesheet" />
<style>
        .red{color:crimson;}
        #nav{font-size:0.82em;}
</style>
</head>
<body>
<div class="tableWrapper">
<table id="table_1">
<thead>
<tr class="headerLine"><th class="sorttable_alpha">Hostname</th> <th class="sorttable_alpha">sysDescr.0</th> <th class="sorttable_mmdd">warranty expire</th> <th class="sorttable_alpha">Service Tag</th> <th class="sorttable_alpha">Printer name</th></tr>
</thead>
<tbody>
EOF

#get all network based print servers and exclude if needed
for PRINT_SERVER in `lpstat -t | egrep 'lpd://|socket://' |egrep -v 'SOME_PRINTER|SOME_OTHER_PRINTER'| cut -d"/" -f3 | cut -d":" -f1 | sort -u`
do
 unset SER ST PRTS http_proxy
 PRTS=`lpstat -t|grep $PRINT_SERVER[/:]|awk '{ print $3 }'|tr -s ':\n' ' '`
 ping -c 2 $PRINT_SERVER >& /dev/null
 if [ $? -eq 0 ]; then
   MOD=`snmpwalk -Os -c public -v 1 $PRINT_SERVER sysDescr.0  | cut -d":" -f2 `
   echo $MOD | grep -qi dell
   if [ "$?" -eq 0 ]; then
      #2335dn and JD24 and 1815dn are the same ST, but hrDeviceDescr.1 provides firmware version.
      if [ "`echo $MOD | egrep -qi '5330dn|2335dn|2355dn|JD24';echo $?`" -eq 0 ]; then
        ST="`links -dump http://$PRINT_SERVER/printer_info.htm|grep Service|tr -s ' '|cut -f6 -d ' '`"
      elif [ "`echo $MOD | egrep -qi '1815dn';echo $?`" -eq 0 ]; then
        MOD="$MOD `links -dump http://$PRINT_SERVER/printer_info.htm|grep 'Printer Firmware Version:'|cut -f2 -d ':'|tr -s ' '`"
        ST="`links -dump http://$PRINT_SERVER/printer_info.htm|grep Service|tr -s ' '|cut -f6 -d ' '`"
      elif [ "`echo $MOD | egrep -qi '3335dn';echo $?`" -eq 0 ]; then
        ST="`links -dump "http://$PRINT_SERVER/cgi-bin/dynamic/printer/config/reports/deviceinfo.html" |egrep 'Service'|tr -s ' '|cut -f6 -d ' '`"
      elif [ "`echo $MOD | egrep -qi '1720dn';echo $?`" -eq 0 ]; then
        ST="`links -dump "http://$PRINT_SERVER/cgi-bin/dynamic/information.html?path=/printer/info" |egrep 'Service'|tr -s ' '|cut -f6 -d ' '`"
      elif [ "`echo $MOD | egrep -qi '5210n|5310n';echo $?`" -eq 0 ]; then
        ST="`links  -dump "http://$PRINT_SERVER/cgi-bin/dynamic/config/reports/deviceinfo.html" |grep Service|tr -s ' '|cut -f6 -d ' '`"
      elif [ "`echo $MOD | egrep -qi 'M5200';echo $?`" -eq 0 ]; then
        ST="`links -dump http://$PRINT_SERVER/printer/info |egrep 'Service'|tr -s ' '|tr -d '|'|cut -f6 -d ' '`"
      elif [ "`echo $MOD | egrep -qi '3110cn';echo $?`" -eq 0 ]; then
        ST="`links -dump http://$PRINT_SERVER/ews/status/infomation.htm |egrep 'Service'|tr -s ' '|tr -d '|'|cut -f7 -d ' '`"
      fi
      #need a proxy? Squid is a great one!
      #export http_proxy=http://USERNAME:PASSWORD@PROXY_SERVER:PORT
      LINK="http://support.dell.com/support/topics/global.aspx/support/my_systems_info/details?c=us&l=en&s=pub&servicetag=$ST"
      SER="`w3m -no-cookie -dump "$LINK" |grep -A 6 Days|cut -c50-|grep "/"|awk '{ print $3 }'|sort |tail -1`"
    fi
    echo -e "<tr><td><a href="http://${PRINT_SERVER}">${PRINT_SERVER}</a></td> <td>${MOD}</td> <td>${SER}</td> <td><a href="$LINK">${ST}</a></td> <td>${PRTS}</td></tr>" >> $WEBPINFO
  else
   echo -e "<tr><td>${PRINT_SERVER}</td> <td>No Response</td> <td></td> <td></td> <td>${PRTS}</td></tr>" >> $WEBPINFO
 fi
done

cat >> "$WEBPINFO" << EOF
</tbody>
</table>

<p>
Total print servers = `lpstat -t | egrep 'lpd://|socket://' |egrep -v 'SOME_PRINTER|SOME_OTHER_PRINTER'| cut -d"/" -f3 | cut -d":" -f1 | sort -u|wc -l`
Created by $0 at `date` on `hostname`
<script>
        var config = {
                tableId:'table_1', // the only mandatory parameter
                rowOver:'row_over',
                sortMap:'1,2,3:desc'
        }
        var t2 = new Chth.sortTable();
        t2.init(config);
</script>
</body>
</html>
EOF

#keep a historical copy
cp -f $WEBPINFO $PINFO

Wednesday, May 4, 2011

Mini book review: "The Book of XEN - A Practical Guide For The System Administrator"

Mini book review: "The Book of XEN - A Practical Guide For The System Administrator" by Chris Takemura and Luke S. Crawford, published by No Starch Press, copyright 2010, ISBN-10 1059327-186-7, ISBN-13 978-1-59327-186-2

I would first like to begin with some credit as to why I started down the path of Xen. My co-worker Chakri Girda was excellent enough to be my introduction into the real world of using Xen for virtualization. We had been a long time user of various VMWare products to get the virtualization job done. He was the lead on our revamped virtualization project and choose Xen. Good move all around I'd say!

The quest for enlightenment can take many paths. My quest generally does depart from the "path-of-google" when it comes to technology learning. That is I google the item of interest and read some links/pages/source/whatever and make it work. For some reason I just wanted a book. I had an urge to understand Xen virtualization in a greater way. Don't misunderstand, I currently manage 7 Dell PowerEdge Xen servers with 30+ domU's. Not huge by any standard, but enough to make me want to learn some of the "best practices" and not just "it's running and has fail-over". So, A quick google lead me to this book.

Chris and Luke are very clear in the beginning on the CentOS/Redhat Enterprise Linux (slight) slant of the book. But face it, Xen works on everything. And the xm command args don't not change from distro to distro. The sidebars throughout the book provide welcome distractions and helpful titbits as a general rule.

The authors set the practical and pragmatic tone from the start. The introduction clearly sets the stage for the rest of the book by creating a brief and down to earth (mercifully) short background and summary of Xen. No extra fluff. As a bonus, there is an actual "But I Am Impatient!" section that provides a reader with what chapter to turn for "step-by-step instructions" or chapters depending on the type of deployment being considered.

Chapter 1 is the the real introduction to virtualization. A well thought out overview with just enough background. As as overview, you are told that some general concepts are a bit over-simplified to speed you along.

Chapter 2 has to be the most foundational portion of the book. This begins the "Getting Started" with Xen. Well written and laid out for reading. This in spite of being referred as a "step-by-step instructions". It turns out the entire book is written in a very readable manner that goes beyond the regurgitation of man pages or help files. Quite interesting how some of the paragraphs flow more like a novel and less like a how-to. I say this in a good way! As part of the title states, this is, "A Practical Guide". So, chapter 2 is the short version of follow-the-Xen-leader.

Chapter 3 is "Provisioning DomUs" it seems to go out of its way to be distro inclusive when setting up domU's. There is a tar install section, a Redhat/CentOS and even a Debian install section. The information provided even provides insight into the large scale deployment options. The quick and dirty version of SystemImager or Cobbler/koan. The array of choices for the newbie is quite large in this chapter.

Chapter 4 is "Storage With Xen" and begins the, "I know I have shown you the easy way, but that may not be the best way" approach to storage spelled out from chapter 2. What you get here is the blktap -vs- LVM information. The chapter is still presented in a very readable way. However, the spoiler of the chapter, in my opinion, is, "blktap is easy to set up and good for testing, while LVM is scalable and good for production". This chapter not only presents some basic commands, but also provides the foundation of *why*. The "why" something is done is often as important is what is done. So knowing both pieces allows a sysadmin to actually make the best decisions. In this chapter, the, "why" deals with storage allocation choices.

Chapter 5 is simply "Networking". Networking is really the whole focus of this chapter. The authors begin with the startup script hierarchy. Then explains when Xen preforms certain actions - on xend startup or domU startup. Followed by a well laid out how and why to name virtual interfaces. I had to dog ear one of the pages (page 65) as it perfectly explained an odd interface issue being reported by our MAC address monitoring. Nice, very nice.

Chapter 6 is "DomU Management: Tools and Frontends". Again, this chapter steps out to be more disto independent. They make sure to say that there are choices. The authors even provide installation instructions for the frontend tools. Really a continuation of the "step-by-step" approach taken throughout the book. Suffice it to say that there are frontend options and you will need to choose one.

Chapter 7 is "Hosting Untrusted Users under Xen: Lessons from the Trenches". This chapter could have been entitled, "Cover your A$$" or even "Share". The focus of this chapter is sharing (well, maybe imposing restrictions is another way to put it). The reader is gently stepped through a why and how to restrict CPU, IO and even networking. I love the whole system approach to handling DomU's taken in this chapter. The authors clearly provide the basics on how to generally handle each type of resource in a fundamental way. This means using system tools most likely in use already. I suspect this chapter is built from, "college of hard knocks" style learning. The authors are unusually nice when referring to the general user base that lead to this chapter. I would not have been so nice... I consider this chapter a must read no matter if your are a external (public) or internal (company) Xen administrator.

Chapter 8 is "Beyond Linux: Using Xen with other Unix-Like OS's". Honestly, I found this the least interesting. I was lead to this book with the general belief of being CentOS/Redhat centric since these are my OS platform of choice. Needless to say I do not need to know about Solaris or NetBSD.

Chapter 9 is "Xen Migration". This chapter does a good job of exploring the foundation of the migration options ("live" and "cold"). There are command examples for each option provided and well thought out reasoning. A nice addition was the inclusion of storage options in the migration mix. This included basic setup and configuration of ATA over ethernet (AoE) as well as iSCSI. Again, both informational context and actual implementation is provided.

Chapter 10 is "Profiling and Benchmarking under Xen". I was almost expecting a, "this is my kickass benchmark score for my servers" chapter. Luckily, I was wrong. Instead, the chapter lays a well balanced look at testing in general and how it can relate to Xen. Careful attention is noted at the beginning to state that no benchmark is a substitute for a production workload of a server. As common through the book, several options are provided and discussed. I do like inclusion of actual results and a real world application. The OProfile section is a nice addition and goes beyond the usual benchmarking spew. This is the section that provides the real world experience on how a problem was solved. My only issue with this chapter is the need to make all auxiliary program additions a download, configure, make and make install treadmill. Not a good idea for any production server to have 1.)build tools and 2.) "dead programs" that will never get updated and 3.) it's a bad idea.

Chapter 11 is "Citrix Xenserver" Xen For The Enterprise" - What?! A whole chapter devoted to non-Xen. Maybe a longer Introduction that included some of the Xenserver stuff. In spite of stray from Xen at it's core, the chapter does a good job to balance the open source -vs- commercial aspect of Xen core virtualization. I like the "gladiator combat" reference. It's good to have a sense of humor.

Chapter 12 is "HVM: Beyond Paravirtualization". This chapter represents a brief introduction into the HVM install process and setup. The only part that seems out of place is the 5 paragraph
Xen HVM vs. KVM in the middle of the chapter.

Chapter 13 is "Xen and Windows". This short chapter is another nice plunge into a specific implementation are for Xen. Well laid out chapter with good examples and very handy discussion of options. I managed to dog-ear a couple of the pages for later quick reference. The small section on HALs is a good addition in this chapter.

Chapter 14 is "Tips". I always like the real world problem -> resolution sections and this is the pinnacle for this book. This chapter has tidbits of knowledge for all to enjoy. I found the "PCI Forwarding" (passthrough) and a couple of other sections to be of great interest. Good chapter overall and one that *ALL* people should read IMHO.

Chapter 15 is "Troubleshooting". This chapter has the most dog-ears for me with 4. I will likely return to this chapter a couple of times in the near future. I have had (and ignore today) some of the issues noted in this chapter. Issue like the DomU interface number incrementing has just be an annoyance. While the VM restarting too fast has been a major battle on occasion. Another must read for the Xen (want-to-be) server administrator as far as I am concerned.

In summary, a well written book with lots of tidbits of wisdom and years of experience. This was actually an easy read. I would find no issue in recommending this book to a new -> intermediate Xen admin.