The Citrix Connector 7.5 for System Center 2012 Configuration Manager, also known simply as the Citrix Connector, integrates XenApp and XenDesktop 7 with Configuration Manager 2012 (CM). The Connector streamlines use of Configuration Manager deployment technology to automate Citrix server and desktop image management. The Connector leverages the new Application/Deployment Type (App/DT) feature of Configuration Manager 2012 to orchestrate deployment to the right images at the right time. Administrators can optionally use the App/DT model to deliver the actual application publications.
Many of our customers are still early in migrating to the App/DT model. They are still leveraging their extensive library of Packages and Programs developed with great care over many years. These Citrix customers want to know how to use all the goodness of the Connector with these Packages and Programs. So, if you are interested in using the Citrix Connector to deploy Packages and Programs to your Citrix servers and desktop, this post is for you.
In many cases deploying Packages and Programs with the Citrix Connector is a straight forward process familiar to any CM administrator. However there are two scenarios in which specific actions are required to avoid unintended consequences when deploying Packages and Programs with the Citrix Connector.
Scenario 1 – Deploying to Image Managed (MCS or PVS) Citrix hosts
The first scenario that requires special consideration is deploying Packages and Programs to VMs created with Citrix XenDesktop Machine Creation Services (MCS) or Citrix Provisioning Services (PVS). As an administrator, you want to deploy software on the master image of a Machine Catalog and rely on XenDesktop/XenApp to clone worker VMs. Deploying directly to VM clones wastes compute, storage, and network resources because each clone will discard the changes on reboot.
Thus, the Citrix Connector is optimized to only install applications on the master image of a Machine Catalog while entirely skipping application installation on the clones of the master image. The key enabler that allows us to selectively install applications is a CM client policy that puts a 3rd party agent like the Citrix Connector in charge of when to install application or updates.
Here’s the problem. CM client policy does not stop the installation of Packages and Programs or Task Sequences; it only applies to the App/DT model and Windows Updates. This means that the Citrix Connector cannot prevent the installation of Packages and Programs on MCS or PVS clones, leading to unnecessary resource utilization.
Create a device collection that contains just the update device and deploy Packages and Programs to this device collection instead of the device collection created by the Citrix Connector.
Scenario 2 – App Publishing from the CM Console
The second scenario comes into play when using the CM Console to publish the Package/Program as a XenApp-hosted application. The Citrix Connector uses CM application detection logic to ensure that the application is installed before publishing it to Citrix Receiver. This is to prevent an icon from appearing in Receiver before all the servers in a Delivery Group have the application installed.
Unfortunately Package/Program deployments do not have reliable, ongoing application detection logic. Consequently, this orchestration feature of the Citrix Connector cannot be supported when using the Citrix Application Publishing Wizard to publish apps from the Configuration Manager Console.
Use Citrix Studio to publish the application instead of the Citrix Application Publishing Wizard in the CM Console.
If you are using CM Application Catalog and want the Citrix hosted version of the installed program to appear there, you will need to create a new application with a Script deployment type and a Citrix deployment type. The Script DT supplies the application detection logic by looking for the application’s executable, while the Citrix DT creates the application publication in XenDesktop.
The remainder of this post is divided into two sections and will give specific examples of how to implement the solutions discussed above. The first focuses on image management and precisely targeting the program deployment at the update device for a Citrix device collection. The second section focuses on publishing the program installed by CM as a Citrix hosted app.
Solution for Image Management and Resource Utilization
As previously mentioned, the Citrix Connector cannot prevent the installation of Packages and Programs on pooled Citrix session hosts created with Machine Creation Service (MCS) or Provisioning Service (PVS). To prevent this potential inefficiency, a new device collection must be created that only contains the update device. There are 4 steps to accomplish this:
- create the new device collection,
- deploy the program to the new device collection,
- monitor for deployment success on the update device, and
- update the pooled Citrix session hosts with the updated image.
These steps are detailed below.
For background information about master image management with the Citrix Connector and the role of the update device, watch the Master Image Management video http://www.citrix.com/tv/#videos/11534 on CitrixTV.
Before you start, use the machine catalog properties to make sure there is a designated update device, the Update Method property value is “update device”, and the Update Device property value contain a machine name. This is a very important step. If an update device is not defined for a Citrix image managed device collection, the steps outlined below will result in a new device collection with zero members.
Step 1: Use the Configuration Manager Console to create a device collection
- In the Assets and Compliance section of the Configuration Manager Console, click the “Create device collection” action on toolbar ribbon.
- On the General Page of the Create Device Collection Wizard,
- Give the collection a name that is based on the parent collection (e.g. “XDsite1 \ MCS Win7 Desktops – MasterImage”)
- Browse for the limiting collection, this is the parent collection created by the Citrix Connector that represents your XD machine catalog (e.g. XDsite1 \ MCS Win7 Desktops)
- On the Membership Rules Page, click the Add Rule button and select Query Rule from the drop-down menu,
- Name the Query Rule “IsMasterImage“
- Then click the Edit Query Statement button
- On the general tab click the create “star” icon
- Select the Citrix_VirtualDesktopInfo attribute class and the IsMasterImage attribute
- The result properties can be <unsorted>
- On the criteria tab, click the create “star” icon
- On the Criterion Properties page, set the following values:
- Criterion type = Simple Value
- Where: Citrix_VirtualDesktopInfo – IsMasterImage
- Operator: is equal to
- Value: 1 (true)
- Click OK to continue.
- Click OK to continue
- Click OK to continue.
- Click Next to proceed to the Summary page
- On the Summary Page, click Next to apply the settings to the new device collection.
- Use the Update Membership action on the newly created device collection to apply the query and populate the device collection with the update device computer. When you finish you will have a device collection with a single member, the update device (see example below).
Step 2 – Deploy the Program
Next, deploy the Package/Program to the device collection created in the previous step. Program deployment is standard practice for experienced Configuration Manager administrators and is well documented on TechNet here. To make the process as automated as possible, we recommend that the deployment action is set to “install” and the purpose is set to “required” on the Deployment Settings Page of the Deploy Software Wizard.
Step 3 – Monitor Deployment for Completion
After deploying the software, monitor the deployment to ensure that it successfully installed on the update device in the targeted collection. The following TechNet article explains how to monitor software deployments http://technet.microsoft.com/en-us/library/gg682201.aspx.
A successful deployment is illustrated in the screenshot below. When the program deployment is 100% successful, proceed to step 4 and use Citrix tools to propagate the changes to the entire pool of Citrix session hosts.
Step 4 – Update Virtual Machine Instances with New Image
After the software successfully deploys on the update device, use the appropriate Citrix administrative console to propagate the changes to all the machine instances in the machine catalog.
Machine Creation Services
Use Citrix Studio to update the master image with the update device that received the Package/Program deployment. The following links provide the necessary details for this step.
- MCS Image Management (eDocs) http://support.citrix.com/proddocs/topic/xenapp-xendesktop-75/cn-plan-mcs.html
- Update a Master Image (eDocs) http://support.citrix.com/proddocs/topic/xenapp-xendesktop-75/cds-update-master-vm-rho.html
Use the Provisioning Services console to promote the maintenance version of the vDisk which received the Package/Program deployment to the production version. The following links provide the necessary details for this step.
- PVS Image Management (eDocs) http://support.citrix.com/proddocs/topic/xenapp-xendesktop-75/cn-plan-pvs.html
- Promoting updated vDisk versions (eDocs) http://support.citrix.com/proddocs/topic/provisioning-7/pvs-vdisks-update-promotion.html
Solution for Application Publishing
The first section of this post covered the installation of Packages and Programs onto Citrix machines managed by Configuration Manager. This section is focused on publishing the application installed by the program as a Citrix hosted virtual app. There are 2 ways to publish applications:
- use Citrix Studio or
- use the CM console with the Citrix Connector console extension installed.
Use Citrix Studio to publish to StoreFront/Receiver Only
The first and easiest solution is to simply use Citrix Studio to publish the application. Here are the details on how to create a Delivery Group application http://support.citrix.com/proddocs/topic/xenapp-xendesktop-75/cds-create-deliv-grp-application.html#cds-create-deliv-grp-application.
Use CM console to publish to the CM App Catalog and StoreFront/Receiver
If you are using the Configuration Manager Application Catalog to deliver applications to users and want the Citrix hosted version of the program to appear there, you will need to perform the following 5 steps to create a script-based application.
For additional information (including a how-to video) about script-based application use the following resources.
- Publish pre-existing applications http://www.citrix.com/tv/#videos/11562
- Create script-based application (eDocs) http://support.citrix.com/proddocs/topic/xenapp-xendesktop-75/cn-create-script-app.html
Step 1 – Create a New Application
Create a new application with the same name as the package and add a Script DT, this application will represent the package in the new CM 2012 app/DT model that the Citrix Connector supports.
Step 2 – Add a Script DT to the Application
In this solution you use the Script DT to provide the detection logic required by the Citrix Connector to ensure that the program is installed prior to publication in XenDesktop.
When creating the Script DT, you are required to enter an installation program on the Content page of the wizard, however in this scenario the Package/Program installed the content. Just enter “null” for the installation program and move to the Detection Method page.
The detection rule of the Script DT is used to detect the presence of the application installed by the package/program. In the example below the detection rule indicates the presence of C:\Program Files (x86)\Citrix Dev Test\App10\App10.exe in the file system. It is important to use the file system detection method to reference the executable that will eventually be published in XenDesktop as you will see in later. Do not use the registry or Windows Installer product code (setting type) as the application detection method.
Step 3 – Deploy the App/Script DT to the Device Collection of Citrix Session Hosts
Unlike the Package/Program, which was intentionally targeted at a device collection that contains only the update device, the application with Script DT must be deployed to the device collection created by the Citrix Connector that contains all the pooled Citrix session hosts. The deployment evaluation returns success when the file, registry key, or product code installed by the Package/Program is detected, telling the Citrix Connector the application is ready for publication in XenDesktop.
Step 4 – Add the Citrix XenApp and XenDesktop 7.5 DT to the Application
With the App/Script DT targeted at the Citrix device collection, the next step is to add the Citrix DT to the application. This will launch the Citrix Publishing Wizard. As you can see in the example below, the publishing wizard is using the executable defined in the Script DT detection method as the command line to published application.
Step 5 – Deploy the app/Citrix DT to the Connector Created User Collection
The final step to include the Citrix hosted version of a Package/Program in the CM Application Catalog is to deploy the application with both the Script DT and Citrix DT to a user collection. The Citrix Connector creates user collections in CM that match the delivery groups defined in XenDesktop. Make sure that you deploy the app to the user collection that coincides with the Delivery Group selected when publishing the app.
An alternative approach to the methods discussed in this post is to use the System Center 2012 SP1 Configuration Manager Package Conversion Manager 2.0. This is a tool from Microsoft that assists in converting Packages and Programs into the new App/DT model.