Installation silencieuse de XenApp 7 et configuration d’un Site en PowerShell

Ban-Citrix-XenDesktop-7

Encore et toujours XenApp et XenDesktop 7.0… voici cette fois-ci un nouvel article dans lequel je vous propose de voir ensemble comment installer les différents composants de manière silencieuse et de réaliser une partie de la configuration de manière automatique.

Pour rappel, les composants impliqués dans notre infrastructure SBC sont le suivants :

  • Citrix Delivery Controller (le chef d’orchestre)
  • Citrix Studio (la console d’administration)
  • Citrix Director (pour le suivi et le monitoring)
  • Citrix License Server
  • Citrix StoreFront 2.0 – Remplace la Web Interface que l’on pouvait retrouver dans les anciennes versions de produit et qui doit d’ailleurs disparaître d’ici 2014/2015. La Web Interface n’est officiellement pas supportée avec XenDesktop (ou XenApp) 7.

Je vous invite à parcourir cet article, si vous souhaitez déployer rapidement une infrastructure SBC (XenApp 7), j’y décris l’ensemble des étapes via l’assistant d’installation. C’est partie pour un déploiement automatique et silencieux 🙂

Etape 0 – Prérequis

Le prérequis de base est l’installation de .NET 3.5.1 sur les machines sur lesquelles vous souhaitez déployer votre infrastructure. Ce composant est obligatoire pour tous les composants XenDesktop 7 et vous en aurez besoin pour utiliser les lignes de commandes qui vont suivre.

Pour l’installer, vous avez l’embarras du choix :

  • Télécharger vous-même dotnetfx35.exe… (pour ceux qui veulent la méthode la plus pénible) et l’installer. N’oubliez pas de prendre l’Offline installer, si vous réalisez, comme quoi, le test sur des VM qui n’accèdent pas à Internet 😉 !
  • Vous exécutez l’assistant d’installation de XenDesktop 7 une première fois, l’autorun.exe activera de base pour vous la feature qui va bien 😉 Ou vous utilisez le Server Manager pour ajouter la feature.
  • Mais on avait dit silencieux, alors faisons tout en silencieux… donc en PowerShell : Import-Module ServerManager puis Add-WindowsFeature AS-Net-Framework.

Etape 1 – Installation silencieuse des composants principaux

NB : Dans le cas évoqué ci-dessous, je dispose de 5 machines virtuelles Windows Server 2008 R2 (2012 ou 2012 R2, ça serait OK aussi). 1 VM pour mutualiser tous les rôles Citrix (sauf pour le StoreFront), 1 VM dédiée pour le StoreFront donc, 1 VM SQL Server, 1 VM SBC avec l’agent VDA et bien sûr un AD DS.

Pour installer les différents composants Citrix de notre infrastructure, vous devez localiser les 2 exécutables suivants : XenDesktopServerSetup.exe et XenDestkopVdaSetup.exe qui se trouvent tous les 2 dans le répertoire x64\XenDesktop Setup\ si vous vous positionnez à la bases des sources de l’ISO XenDestkop7.1.

Installation des rôles Delivery Controller + License Server + console Studio + Director sur notre première machine virtuelle (je mutualise en effet les rôles pour notre test) :

XenDesktopServerSetup.exe /COMPONENTS CONTROLLER,DESKTOPSTUDIO,DESKTOPDIRECTOR,LICENSESERVER 
/NOREBOOT /PASSIVE /CONFIGURE_FIREWALL /NOSQL

Les paramètres supplémentaires sont assez explicites, nous souhaitons que l’installation de ces composants se fassent sans redémarrage pour la machine virtuelle, l’installation doit-être silencieuse (aucune fenêtre ou question posée l’utilisateur), le firewall de Windows doit-être configuré automatiquement et nous ne voulons pas que SQL Server Express 2012 soit installé.

Install_CTX_DC

Notez que vous pouvez visualiser l’ensemble des paramètres disponibles en exécutant la commande suivante  où en consultant la page Citrix suivante :

List_Parameters

NB : Si vous souhaitez que SQL Server Express soit installé, supprimez le composant /NOSQL. Dans mon cas, je dispose d’une machine virtuelle dédiée pour le serveur SQL.

Dans le même genre, nous pouvons maintenant procéder à l’installation de Citrix StoreFront sur notre seconde machine virtuelle, vous le devinez aisément les paramètres à saisir vont ressembler à ceci :

XenDesktopServerSetup.exe /COMPONENTS STOREFRONT /NOREBOOT 
/PASSIVE /CONFIGURE_FIREWALL /NOSQL

Après quelques instants, le composant a été installé ; vous pouvez le vérifier aisément en recherchant la console dans le menu Démarrer.

StoreFront_Silently

Etape 2 – Installer l’agent VDA (Virtual Delivery Agent) et créer votre serveur SBC

Le serveur SBC – Server Based Computing, est le serveur sur lequel vont s’exécuter à distance les applications et espaces bureautiques (je ne parle pas de bureau car ce n’est pas du vrai VDI dans notre cas).

Dans les versions précédentes de XenApp, cette opération de créer un serveur SBC, de le configurer et de l’ajouter à la ferme applicative déjà existante, nécessitait un certain nombre d’opérations… et surtout pouvait s’avérer redondante si vous deviez provisionner de nombreux serveurs. Aujourd’hui une ligne et c’est fait. Pour ce faire, procédez comme suit :

XenDesktopVdaSetup.exe /PASSIVE /NOREBOOT /COMPONENTS VDA 
/CONTROLLERS "SV-DC01.hello.local" 
/ENABLE_REMOTE_ASSISTANCE /ENABLE_HDX_PORTS 
/ENABLE_REAL_TIME_TRANSPORT

Install-VDA-Silently

Comme vous le voyez, dans XenApp 7, l’opération est simplifiée puisque nous pouvons au moment même de l’installation de l’agent VDA, préciser au serveur SBC à quel Delivery Controller il doit contacter pour s’y rattacher. Le serveur SBC sera donc connu de votre CTX DC mais vous devrez bien entendu réaliser les opérations de le rattacher à un Catalog et/ou à un Delivery Group via la console d’administration Citrix Studio (et bien sûr y déployer les applications à publier).

Pour le détail de l’ensemble des paramètres disponibles, consultez cette page Citrix.

Etape 3 – Configuration site XenApp 7 en PowerShell

Depuis les versions 6 et 6.5, Citrix ne cesse d’améliorer le SDK qu’il met à dispositions des administrateurs pour pouvoir gérer leurs environnements et en automatiser la gestion via PowerShell. La version 7 ne fait pas exception et propose de base de nombreuses CmdLets qui vont vous permettre d’administrer votre site XenApp 7.

Je vous propose dans cette partie de voir ensemble comment créer en PowerShell :

  • Les 3 bases de données nécessaires pour XenApp 7 (best-practice Citrix pour les environnements de Production),
  • La création du site XenApp,
  • La définition d’un groupe d’utilisateurs AD comme administrateurs principaux sur le site.

Supposons que nous ayons les variables suivantes à disposition :

$DatabaseServer = "SV-SQL01" # Le nom de notre serveur SQL
$DatabaseName_Site = "XA7-Site"
$DatabaseName_Logging = "XA7-Log"
$DatabaseName_Monitor = "XA7-Mon"
$DatabaseUser = "HELLO\XA7-DB-User" # Service Account
$DatabasePassword = "MyPassword001" # Le mot de passe du compte
$XD7Site = "XA7-Site" # Le nom de notre futur Site XenApp 7
$FullAdminGroup = "HELLO\XA7-FullAdmins-Group"

Avant toute chose, nous devons importer les CmdLets du SDK Citrix :

Import-Module Citrix.XenDesktop.Admin
Add-PSSnapin Citrix.*

A partir de là, nous avons tout ce qu’il nous faut. Nous pouvons commencer par créer les 3 bases de données :

$DatabasePassword = $DatabasePassword | ConvertTo-SecureString -asPlainText -Force
$Database_CredObject = New-Object System.Management.Automation.PSCredential($DatabaseUser,
$DatabasePassword)
# Creation des DB
New-XDDatabase -AdminAddress $env:COMPUTERNAME -SiteName $XD7Site -DataStore Site -DatabaseServer $DatabaseServer -DatabaseName $DatabaseName_Site -DatabaseCredentials $Database_CredObject
New-XDDatabase -AdminAddress $env:COMPUTERNAME -SiteName $XD7Site -DataStore Logging -DatabaseServer $DatabaseServer -DatabaseName $DatabaseName_Logging -DatabaseCredentials $Database_CredObject
New-XDDatabase -AdminAddress $env:COMPUTERNAME -SiteName $XD7Site -DataStore Monitor -DatabaseServer $DatabaseServer -DatabaseName $DatabaseName_Monitor -DatabaseCredentials $Database_CredObject

Notez que le compte SQL HELLO\XA7-DB-User, dans mon cas, doit disposer des droits suivants sur le serveur de base de données : dbcreator et securityadmin.

Confirm-Creation-DB

Les bases de données sont maintenant créées, vous pouvez éventuellement le vérifier sur le serveur SQL (via le Management Studio). Nous passons maintenant à la création du site XenApp 7.

New-XDSite -DatabaseServer $DatabaseServer -LoggingDatabaseName $DatabaseName_Logging -MonitorDatabaseName $DatabaseName_Monitor -SiteDatabaseName $DatabaseName_Site -SiteName $XD7Site -AdminAddress $env:COMPUTERNAME

Et enfin, nous définissons un groupe AD comme Full Administrateur de notre site XenApp 7. Tous les utilisateurs au sein de ce groupe disposeront d’un accès “Full Administrator” pour gérer et administrer notre site XenApp 7.

# Ajout d'un groupe AD en tant que Full Administrator du Site XenApp 7
New-AdminAdministrator -AdminAddress $env:COMPUTERNAME -Name $FullAdminGroup<br />Add-AdminRight -AdminAddress $env:COMPUTERNAME -Administrator $FullAdminGroup -Role 'Full Administrator' -All

Confirm-Admin-Group

Vous pouvez maintenant vous connecter à la console d’administration Citrix Studio, votre site a bien été créé. Il ne reste plus qu’à créez vos catalogues de serveurs SBC et définir vos Delivery Groups. Ces opérations peuvent également être réalisées en PowerShell, j’y reviendrai dans un futur article.

Pour aller plus loin

Prenez le temps de consulter ces articles à partir desquels je me suis inspiré pour ce quelques commandes. Ils vous proposeront quelques commandes supplémentaires, comme par exemple comment activer les licences du serveur de licences directement en PowerShell :

Comme d’habitude, retrouvez le script complet en téléchargement en suivant ce lien :

Si vous avez la moindre question ou que vous ne parvenez pas à reproduire ce test sur votre lab, n’hésitez pas à poser votre question 🙂 !