XenMobile 9.0: MTC Deployment Script

Bei der Citrix XenMobile MTC (Abkürzung für “Multi-Tentant Console”) handelt es sich um ein XenMobile Deployment-Tool, mit dem man XenMobile DeviceManager (XDM) Instanzen automatisiert ausrollen und mit mehreren Tentants austatten kann.

Um das Deployment der MTC etwas zu erleichtern, habe ich mir erlaubt ein kleines Script zu schreiben. Mit diesem Script ist es nicht länger nötig das Google Web Toolkit, GWT und die Sysinternals nur zum starten des Deployments der MTC extra im Windows Environment bzw. $PATH zu haben. Das Script setzt das korrekte Environment und startet die zdm_mtc.bat.

:: Deployment Script for XenMobile MTC
:: @author: Simon Lauger <simon@lauger.name>
:: @date:   20.08.2014
::
:: Example of C:\xenmobile
:: ##############################################################
:: 18.08.2014  12:47    <DIR>          .
:: 18.08.2014  12:47    <DIR>          ..
:: 18.08.2014  12:21    <DIR>          grails-1.3.7
:: 18.08.2014  12:21    <DIR>          gwt-windows-1.5.3
:: 18.08.2014  11:37    <DIR>          SysinternalsSuite
:: 18.08.2014  12:23    <DIR>          XenMobile_MTC-9.0.0.35278
:: ##############################################################
:: 
@echo off

:: Setting grails and gwt environment 
SET GWT_HOME=C:\xenmobile\gwt-windows-1.5.3
SET GRAILS_HOME=C:\xenmobile\grails-1.3.7
SET SYSINTERNALS=C:\xenmobile\SysinternalsSuite

:: Specify JAVA_HOME (change, if needed)
SET JAVA_HOME=C:\Program Files\Java\jdk1.7.0_67

:: Include Java and sysinternals in %PATH%
SET PATH=%PATH%;%JAVA_HOME%\bin;%SYSINTERNALS%

:: Change directory 
cd C:\xenmobile\XenMobile_MTC*

:: Start Deployment
zdm_mtc.bat

Für die MTC werden folgende Tools/Pakete benötigt (die Versionen sind zu beachten). Sämtliche Tools sind herunterzuladen und zusammen mit dem Script im Ordner C:\xenmobile zu entpacken.

Aus den Sysinternals werden grundsätzlich nur psexec.exe und psservice.exe benötigt, jedoch sollte es keine Schmerzen bereiten das komplette Archiv herunterzuladen. Achtung: hier unbedingt vorher Lizenz/EULA aktzeptieren (dazu die Files manuell einmalig öffnen)!

Die MTC wird von Citrix leider etwas “stiefmütterlich” behandelt. Bis gestern gab es in der Download Sektion für XenMobile 9.0 keinen Download für den “Device Manager for Multi-Tentant”. Erst nachdem ich im Citrix Forum einen Topic eröffnet hatte wurde der Download nun nachgereicht. Beim “Device Manager for Multi-Tentant” handelt es sich u nahezu die identische Installationsroutine wie für den “normalen” XenMobile DeviceManager. Einzger Unterschied: es wird ein leerer Tomcat, ohne mitgelieferte XDM Instanz (Deployment-File/War-File) installiert.

Ein Deploymentversuch unter dem aktuellen Java 8x JDK brach bei mir im übrigen mit diversen Exceptions (u.a. ClassNotFoundException) ab und scheint derzeit wohl nicht möglich zu sein. Eine Info hierzu seitens Citrix konnte ich nicht finden.

Citrix Receiver 5.9 for iOS released

Receiver 5.9 for iOS

Receiver 5.9 for iOS im AppStore

Vor einigen Wochen hatte ich über das SHA2 Problem mit dem Citrix Receiver unter iOS (sowohl iPhone als auch iPad) berichtet. Dieses Problem ist nun glücklicherweise mit der Receiver Version 5.9 gelöst, die am Montag dieser Woche (16.06.2014) released wurde.

Neben dem Support von SHA2 wird nun auch iOS 7.1 offiziell supported. Eine weitere Neuerung ist die Unterstützung von SmartCards auf iPad Devices.

Neue Funktionen von Version 5.9
iOS 7.1 support
SHA2 Certificate support
Support for single FQDN access implementation
Local proxy support
Receiver now offers smartcard support. The following products and configurations are supported
- Supported readers:
- Precise Biometrics Tactivo for iPad Mini
- Precise Biometrics Tactivo for iPad (4th generation) and Tactivo for iPad (3rd generation) and iPad 2
- Thursby TSS-PK7 and PK8 Smart Card Readers
- Supported smartcards:
- PIV cards
- Common Access Card (CAC)
- Supported configurations:
- Smartcard authentication to NetScaler Gateway with StoreFront 2.x and XenDesktop 5.6 and above or XenApp 6.5 and above.

PHP Man-Pages

Gerade wieder in meinen alten Entwürfen für neue Beiträge gefunden: die PHP Doku im Linux Man-Page Stil. Ich finde das ganze immer wieder sehr hilfreich und praktikabel, gerade beim PHP Coden auf der Shell mit vim.

Die Doku wird als PEAR-Paket bereitgestellt und kann folgendermaßen nachinstalliert werden:

-bash# pear install doc.php.net/pman

Anschließend kann die Doku ähnlich wie bei den Man-Pages über pman nachgeschlagen werden.

-bash# pman recode_string
RECODE_STRING(3)                                                                                                   1                                                                                                   RECODE_STRING(3)

recode_string - Recode a string according to a recode request

SYNOPSIS
       string recode_string (string  $request, string  $string)

DESCRIPTION
        Recode the string $string according to the recode request $request.

...

Eine Integration in vim ist folgendermaßen möglich:

set keywordprg=pman

Dann nur noch über eine Funktion fahren und die K-Taste drücken.

Shrink der SQL Express Datenbank des vCenters

In seltenen Fällen und/oder bei falschen Einstellungen in den Statistikeinstellung kann es vorkommen das die SQL-Express Datenbank bis zum maximalen Limit von 10 GB vollläuft.

Das vCenter stoppt sich in diesem Fall mit folgendem Fehler (kann variieren)

[SQL Server]Could not allocate space for object 'dbo.VPX_HOST_VM_CONFIG_OPTION'.'PK_VPX_HOST_VM_CONFIG_OPTION' in database 'VIM_VCDB' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup." is returned when executing SQL statement

In diesem Fall muss nach folgendem KB-Artikel vorgegangen werden und die Datenbank von alten Einträgen befreit werden: http://kb.vmware.com/kb/1025914.

  • vCenter Dienste stoppen, falls nicht bereits geschehen
  • Verbindung über den MSSQL Management Client auf die vCenter Datenbank
  • Rechtsklick auf die VIM_VCDB > New Query und folgendes SQL Statement ausführen
SELECT
 DB_NAME() AS DbName,
 name AS FileName,
 size/128.0 AS CurrentSizeMB, 
 size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS FreeSpaceMB,
 CASE WHEN ((size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0) < 500) THEN 1 ELSE 0 END AS IsCritical
FROM sys.database_files

Der Query zeigt die aktuelle Auslastung der Datenbank. Wichtig ist hier die “CurrentSizeMB”. Da die kostenlose SQL 2008 R2 Express Edition ein Limit von 10 GB hat, besteht ab 8-9 GB Handlungsbedarf.

vCenter MSSQL Express

Von der Spalte “FreeSpaceMB” und “IsCritical” darf man sich nicht immer täuschen lassen. Für die Datenbank VIM_VCDB ist im Normalfall ein AutoGrow konfiguriert. Wenn der Platz zu knapp wird, wird die Größe somit in 10% Steps (ausgehend von der aktuellen Größe) automatisch angepasst.

Der obige Screenshot wurde nach einer Bereinigung durchgeführt, daher hat die Datenbank hier nur rund 4 GB in Benutzung.

  • Tabelle dbo.VPX_PARAMETER prüfen.
    • Prüfen ob dort die Werte event.maxAge, task.maxAge auf 60 gesetzt sind
    • Prüfen ob die Werte event.maxAgeEnabled und task.maxAgeEnabled jeweils auf true gesetzt sind
  • Cleanup Prozess über VIM_VCDB > Programmability > Stored Procedures > dbo.cleanup_events_tasks_proc starten

Dieser Job kann sehr lange brauchen. Bei meinem Lauf war der Cleanup erst nach rund 70 Minuten abgeschlossen. Während der Arbeiten das vCenter nicht starten und keine weiteren Änderungen an der Datenbank durchführen!

  • Shrink der Datenbank durchführen um den Speicherplatz auch wieder freizugeben

vCenter MSSQL Express

Auch dieser Prozess kann wieder einige Zeit in Anspruch nehmen. Abschließend kann die aktuelle Größe nochmal geprüft werden (siehe SQL-Statement oben). Die vCenter Dienste können nun wieder gestartet werden.

Citrix Receiver und SHA256-Zertifikate

Ein Bug, in den wir gelaufen sind. Der Citrix Receiver hat Probleme mit dem Zertifikaten, die mit SHA256 signiert sind. Trotz eingepflegtem Root- und Intermediate-Zertifikat ist keine Verbindung zu den freigegebenen Ressourcen möglich. Das Zertifikat wird im Browser aber als gültig erkannt. Folgender Fehler taucht auf (auf iOS-Geräten hatte ich jedoch überhaupt keinen Eintrag in den Logfiles!).

SSL Error 61 : You have not chosen to trust the issuer of the server's security certificate.

Das Problem scheint bei folgenden Receivern aufzutreten.

  • Receiver for iOS
  • Receiver for Linux
  • Teils auch Receiver for Anroid

Unter Windows Systemen konnten wir das ganze nicht nachvollziehen. Support für SHA256 ist für iOS im Q2/2014 angekündigt. Zum heutigen Tag ist jedoch noch kein Update erschienen. Als momentane Lösung bleibt nur ein Zertifikat mit SHA1 zu verwenden.

Siehe auch http://citrixtroubleshootingsteps.blogspot.de/2014/04/ssl-error-61-you-have-not-chosen-to.html und http://www.citrix.com/content/dam/citrix/en_us/documents/products-solutions/citrix-receiver-feature-matrix.pdf.