Date Published: October 2007.
Author: Claudio Vacalebre.
Soundtrack: For Test, Author: Claudio Vacalebre.
According to the TechNet About the MPS Deployment Tool:
The MPS Deployment Tool is a stand-alone .NET application that enables you to automate the distribution and configuration of MPS components in your hosting environment. Deployable MPS components include the Provisioning Engine, MPF COM Client, Providers, namespaces, databases, and resource managers. By using the MPS Deployment Tool to install provisioning components, you can do the following:
Eliminate all manual installation and configuration steps.
Minimize the occurrence of errors.
Provide a reliable, repeatable, and verifiable setup of all your provisioning components.
Get up and running very quickly.
The MPS Deployment Tool provides access to a package of Microsoft Windows Installer (MSI) files that are distributed to your provisioning environment at deployment time. The manner in which components are distributed and configured is based on how you design your environment with the tool. To facilitate this, the tool enables you to preset the configuration of various components in the environment prior to running the actual deployment. You can even verify an existing environment that you configured when running the tool in previous deployments.
Other advantages you obtain by using the MPS Deployment Tool are that you can:
Modify your installation with the tool rather than by uninstalling and then reinstalling all components.
Reconfigure components after you deploy them.
Update single components instead of removing and reinstalling components.
Install MPS components remotely, so you can choose to run the tool on any remote computer in your Active Directory hosting domain.
And that's fine. But what if you have trouble installing the Deployment Tool?... :-)
I went through this issue a couple of times so I have thought it could be worth sharing with you the issue and the resolution.
As you know both HMC 3.5 and HMC 4.0 share the same Provisioning System which is call Microsoft Provisioning System (MPS).
The next version of HMC 4.5, which is expected to be released next springtime, will also use MPS therefore we should expect to see again in the HMC 4.5 the Deployment Tool in action.
Why am I mentioning HMC 4.5?... Because the issue I'll explain here is common to HMC 3.5 and HMC 4.0 therefore I expect to see it even in the next version, so I think it is better to be prepared, just in case...
And why do I think it is an issue?... Because it is something we have seen happening in the IT world many, many times.
It has to do with the famouses uninstall features which some times don't perform exactly how you suppose they should.
Luckly the issue can be solved very easily but unluckily the info about it wasn't available on the network... until now!...:-)
To replicate the issue I'm using a brand new HMC 4.0 Virtual Environment built using Microsoft Virtual Server 2005 R2
So, all the snapshots you'll see here are representing two HMC 4.0 infrastructure server roles such as the Domain Controller (AD01) and the MPS Backend (MPSSQL01).
The window in the bottom right is the AD01 server and the window in the top left is the MPSSQL01 server.
This snapshot shows the two servers before starting the installation of the Deployment Tool.
Ah!... Forgot to mention that Microsoft do not support Production deployments of HMC 4.0 in virtual environment therefore what you are seen here is just a Testing environment for the sake of this "demo".
Installing the Deployment Tool is very easy, the Microsoft Installer Wizard is so easy that with few click of the mouse you have install it.
Here below few snapshots showing the installation steps
The Welcome Screen: just Click Next to start the installation.
Installation complete!: just Click Finish to close the Installer Wizard.
Now, have you noted anything different from the The Welcome Screen and Installation complete! snapshots other than the Installer Wizard window Changes?
You should, if you didn't and you like to challenge yourself just come back, open both the snapshots and try to find the difference... then move to the next pane...
I know you would have found it... :-)
In the case you didn't, just look at the AD01 Virtual server window on the Installation complete! snapshot and you will notice a new object entry!
Indeed the Deployment Tool, as part of the installation process, creates an Object in the Directory and called it MPS Server Config Entity: “CN=MPS Server Config Entity,CN=SYSTEM,DC=fabrikam,DC=com”. where it stores several information including those it uses to find it’s Config and MSI Shares.
Until here, everything is fine: the installation has been complete, the object created so that you are ready to start using the Deployment Tool...
But what if... something goes wrong while using the deployment tool and you need to remove / reinstall the Deployment Tool and the new installation fails?...
I can tell you, while deploying the HMC 3.5, I went crazy for a week trying to figure out the issue until someone from the MPS Team asked me to double check for such Active Directory entry... but when I have had the same issue with HMC 4.0 I recalled that message (saved in my inbox!) on the matter which refreshed my [weak] memory so that I was able to solve it in a minute!
Let's try now to replicate the issue...
First task: uninstalling the MPS Deployment Tool.
Once the Installer Wizard has been launched (in this case launching the DeploymentTool.msi) it checks for an existing installation and appropriately offers the three options modify, repair and remove.
This snapshot shows the Installer Wizard after relaunching it on an already-installed Deployment Tool service.
As soon as the installer Wizard complete the Deployment Tool service removal the Uninstall Complete! window appears.
At this point you think everything is back as it was before launching the Deployment Tool installation.
Unluckily this is not the case. If you look at the Uninstall Complete! snapshot, you can notice that the MPS Server Config Entity object is there, untouched by the uninstaller!
You could argue that some time is needed to have the AD "sync'ed"; so I diligently waited for more than a hour to see if that object was going to disappear. But it didn't happen; the object was there, no way to have it removed by the unistaller.
Now there are at least 4 things that could happen when trying to reinstall the MPS Deployment Tool. See next pane.
Depending on several factors, which are currently out of my understanding, when unistalling and reinstalling the MPS Deployment Tool you could face the following situations:
1. Luckily, the most common behaviour is that the Installer Wizard checks for the object in AD and read the config parameters presenting a greyed mask where you can only accept the default values (those found in the AD) as shown in this snapshot.
2. There could be a case where, for reasons I cannot even guess, the adminPermission attribute of the the MPS Server Config Entity object is partially configured. This snapshot shows indeed how the Installer Wizard presents the config data. This situation could lead to 2 different scenarios:
2.a Luckily, the most common behaviour is that the Installer Wizard completes. The first time you run the Deployment Tool you are requested to fill the msi and config shares appropriately . Note this in this Deployment Tool first screen, interesting to note also that Deployment Tool has identified this as a bug (on the left top corner the pane title is program bug).
2.b The Installer Wizard fails, you cannot complete the Deployment Tool installation therefore you cannot continue with the HMC deployment. Although this is a rare situation it can happen (it happened to me twice!).
Instead of betting being lucky or not, I strongly suggest, in the case you need to reinstall the deployment tool, to:
1. Use the DeploymentTool.msi to successfully run the unistaller
2. Simply remove the MPS Server Config Entity object from the AD using tool such as ADSIEdit; this simple task will eliminate any subsequent issue around installing the MPS Deployment Tool.
Simple uh?...
As I have written at the beginning of this article, this problem is common to HMC 3.5 and HMC 4.0 and if it will not be fixed, it will be present also in the HMC 4.5.
Here I have shown the issue as it happened in HMC 4.0 but you can have a look at this snapshot which is related to the same issue on the MPS Deployment Tool Installer Wizard in HMC 3.5
Someone could think about this as not being a real bug, I personally think that removing an application means removing everything of it or, in very few specific cases, the removal application should inform if something has been left in the system so that the user can follow up accordingly.
To Bug or Not to bug?... Not an easy answer.
First it’s important to understand that the MPS Config Entity object is a pointer to the MSI and Config shares these shares are created during the initial install of the DT. These shares hold all of the MSIs as well as the state of a deployment. The Deployment Tool was designed to be run from multiple servers, each instance of the Deployment Tool in an environment will reference the MPS Config Entity object to find the MSI and Config shares for the deployment, this way every instance of the Deployment Tool can ensure that deployment state is maintained correctly across an environment. There is a more detailed description of this object here.
Given this concept of multiple DT instances the question of whether to remove everything at uninstall becomes more complicated. The design calls for uninstalling only the bits that are specific to the instance, leaving behind all of the common bits including the MSI and Config Shares, the MPS Config Entity object and the Deployment acct. This design allows you to move the location of the Deployment Tool executable without losing deployment state. The goal is to protect the deployment state as well as possible, understanding that this does make a full uninstall and reinstall of the Deployment Tool a bit trickier.