The actual process of application deployment using Installation Manager is quite straightforward. In this section, we review these steps while providing an example of how such a deployment could be performed using one of the most commonly used applications on MetaFrame, Microsoft Office 2003.
The following are the basic application deployment steps, which are reviewed in more detail in the following sections:
1. | Verify Installation Manager configuration. Verify that the appropriate Installation Manager components have been configured as required and all the necessary permissions and administrative delegations have been assigned. This process was discussed in the " Components of Installation Manager" section earlier in this chapter. |
2. | Determine package format. If the application already provides an MSI or MSP installation package, you can use it; otherwise , you first need to package the installation using the Packager application. You can find details on this procedure in the section "Creating ADF Packages Using the Packager Utility" later in this chapter. For our example, we're going to use the MSI package provided with Microsoft Office 2003. Office 2003 Standard Edition provides the STD11.MSI package on the root of the installation media. |
3. | Copy packages to the network share point. An ADF package can either be manually copied or automatically copied when the package is being built. Microsoft recommends copying an MSI or MSP package to the share using the MSIEXEC command. Use the MSIEXEC command with the /a (administrative installation option) parameter for MSI packages and the /p (apply an update) parameter for MSP packages. For example, using Office 2003 Standard Edition, from a command prompt, you would issue the following command, assuming that D: is your CD-ROM drive containing the Office installation media: msiexec /a d:\std11.msi Although it may appear that Office is actually being installed at this point, it is not. MSIEXEC is preparing Office in the designated share point so that a centralized, automatic installation can be performed. |
4. | Add the package to Installation Manager. The package must be added to Installation Manager before it can be deployed. An added package is listed under the Packages object in the Management Console, and clicking a specific package shows additional details about the applications available within the package, as shown in Figure 11.2. You can easily add a package by right-clicking the Packages object, or selecting Installation Manager Packages from the Actions menu and then choosing Add Package. Figure 11.2. Packages must be added to Installation Manager before they can be deployed to target servers.When you are adding or editing a package, the specific property information displayed depends on the type of package. For example, the properties for an MSI package allow you to specify one or more transform files, which customize the way the package installation will be performed. You can also define additional command-line options for the install and uninstall of the package. An ADF package does not have these additional configuration options available to it. Note As part of its Office Resource Kit, Microsoft provides the Microsoft Office 2003 Custom Installation Wizard. This tool allows you to create a transform file for Office 2003, predefining a number of installation options that further streamline the installation of the Office 2003 package. |
5. | Create any required server groups. Server groups simplify deployments by allowing you to easily direct a package to multiple servers. A common server group configuration has all Windows 2003 Terminal Servers in one group and all Windows 2000 Terminal Servers in another. When grouped together, they are treated as a single entity for the purpose of application deployment. When creating or editing a server group, you are presented with a dialog box that has all available servers matching the platform filters listed across the top, as shown in Figure 11.3. Servers belonging to different platforms can reside in the same server group. Figure 11.3. You manage the list of available servers that are displayed by selecting the desired platform filters. |
6. | Create any required package groups. If the application you are deploying consists of multiple packages, you can group these packages into a single package group, assign an installation order for the packages, and then deploy it as a single object entity instead of having to schedule each package individually. Right-clicking on the Packages object and selecting Create Package Group begins this process. Three tabs of information are available when you are creating or editing a package group. On the Package Group tab, you select from the list of available packages to add to your package group. You can nest package groups within other package groups if desired. A package group can also consist of different package formats. You can quickly add packages to an existing package group simply by dragging and dropping them on top of the package group. When more than one package belongs to a package group, you order the packages for deployment on the Install Sequence tab. The final tab is Network Account. On this tab, you can override the default account and/or network share point that you defined when configuring Installation Manager. |
7. | Schedule the package deployment. The application is finally ready to be deployed to the target servers. Details on scheduling a package deployment are discussed in the next section of this chapter. |
8. | Monitor the status of a package deployment. Installation Manager allows you to monitor the status of a deployed application package. Details are reviewed in the "Monitor the Status of a Package Deployment" section of this chapter. |
9. | Schedule a package uninstall. After a package has been successfully installed, you then have the option of creating an uninstall job to remove that program if desired. By right-clicking an installed package or package group, you can select the Uninstall Package menu option. The Uninstall Job Scheduling Wizard is identical to the one you use to create a package installation (including scheduling options), except that the list of available servers shows only those servers that have the package installed. If a package is no longer installed on at least one server, the Uninstall option is automatically removed for the given package. Caution If you have created an ADF package for an unattended installation using the Add Unattended Program option, you will not have the option to uninstall this program through Installation Manager. Also, if an unattended Windows Installer (.MSI) installation is performed, uninstalling the package using Installation Manager does not remove application files (.dll, .ocx, and so on) stored in the SYSTEM32 folder. |
Next, we look at the scheduling, monitoring, and deployment tasks in more detail.
Note
You can view the packages that have been installed on a given server simply by highlighting the server in the Manager Console and selecting the Installed Packages tab from the right pane.
To schedule package deployments, right-click the package or package group and select the Install option. Regardless of whether you've selected a package group or a package, the same Schedule Install Job Wizard appears. The steps to deploying a package are as follows :
1. | Select the servers and/or server groups onto which the package (or package group) is going to be deployed. |
2. | Schedule the package or package group for deployment. The Schedule dialog box (see Figure 11.4) shows the packages you are scheduling and the target servers that will receive the packages. If you chose a server group, you can expand the server group folder to view individual servers. Figure 11.4. Package deployments can be scheduled to begin immediately or at any time in the future.You can schedule a deployment immediately or for any date/time (time is in 24- hour format) in the future. If you are deploying a package group, you can select multiple calendar dates. Multiple dates can be chosen to accommodate the fact that a package group installation may be quite large and cannot be completed within a single maintenance window. When a package group is being deployed, the Options button is visible. Clicking Options opens a small dialog box where you can define the installation window for the package. For example, you could define a window from 11 p.m. (23:00) to 4 a.m. (04:00) when a package group could be deployed. If all servers have not received the package group by the time the maintenance window closes , any deployments currently in progress will complete, but no new deployments of the package group will be started until the next deployment date is reached. If only a single date was selected for the deployment, the package group will not be deployed to all servers. If the package deployment begins again on another date, it will skip over any servers that already have received this version of the package and continue where the last maintenance window left off. Two options are available for server reboots. When you are deploying a package group, the option labeled Delay Reboot Until End of Job is enabled and selected by default. When it is selected, Installation Manager prevents individual packages in the package group from initiating a reboot until the last package installation is complete. The Force Reboot After Job option is available whether a package or package group is being deployed. When it is selected, the target server is rebooted whether or not the package requires it. Citrix recommends that this option always be enabled to ensure a clean package deployment. If this option is not selected, the server will not reboot unless the package explicitly initiates it. |
3. | Click Finish to create the package installation job. If the job is scheduled to start immediately, it will; otherwise, it will be assigned a pending status until the deployment time and date are reached. |
You can view the current state of a deployment by clicking the Installation Manager Summary object. In the right pane, you can view the list of applications and jobs. Figure 11.5 shows the current state for a deployment of the Office package.
Right-clicking the job allows you to edit the job settings, delete the job, or view and edit the properties for the job, including viewing more detailed information on the status of the deployment.
After the package installation is complete, the status will reflect either success or failure. By clicking the Job Details button, you can view the detailed log information for the package installation. This information can aid in determining what may have caused a package to fail.
The location of the log file on the target server depends on the package deployed. For an MSI package, the log file can be found by default in
<Citrix Install Dir>\Installer\Logs\Jobxxxx.log
<Citrix Install Dir> points to the location where MetaFrame Presentation Server is installed. By default, this is C:\Program Files\Citrix.
For an ADF package, the log file is located in
%SystemRoot%\Program Files\Citrix\Installer\aginst.log
Tip
You can also access jobs for a specific package by selecting the package under the Packages object and then viewing the Jobs tab. Right-clicking a job allows you to access the same job details found under the Summary object.
Another method of scheduling the deployment of an application is through the Application Publishing Wizard. This approach combines the task of scheduling the deployment of a packaged application with the publishing of the application. Just as with standard application package deployment, before deploying a package through the Application Publishing Wizard, you must add it to Installation Manager. After you have added the package, you can deploy and publish the application as follows:
Within the Management Console, right-click the Applications object and select Publish Application, or choose New, Published Application from the Action menu.
When prompted for the application type, you need to choose Installation Manager Package and then choose the specific application from the Packaged Application drop-down list (see Figure 11.6). Notice that this matches the list of applications that exist within the MSI file for Office 2003 that we added to IM earlier in this chapter.
Note
Applications packaged in ADF packages created using an unattended installation or a file copy do not appear in the Packaged Application list.
The remainder of the wizard prompts are identical to those for publishing a standard application, which was discussed in Chapter 10. There is one thing you should note. When choosing the servers where you want to publish the application, do not specify the location where the application resides; instead, just leave this information blank. The application will automatically be located on the host server when requested by a user .
You will automatically go to the Schedule Install Job screen, where you specify when the job should be scheduled for deployment.
Tip
Until the application deployment is complete, the published application will not be available for use. You can enter query farm /app at a MetaFrame server's command prompt both before and after the deployment is complete to quickly confirm the availability of the published application.
Because an application can reside in multiple MSI, MSP, or ADF files, if you're going to be deploying applications using the Application Publishing Wizard, you should define the preferred package for that application so that IM knows what package to use when deploying the application to a given server.
You choose the preferred package by first selecting a package containing the appropriate application under the Packages object. Then, in the right pane, select the Applications tab, find the application, then right-click, and choose Properties. For the Preferred Package drop-down list box, choose the package that you would like to designate as the preferred package (see Figure 11.7). This package is then automatically used when a user selects the application, and it must be installed by Installation Manager.
Besides the basic published application management tasks that can be performed using the APPUTIL command-line utility, this tool also allows an administrator to perform some simple package deployment tasks directly from a command prompt.
APPUTIL supports the following package deployment- related tasks:
Add a server to the list of configured servers for a published application. If this application is publishing an Installation Manager application, the associated package is automatically installed on the MetaFrame server. The following command performs this task:
APPUTIL /i <app ID> <server name>
The app ID is not the friendly name for the application. You must run APPUTIL /q to find the app ID that corresponds to a given published application.
Remove a server from the list of configured servers for a published application. APPUTIL /u <app ID> <server name> removes the server from the list, but it does not initiate the uninstall of the corresponding package from the server.
Query the list of packages and package groups defined in the farm. Running the command APPUTIL /qp returns the package ID, type, and description of the packages and package groups.
Query the current state of a running job. You require the job ID for the given job in order to query its status. If a job was initiated from within the IM, there is no way of retrieving the associated job ID, but if you initiated a job from the command prompt, you can use the job ID output from that to query the current state. The syntax of the command is
APPUTIL /qj <job ID>
Schedule the immediate installation of a package. The syntax is
APPUTIL /ip <package or package group ID> <server name> [REBOOT]
When the REBOOT parameter is included, the server is forced to reboot after the package or package group installation is complete.
This command does not allow you to access the scheduling features of Installation Manager. When a package deployment is initiated using this command, it begins immediately.
Schedule the immediate uninstall of a package. The syntax is nearly identical to the /ip parameter:
APPUTIL /up <package or package group ID> <server name> [REBOOT]
Alert
Understand the syntax of the APPUTIL command and what tasks can and cannot be performed using this tool.