The Microsoft Provisioning System (MPS) Deployment Tool is a stand-alone .NET Framework application that enables you to automate the distribution and configuration of MPS components in your hosting environment. The purpose of the Deployment Tool is to automate MPS deployment, as well as to automate the steps necessary to deploy the hosting environment.
What Does It Do?
The following is a general list of actions that the MPS Deployment Tool is able to perform to deploy components of a solution:
- Runs Microsoft Windows Installer (MSI) packages (currently this
feature is only used for installation and uninstallation
actions).
- Runs MPS named procedures:
- Initialization Procedures
- Deployment Automation Namespace Procedures
- Initialization Procedures
- Automates the configuration of Active Directory.
MPS Deployment Tool UI
The MPS Deployment Tool UI provides the following key features:
- Assign servers to key roles:
- MPS Servers
- SQL Servers
- MPS Servers
- Display available deployment actions.
- Display the status of actions taken.
- Display a history of actions taken.
- Display a list of pending actions.
MPS Deployment Tool Engine
The Deployment Tool Engine provides the following:
- Enforcement of dependencies as defined in the
MpsRequirements.xml file
- Automation of deployment actions
- Running of MSIs through MpsRemoteExec.exe
Note: MSI command-line parameters are primarily hard coded and in many cases specific to the MSI being installed. The following are some types of MSIs installed by the Deployment Tool. - MPF.msi (installs all MPF related things)
- Namespace MSIs
- Non-Core MPF Providers (core providers are installed by
MPF.msi)
- Provisioning Clients including Microsoft FrontPage and Windows
SharePoint Services
- Web Services
- MPF.msi (installs all MPF related things)
- Synchronization of passwords across services, for example,
Active Directory, COM+ component, and Win32 Services
- Direct and specific Active Directory modifications
- Running of MPS named procedures
Configuration files
There are two key configuration files: MpsConfig.xml and MpsRequirements.xml. These are created and maintained on the first server that the Deployment Tool is installed in a given Active Directory domain or forest.
- MpsConfig.xml - Stores the state of the currently deployed
solution. The Deployment Tool reads from and writes to this file
during usual operation.
- MpsRequirements.xml - Stores the initial definition of the
solution and defines the actions that can be taken as part of a
solution deployment. This file also defines the components that
will be installed in a given solution, as well as dependencies
between entities. The MpsRequirements.xml file contains no
deployment or customer specific information. The Deployment Tool
transfers the contents of this file to the MpsConfig.xml file in
the following cases:
- The requirements schemaVersion tag is greater than that of
MpsConfig.xml in the case of an upgrade.
- MpsConfig.xml has no requirements schemaVersion tag in the case
of a new installation.
- The requirements schemaVersion tag is greater than that of
MpsConfig.xml in the case of an upgrade.
Every time that the Deployment Tool starts, it locates these configuration files by first checking the following Object in Active Directory. This object is created in the System container at the root of an Active Directory forest.
Copy Code | |
---|---|
Dn: CN=MPS Server Config Entity,CN=System,DC=Fabrikam,DC=com |
The location of the actual files or more specifically the MSIShare and ConfigShare Universal Naming Convention (UNC) paths is stored in the adminDescription attribute as follows:
Copy Code | |
---|---|
adminDescription: <config><comment>WARNING - DO NOT MODIFY THIS PROPERTY</comment> <logShare>\\MPSENG\ConfigShare</logShare><msiShare>\\MPSENG\MSIShare</msiShare></config> |
MpsRemoteExec.exe
The main idea behind this component is to allow for secure remote running of MSIs for a user account with Domain Administrator rights. To achieve this, the Deployment Tool runs MpsRemoteExec.exe on the remote or target server. MpsRemoteExec.exe is available to any server in the environment because it is installed to the MSIShare directory. Here is a summary of the process:
- The Deployment Tool runs MpsRemoteExec.exe on the remote or
local server.
- MpsRemoteExec.exe then installs and starts a service called
MPSRemoteExecSVC, which is embedded inside MpsRemoteExec.exe at
build time.
- The MPSRemoteExecSVC service then runs MsiExec.exe, passing the
command line specified by the Deployment Tool and referencing the
MSI that is stored in the MSIShare share, which was created the
first time the Deployment Tool was installed.
- A log file is created on a local or remote share called
ConfigShare under the Log directory.
- When an MSI exits, it returns either a success or a failure
which the Deployment Tool then reads and reports back to the
user.