Forge Home

xd7deliverycontroller

Puppet module installing a production grade Citrix XenDesktop 7.x Delivery Controller, including XenDesktop site creation, high availability configuration and administrator rights setup.

6,043 downloads

6,043 latest version

4.8 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 2.0.0 (latest)
released Mar 29th 2018
This version is compatible with:
  • Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 3.8.0 < 6.0.0

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'virtualdesktopdevops-xd7deliverycontroller', '2.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add virtualdesktopdevops-xd7deliverycontroller
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install virtualdesktopdevops-xd7deliverycontroller --version 2.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

virtualdesktopdevops/xd7deliverycontroller — version 2.0.0 Mar 29th 2018

Citrix XenDesktop 7 delivery controller Puppet Module

Puppet module installing a production grade Citrix XenDesktop 7.x Delivery Controller, including XenDesktop site creation, high availability configuration and administrator rights setup.

The following options are available for a production-grade installation :

  • Fault tolerance : AlwaysOn database membership activation for Citrix databases created by the package
  • Sécurity : SSL configuration to secure communications with the Citrix XML Broker Service

Requirements

The minimum Windows Management Framework (PowerShell) version required is 5.0 or higher, which ships with Windows 10 or Windows Server 2016, but can also be installed on Windows 7 SP1, Windows 8.1, Windows Server 2008 R2 SP1, Windows Server 2012 and Windows Server 2012 R2.

This module requires SQLServer powershell module v21.0.17199. The module will install this dependancy :

  • From Powershell Gallery if sqlservermodulesource parameter is set to internet
  • From an enterprise location if sqlservermodulesource parameter is set to offline. In this case, the ZIP file containing the SQLServer v21.0.17199 (sqlserver_powershell_21.0.17199.zip) has to be manually downloaded from Powershell Gallery using the Save-Module -Name SqlServer -Path <path> -RequiredVersion 21.0.17199 powershell command.

This module requires a custom version of the puppetlabs-dsc module compiled with XenDesktop Powershell DSC Resource as a dependency. Ready to use virtualdesktopdevops/dsc v1.5.0 puppet module provided on Puppet Forge.

Change log

A full list of changes in each version can be found in the change log.

Integration informations

The Citrix databases will be installed in the default MSSQLSERVER SQL Server instance. This module does not provide the capability to install the databases in another SQL intance.

The database failover mecanism integrated in this module is SQL Server AlwaysOn.

The SSL certificate provided needs to be a password protected p12/pfx certificate including the private key.

The module can be installed on a Standard, Datacenter version of Windows 2012R2 or Windows 2016. Core version is not supported by Citrix for delivery Controller installation.

Migrated puppet example code in README.md to future parser syntax (4.x). Impact on parameters refering to remote locations (file shares) which have to be prefixed with \\ instead of the classical \. This is because of Puppet >= 4.x parsing \ as a single \ in single-quoted strings. Use parser = future in puppet 3.x /etc/puppet/puppet.conf to use this new configuration in your Puppet 3.x and prepare Puppet 4.x migration.

Usage

Mandatory parameters :

  • [String] setup_svc_username (Required): Privileged account used by Puppet for installing the software and the Xendesktop Site (cred_ssp server and client, SQL server write access, local administrator privilèges needed)
  • [String] setup_svc_password (Required): Password of the privileged account. Should be encrypted with hiera-eyaml.
  • [String] sourcepath (Required): Path of a folder containing the Xendesktop 7.x installer (unarchive the ISO image in this folder). Has to be prefixed with \\ instead of the classical \ if using UNC Path and Puppet >= 4.x or Puppet 3.x future parser.
  • [String] sitename (Required): Name of the Xendesktop site
  • [String] role (Required [primary|secondary]): Needs to be 'primary' for the first Citrix Delivery Controller of a site to initialize the databases and the Xendesktop site. Configure as 'secondary' for all other delivery Controllers of the site as they will join an existing Xendesktop site.

Required parameters if role='primary' :

  • [String] databaseserver (Required if role='primary'): FQDN of the SQL server used for citrix database hosting. If using a AlwaysOn SQL cluster, use the Listener FQDN.
  • [String] licenceserver (Required if role='primary'): FQDN of the Citrix Licence server.
  • [String] xd7administrator (Required if role='primary'): ActiveDirectory user or group which will be granted Citrix Administrator rights.

Required parameters if role='secondary' :

  • [String] site_primarycontroller (Required if role='secondary'): Primary controller of the existing Xendesktop site to which the newly configured Delivery Controller has to be joined.

Optional parameters :

  • [String] sitedatabasename (Optional, default is CitrixSiteDB): Name of the citrix site database to be created
  • [String] loggingdatabasename (Optional, default is CitrixLogDB): Name of the citrix logging database to be created
  • [String] monitordatabasename (Optional, default is CitrixMonitorDB): Name of the citrix monitor database to be created
  • [Boolean] sqlalwayson (Optional, default is false): Activate database AlwaysOn availability group membership ? Default is false. Needs to be true for a production grade environment
  • [String] sqlavailabilitygroup (Required if sqlalwayson = true): Name of the SQL AlwaysOn availability group.
  • [String] sqldbbackuppath (Required if sqlalwayson = true): UNC path of a writable network folder to backup/restore databases during AlwaysOn availability group membership configuration. needs to be writable from the sql server nodes. Has to be prefixed with \\ instead of the classical \ if using Puppet >= 4.x or Puppet 3.x future parser.
  • [String] sqlservermodulesource (Optional, [internet|offline]): Source of SQLServer Powershell module v21.0.17199 (see requirements at the beginning of this readme). Valid values are internet or offline. Default is 'internet'.
  • [String] sqlservermodulesourcepath (Required if sqlservermodulesource = 'offline' ): Path of the SQLServer Powershell module v21.0.17199 ZIP file. Can be a local or an UNC path.
  • [Boolean] https (Optional, default is false): Deploy SSL certificate and activate SSL access to Citrix XML service ? Default : false
  • [String] sslCertificateSourcePath (Required if https = true): Location of the SSL certificate (p12 / PFX format with private key). Can be local folder, UNC path, HTTP URL). Has to be prefixed with \\ instead of the classical \ if using UNC Path and Puppet >= 4.x or Puppet 3.x future parser.
  • [String] sslCertificatePassword (Required if https = true): Password protecting the p12/pfx SSL certificate file.
  • [String] sslCertificateThumbprint (Required if https = true): Thumbprint of the SSL certificate (available in the SSL certificate).

Installing a Citrix Delivery Controller

node 'CXDC01' {
    class{'xd7deliverycontroller':
        setup_svc_username       => 'TESTLAB\svc-puppet',
        setup_svc_password       => 'P@ssw0rd',
        sourcepath               => '\\\\fileserver\xendesktop715',
        sitename                 => 'XD7TestSite',
        role                     => 'primary'
        databaseserver           => 'CLSDB01LI.TESTLAB.COM',
        licenceserver            => 'LICENCE.TESTLAB.COM',
        xd7administrator         => 'TESTLAB\Domain Admins',
        sitedatabasename         => 'SITE_DB',
        loggingdatabasename      => 'LOG_DB',
        monitordatabasename      => 'MONITOR_DB',
        sqlalwayson              => true,
        sqlavailabilitygroup     => 'CLSDB01',
        sqldbbackuppath          => '\\\\fileserver\backup\sql',
        https                    => true,
        sslCertificateSourcePath => '\\\\fileserver\ssl\cxdc.pfx',
        sslCertificatePassword   => 'P@ssw0rd',
        sslCertificateThumbprint => '44cce73845feef4da4d369a37386c862eb3bd4e1'  
    }
}

node 'CXDC02' {
    class{'xd7deliverycontroller':
        setup_svc_username       => 'TESTLAB\svc-puppet',
        setup_svc_password       => 'P@ssw0rd',
        sourcepath               => '\\\\fileserver\xendesktop715',
        sitename                 => 'XD7TestSite',
        role                     => 'secondary',
        site_primarycontroller   => 'CXDC01',
        https                    => true,
        sslCertificateSourcePath => '\\\\fileserver\ssl\cxdc.pfx',
        sslCertificatePassword   => 'P@ssw0rd',
        sslCertificateThumbprint => '44cce73845feef4da4d369a37386c862eb3bd4e1'  
    }
}