4 1 1 1 1 1 1 1 1 1 1 Rating 4.00 (1 Vote)

Introduction

Every Citrix XenApp/XenDesktop deployment must have at least one License Server which can be either shared or dedicated to this site. On small Citrix deployments, like lab environment, the license server role can be installed in the same server than the Delivery Controller. Servers running Citrix products contact the License Server to obtain licenses : if users connect to a Citrix product, it draws licenses from the License Server. That is, the Citrix product requests to check out a license from the License Server on behalf of the user or client device. When the license is successfully checked out, the user can run the product.

The license types are:

  • User/device licenses : The license server can assign licenses to a user or a device and monitor license consumption. The licenses are assigned (and blocked) to this user or device for 90 days after the first conection, even if the user or device doesn't connect anymore.When assigned to a user, the license allows access of this user from an unlimited number of devices. When assigned to a device, the license allows access from the device by an unlimited number of users.
  • Concurrent licenses : This type of license is not tied to a specific user : when a user starts a product, the product requests the license and it's checked out to the specific computer or device that the user is using. When the user logs off or disconnects from the session, the license is checked back in and is available for another user.

If all licenses are in use, 15 days supplemental grace period enables unlimited connections to a product, allowing you to understand and address the issue. After the period expires, normal connection limits based on licenses available on the licensing server are enforced :  when users disconnect, no new connections can occur until license levels return to normal.

Xd7licenseserver Puppet module

Integration data

This xd7licenseserver module installs and configures the Ctrix licensing server and the Microsoft RDS license server required for server based applications publishing (XenApp). The license file provided to this module is automatically installed on the Citrix Licensing server. Citrix XenApp/XenDesktop Product Edition is configured in xd7mastercontroller class during XenDesktop 7.x site creation.

The Microsoft RDS license server has to be manually activated with the method of your choice (automatic, phone, ...). it is automatically registered in the "Terminal Server License Servers" group in Active Directory.

The following options are available for a production-grade installation :
- Security : IIS SSL configuration to secure communications between Director and the client device.

Module usage

Module under development - Coming soon

Xd7licenseserver module structure

install.pp : installs Citrix and RDS licensing software

The Citrix licensing feature is automatically installed from the XenDesktop 7.x installation media using the XD7feature DSC resource.

The RDS license server ad it's associated management GUI are also installed are Microsoft RDS licenses are required for publishing applications hosted on a server OS (SBC deployment).

	reboot { 'after_run':
	 apply => immediately,
	 when => refreshed
	}
	
	#Install Citrix licensing server.
	#DSC Test function returning always false on non-english Windows Server OS
	dsc_xd7feature { 'XD7Licensing':
	 dsc_role => 'Licensing',
	 dsc_sourcepath => $sourcePath,
	 dsc_ensure => 'present',
	 #notify => Reboot['after_run']
	}

config.pp : adds the citrix license file

The Citrix license file (.lic format is downloaded in the c:\Program Files (x86)\Citrix\Licensing\MyFiles folder and the Citrix licensing service is restarted to trigger a new scan of the folder.


	#Ensure Citrix licensing service is running
        service{'CitrixWebServicesforLicensing':
          ensure => 'running',
          enable => true
       }
  
	#Import and install Citrix license file in Citix licensing store and notify citrix licensing service to restart it
	dsc_file{ 'CitrixLicenseFile':
	 dsc_sourcepath => $licenseFilePath,
	 dsc_destinationpath => 'c:\Program Files (x86)\Citrix\Licensing\MyFiles\citrixlicense.lic',
	 dsc_type => 'File',
	 notify => Service['CitrixWebServicesforLicensing']
	}

rdslicensing.pp : configure RDS license server required for XenApp deployments

Under development


if (($rdslicensing != '') and ($rdslicensing == 'install')) {
		#Needed for ActiveDirectory remote management using Powershell
		 dsc_windowsfeature{ 'RSAT-AD-Powershell':
		 dsc_ensure => 'Present',
		 dsc_name => 'RSAT-AD-Powershell'
		}
	
		#Install RDS licensing features (required for server based applications publication)
		dsc_windowsfeature{'RDSLicensing':
		 dsc_ensure => 'Present',
		 dsc_name   => 'RDS-Licensing',
		}->
	
		dsc_windowsfeature{'RDSLicensingUI':
		 dsc_ensure => 'Present',
		 dsc_name   => 'RDS-Licensing-UI',
		}->
	  
	  #Add computer in Terminal Server License Servers group in Active Directory
		dsc_xadgroup{ 'TerminalServerLicenseServers':
		 dsc_groupname => 'Terminal Server License Servers',
		 dsc_path => "CN=Builtin,DC=domain-test,DC=com",
		 dsc_groupscope => 'DomainLocal',
		 dsc_memberstoinclude => "${hostname}\$",
		 dsc_ensure => 'present',
		 dsc_psdscrunascredential => {'user' => $setup_svc_username, 'password' => $setup_svc_password}
	  }
	   
  }

sslconfig.pp : configure license server SSL certificate for trusted access

Under development


if $https {
    #Download the certificate in citrix licensing repository
    dsc_file{ 'SSLCert':
      dsc_sourcepath => $sslCertificateSourcePath,
      dsc_destinationpath => '${env:ProgramFiles(x86)}\Citrix\Licensing\WebServicesForLicensing\Apache\conf\server.crt',
      dsc_type => 'File',
      notify => Service['CitrixWebServicesforLicensing']
    }
    
    #Download the certificate private key in citrix licensing repository
    dsc_file{ 'SSLkey':
      dsc_sourcepath => $sslCertificateKeySourcePath,
      dsc_destinationpath => '${env:ProgramFiles(x86)}\Citrix\Licensing\WebServicesForLicensing\Apache\conf\server.key',
      dsc_type => 'File',
      notify => Service['CitrixWebServicesforLicensing']
    }
  }