Virtualmin Upgrade Issue – Solved


Today I updated the packages on my server using the built-in “Virtualmin Package Updates” module.  This is a terrific script that updates all virtual and core Linux packages with just one click!  Several packages were updated including Apache, PHP, Perl, Python, ClamAV and of course Virtualmin (and a couple dozen more).  I was running on Virtualmin 3.79 and upgraded to 3.83.

Everything went smoothly except 2 things.  1) The ClamAV install failed, and 2) The AWStats package said it completed succesfully but after upgrade I was getting the follow error when Virtualmin does it’s “self configuration check”.

The AWstats command /usr/share/awstats/wwwroot/cgi-bin/ was not found on your system.
Check the module configuration to make sure it is using the correct paths.

When I looked in /usr/share/awstats/wwwroot/cgi-bin/ there are no files!! What gives?

Turns out the issue was because YUM was trying to pull the updates from some repositories I added manually while installing some other packages.


So I did the following to correct the issue:

1) Ran this command to remove the package:

rpm --erase --nodeps awstats

Temporarily renamed a couple repos that I saw were causing the packages to get updated to the “non-supported” versions, namely the rpmforge and atomic repos.  See screenshots below.

awstats rpmforge package repo

I needed to rename the repo file from “rpmforge.repo” to “rpmforge.repo.bak” so that it wouldn’t get picked up during the package install.

The standard location for these repos are:


After renaming the repo file I ran:

yum install awstats

And we see YUM is picking up the “Virtualmin approved” version of the package!

awstats virtualmin repo

Same deal for ClamAV, the atomic.repo was the one I had to temporarily remove in that case:

clamav atomic package repo

clamav virtualmin package repo

Posted in Linux | Leave a comment

Got my Aliph Jawbone Icon Hero Today! – No Mute?

I finally got my Jawbone today in the mail. Bought one of those “white box” deals on eBay. It came with everything as advertised, including 6 ear buds and the ear loop, oem charger, usb cable.  The fit and finish is great, and it’s comfortable to wear.  I prefer the “in ear” style without the loop, and used the medium ear bud.  Was able to successfully pair it to both my iPhone 4 and my laptop (which has integrated bluetooth).  Tested it on a conference call today via Office Communicator, and it worked well… Except.  The kids got home from school and started hollering in the background.  Yes the door was closed, actually 2 layers of doors (our bedroom and then my office) but these kids you know, well, they can get pretty loud.  So I’m thinking where is the blasted MUTE button on this thing.. Turns out there isn’t one.  There is no mute button and no volume control.  I know it’s not a huge deal for most people, but for me it kinda is..

I am on a lot of conference calls and often work from home, so sometimes unexpectedly have the kids running and screaming around me .  Also have you ever been on a conference call and you have “darth vader” on the line?  I don’t wanna be “that” guy, lol.  For someone who multitasks a lot and bought this headset for total “hands free” operation, I don’t think its unreasonable to expect MUTE to be a basic function of most headsets today.

I’m looking at getting the Plantronics Discovery 975 or maybe the Plantronics Voyager Pro Plus.

What do you think, am I being unreasonable?

Posted in Mobile Phones | Leave a comment

Opalis Operator Console Database Connection Issue

opalis error transaction failed


I am having some trouble logging into my Opalis Operator Console after running through the installation script. After trying to login I am getting the error message “The username or password you have entered is not correct. Transaction failed”.

At first I thought it was an Active Directory or LDAP issue but in the error logs I’m seeing thing related to SQL rather than AD.  I don’t think the tables were properly created, because when I look at the Tables in the OpalisDevOpsPanel database I don’t see any of these tables.

My opalis-ds.xml looks correct, and I can ping the SQL server and telnet to port 1433.  The AD user running the JBoss server has dbo access to the database…

My opalis-ds.xml:

 <connection-property name="autoReconnect">true</connection-property>
 <check-valid-connection-sql>SELECT 1</check-valid-connection-sql>

From the system.log:

2011-02-09 08:59:29,338 INFO [com.opalis.opconsole.jmx.account.AccountServicesActiveDirectory] Got com.opalis.opconsole.jmx.account.SearchResult@120e76d
2011-02-09 08:59:29,526 WARN [org.hibernate.util.JDBCExceptionReporter] SQL Error: 208, SQLState: S0002
2011-02-09 08:59:29,526 ERROR [org.hibernate.util.JDBCExceptionReporter] Invalid object name 'dbo.USER_INFO'
2011-02-09 08:59:29,526 ERROR [] Error invoking login method
javax.el.ELException: org.hibernate.exception.SQLGrammarException: could not execute query
	at org.jboss.el.util.ReflectionUtil.invokeMethod(
	at org.jboss.el.util.ReflectionUtil.invokeMethod(
	at org.jboss.el.parser.AstPropertySuffix.invoke(
	at org.jboss.el.parser.AstValue.invoke(


Turns out I can’t read properly.  Either that, or the instructions here were not clear enough to me.

When the install script asks for the “database” apparently it wants the name of your existing Opalis database, so in my case “OpalisDev”. I was erroneously creating a brand NEW database for the Operator Console, called OpalisDevOpsPanel.  Oops.

I ran the installer script again and specified the correct database, everything is working now.  I probably could have just modified the opalis-ds.xml but was already midway running the script again when I realized my error.  Well, I hope that helps someone!

- Rezilient

Posted in System Center Opalis | Leave a comment

PowerShell Script working fine outside of Opalis, bombing when run from within Opalis Script Object

Problem:opalis powershell recycle start iis application pool .net script object

I have a PowerShell script that works fine outside of Opalis. When you pass it the server name and IIS application pool name it will start the app pool. The problem is that once I put the script in Opalis I am getting the following error:

“Object reference not set to an instance of an object.”

Here is the relevant bit of code:

        if ($pool.Name -eq $BadPool)
                $Recycled = 1
                $TheResult = "$BadPool was started..."

The script is bombing out at the line that says $pool.Start() – if I remove that line the script runs perfectly and $recycled is set to 1 (from 0).

Any idea why that doesn’t work from within Opalis?? Any help is appreciated, going crazy here.


I got it to work, simply by using:

$go = $pool.Start()

instead of just


Anyone have an idea why both methods work via Powershell, but only the former from within Opalis?

I confirmed via “$pool | get-member” it does have the start/stop/recycle methods, so I think I’m dealing with it correctly…? Question is why does Opalis handle it differently than just plain old Powershell?

One suggestion I have for the Opalis team is to have some level of script debugging WITHIN the Opalis Run .Net Script Object. The way Opalis is handling my PowerShell scripts doesn’t seem to be consistent with what I’m seeing in PowerGUI, for example. Maybe my syntax is not following best practices, who knows. But I’ll only be able to troubleshoot if Opalis tells me why my scripts are bombing!

- Rezilient

Posted in System Center Opalis | Leave a comment