1. Overview of this document

The intent of this document is to provide a Step by Step configuration of XenMobile AppController High Availability (HA) and Clustering. When HA and Clustering is configured, Cluster Head serve as the Data base holder and Service nodes will communicate to Cluster Head to get the information from database.

Prerequisites for HA:

  • Two AppController Virtual Machines and they should be of same build.
  • Three free internal IP addresses. One for Primary AppC, second for Secondary AppC and third is the Virtual IP used to access these HA paired AppC.

Pre-requisites for Clustering:

  • You should have multiple AppC virtual machine with separate IP Address assigned for each virtual machine service node. AppC virtual machines should be of same build.
  • A load balancer VServer and Content Switching Vserver should be created for load balancing the traffic to these service nodes.

2. Configuring HA between two AppControllers

Before proceeding, the virtual image of AppController should be downloaded from Citrix website. (www.citrix.com)

  • To install AppController on the XenServer platform, the VM file with .xva extension must be downloaded
  • To install AppController on the VMWare platform, the VM file with .ova extension must be downloaded

Note: After Successfully downloading the AppController virtual image, upload the same into XenServer/VMWare platform and make another copy of virtual machine for HA and 2 to 3 copies for clustering (i.e. Service Nodes).

The login prompt for AppController will show up once the import process is completed.

Log in to the AppController CLI

Username: admin

Password: password

The Main Menu is displayed, Enter 0 to perform Express Setup

Enter 1 to configure the IP Address, Subnet Mask

Configure AppController with the following:

     IP Address: <AppController IP address>

Subnet Mask: 255.255.255.0

Enter 2 to configure the Default Gateway

Enter Default Gateway address

Enter 5 to Commit Changes

Enter Y to restart AppController

Repeat above steps on all other AppController Virtual Machine. By doing this assigning of IP addresses for the Virtual Machines will be done.

After successfully assigning the IP addresses, Select any two AppController Virtual machines to configure HA. Login to the primary AppController CLI and select option 1.

Select option 1 for Role Preference.

Select Option 1. By selecting option 1 it means this Virtual machine is your Primary machine.

Select option 2 to assign Virtual IP and Peer IP.

Virtual IP address is the common IP address used to access active/primary AppController.

Peer IP is the IP address of another AppController Virtual Machine setup for HA.

Shared key could be any alpha numeric value which should be entered in the secondary service.

Provide the below information and hit “y”to commit changes.

Select option 3 and hit “y” to enable HA.

Login to the secondary AppController CLI and select option 1 to configure HA.

Select option 1 to assign the Role Preference.

Select option 2, which is secondary. Now this will be your Secondary device.

Select option 2 to enter Peer IP and Shared key of Primary AppController.

In Peer ID address, enter the IP address of the primary AppController and provide the Shared key that was entered in above steps.

Select Option 3 to Enable HA and hit “y” to confirm.

If you select Option 4, you can view the current status of HA.

3. AppController initial configuration for HA pair

Type in the below URL in the browser by providing correct Virtrual IP address which was assigned in the above section.

https://<Virtual IP Address>:4443/ControlPoint/

Login using below credentials:

User Name: administrator

Password: password

You will be presented with the following screen. First we are going to run through the Configure Network wizard.

You will be prompted to change the Administrator password. Type

Current password: password

New password: <Type in a unique password>    

Click Next

Enter the following parameters for the System settings:

     Hostname: <Type in your Hostname>

     IP address: <Type in your IP address>

Subnet mask: <Type in your Subnet mask>

     Default gateway: <Type in your Default gateway>

Note: DNS A record should be created for AppController FQDN in DNS server.

Enter the following parameters for the Active Directory configuration:

     Server: <Enter the Active Directory IP address> (this is the IP address of your Domain Controller)

Domain name: <Type in a Domain name>

Service account: <Type in a Service account in UPN format>

Base DN: Point to the user DN

Password: <Type in the password for the above service account>

Note: Select Use Secure Connection if your domain controller accepts only secure connections (i.e. port 636).

Enter the following parameters for the NTP Server Configuration:

NTP server: <Enter NTP server’s IP address> (general best practice is to use the                       DC as time server)

Time Zone: US/Eastern

Enter the following parameters for the DNS Configuration:

DNS suffixes: <Type in your DNS suffixes>

Primary and Secondary IP Address: <Enter your DNS server’s IP address>

Enter the following information for your Workflow Email Settings:

Email Server: <Enter your mail server’s IP address>

Port: 25

Email: <Type in an Email in UPN format>(the sending account for the workflow)

A summary of all your defined settings is displayed. Click Save and Click yes to reboot the AppController.

Note: How to verify HA is working fine?

Power Off the Active AppController Virtual Machine and open up a Web browser and type in the Virtual IP/Hostname that resolves to this IP address. If you are able to authenticate and see the apps in Web Receiver, this means that your HA is working fine.

4. Configuring AppController clustering

Login to the primary AppController CLI and Select option 2.

From the aviliable options select 3, Create Cluster and provide a Shared key which will be used while configuring Service Nodes.

Note: This Virtual Machine will be your Cluster Head. Provide AppController Vitrual IP as your Cluster head IP address in service nodes.

Note: Before preparing AppController Service heads, please make sure that you have   assigned IP addresses to Service Head AppController by follwing steps in section 2 of this document.

Login to the CLI of anyone of the AppController which was assigned an IP address(i.e. Service Nodes AppControllers), using below credentials.

User Name : admin

Password : password

Select option 2 for Clustering.

Select option 4, to join the Cluster.

Provide HA environment Virtual IP Address as your Cluster Head IP address and enter the shared key which was provided in Step 2 of this section and enter “y” to Reboot the AppController.

Login to the rest of the Service Node AppControllers and repeat above steps.

Note: After making these configuration on individual Service Node AppControllers, you can directly access any Service Node AppController using their IP address.

5. NetScaler Configuration for AppController Clustering.

Below section helps you in configuring Content switching policies on NetScaler to handle AppController clustering.

Login to NetScaler Admin console.

Expand Traffic management then expand Load Balancing and click on services.

In right hand pane. Click Add, Provide the Service Name as Cluster Head and Provide the Server IP address details of Cluster Head, Select the Protocol as HTTP and Set the Port as 80.

Under Advanced tab, Go to Cache Redirection Option set the Cache type to Regular Server.

Provide the Server ID as the cluster head server ID and Click Create.

Note: Server ID can be found while configuring AppController Clustering (i.e. From section 4 of this document )

Again Click Add to create another service, Provide the Service Name as Service Node and provide the Server IP address of cluster node, Select the Protocol as HTTP and set the port as 80.

Under Advanced tab, Go to Cache Redirection Option set the Cache type to Regular Server.

Provide the Server ID as the service node server ID and Click Create.

Note: If you have more than one Cluster Node please repeat the above step for each Node.

Now click on Virtual Servers under Load Balancing.

Click Add, Provide the Virtual Server Name, from the Service tab select all the Cluster Nodes(In this case I only have one cluster node) and uncheck the Directly Addressable Check box, click on Yes in Clear & Disable pop up.

In the same window click on Method and Persistence tab, under Persistence section, Select the Persistence Type to Rule from the drop down. Please copy and paste the below Rule and Response Rule Which are mentioned below

Rule:

HTTP.REQ.HEADER(“cookie”).VALUE(0).TYPECAST_NVLIST_T(‘=’,’;’).VALUE(“ACNODEID”)
Response Rule: HTTP.RES.HEADER(“Set-cookie”).VALUE(0).TYPECAST_NVLIST_T(‘=’,’;’).VALUE(“ACNODEID”)

After you enter the above Rule and Response Rule, Click Create.

Again Click Add, Provide the Virtual Server Name, from the Service tab select the Cluster Heads and all Nodes(In this case I only have one cluster node) and uncheck the Directly Addressable check box, click on Yes in Clear & Disable pop up.

In the same window click on Method and Persistence tab, under Persistence section, Select the Persistence Type to CUSTOMSERVERID from the drop down. Please copy and paste the below Rule to Rule text box.
Rule : URLQUERY CONTAINS sid=
After you enter the above Rule. Click Create.

Verify that both the LB servers that you have created in the above should be in Up state.

Expand Traffic Management, Expand Content Switching and Click on Policies.

In Right Hand Side pane, Click Add. Provide the policy Name and add the below expression under Expression table.
Expression : HTTP.REQ.HEADER(“Cookie”).CONTAINS(“ACNODEID”)

Again Click Add. Provide the policy Name and add the below expression under Expression table.
Expression : HTTP.REQ.URL.CONTAINS(“SID=”)

Now click on Virtual Servers under Content Switching.

Click Add, Provide the Virtual Server Name, provide the IP Address, select the Protocol as SSL and set the Port to 443.
Under Policies tab using Insert Policy option Insert the policies that you have created in the previous steps with URL policy having the highest priority next Cookie policy and also insert Default policy. Also select the Target accordingly, Set Cookie LB as target for Default policy

Under SSL Settings tab Add the Certificate that is issued to the AppC FQDN and click Create.
Note: You need to have a proper DNS entry for this Virtual IP resolving to AppC FQDN.

Verify the state of the virtual server that you have created.

You can also refer to the below URL for more information:

/blogs/2014/03/14/configuring-xenmobile-ha-clustering-for-the-large-enterprise-powered-by-netscaler/