Skip to content

Commit 1e76606

Browse files
committed
Parameters data types + merged xd7mastercontroller and xd7slave controller + updated module description
1 parent 069cd42 commit 1e76606

7 files changed

Lines changed: 220 additions & 165 deletions

File tree

README.markdown

Lines changed: 63 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Citrix Xendesktop 7 delivery controller Puppet Module #
1+
# Citrix XenDesktop 7 delivery controller Puppet Module #
22

3-
This modules install an enterprise production grade Citrix 7.x Delivery Controller, including Citrix site creation and administrator rights setup.
3+
Puppet module installing a production grade Citrix XenDesktop 7.x Delivery Controller, including XenDesktop site creation, high availability configuration and administrator rights setup.
44

55
The following options are available for a production-grade installation :
66
- Fault tolerance : AlwaysOn database membership activation for Citrix databases created by the package
@@ -14,7 +14,7 @@ This module requires SQLServer powershell module v21.0.17199. The module will in
1414
- From Powershell Gallery if **sqlservermodulesource** parameter is set to **internet**
1515
- 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.
1616

17-
This module requires a custom version of the puppetlabs-dsc module compiled with ...
17+
This module requires a custom version of the puppetlabs-dsc module compiled with [XenDesktop Powershell DSC Resource](https://github.com/VirtualEngine/XenDesktop7) as a dependency. Ready to use module provided on [Github](https://github.com/virtualdesktopdevops/puppetlabs-dsc/tree/1.5.0_custom).
1818

1919
## Change log ##
2020

@@ -33,47 +33,71 @@ Migrated puppet example code in README.md to future parser syntax (4.x). Impact
3333

3434
## Usage ##
3535
* **`[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)
36-
- **setup_svc_password** : (string) Password of the privileged account. Should be encrypted with hiera-eyaml.
37-
- **sitename** : (string) Name of the Xendesktop site
38-
- **databaseserver** : (string) FQDN of the SQL server used for citrix database hosting. If using a AlwaysOn SQL cluster, use the Listener FQDN.
39-
- **licenceserver** : (string) FQDN of the Citrix Licence server.
40-
- **sitedatabasename** : (string) Name of the citrix site database to be created
41-
- **loggingdatabasename** : (string) Name of the citrix logging database to be created
42-
- **monitordatabasename** : (string) Name of the citrix monitor database to be created
43-
- **sourcepath** : (string) 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.
44-
- **xd7administrator** : (string) ActiveDirectory user or group which will be granted Citrix Administrator rights.
45-
- **sqlalwayson** : (boolean) : true or false. Activate database AlwaysOn availability group membership ? Default is false. Needs to be true for a production grade environment
46-
- **sqlavailabilitygroup** : (string) (optionnal if sqlalwayson = false) : Name of the SQL AlwaysOn availability group.
47-
- **sqldbbackuppath** : (string) (optionnal if sqlalwayson = false) : 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.
48-
* **`[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'.
36+
- **`[String]` setup_svc_password** _(Required)_: Password of the privileged account. Should be encrypted with hiera-eyaml.
37+
- **`[String]` sitename** _(Required)_: Name of the Xendesktop site
38+
- **`[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.
39+
- **`[String]` site_primarycontroller** _(Optional if role='primary')_: Primary controller of the existing Xendesktop site to which the newly configured Delivery Controller has to be joined.
40+
- **`[String]` databaseserver** _(Required)_: FQDN of the SQL server used for citrix database hosting. If using a AlwaysOn SQL cluster, use the Listener FQDN.
41+
- **`[String]` licenceserver** _(Required)_: FQDN of the Citrix Licence server.
42+
- **`[String]` sitedatabasename** _(Required)_: Name of the citrix site database to be created
43+
- **`[String]` loggingdatabasename** _(Required)_: Name of the citrix logging database to be created
44+
- **`[String]` monitordatabasename** _(Required)_: Name of the citrix monitor database to be created
45+
- **`[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.
46+
- **`[String]` xd7administrator** _(Required)_: ActiveDirectory user or group which will be granted Citrix Administrator rights.
47+
- **`[Boolean]` sqlalwayson** _(Optional, default is false)_: Activate database AlwaysOn availability group membership ? Default is false. Needs to be true for a production grade environment
48+
- **`[String]` sqlavailabilitygroup** _(Optional if sqlalwayson = false)_: Name of the SQL AlwaysOn availability group.
49+
- **`[String]` sqldbbackuppath** _(Optional if sqlalwayson = false)_: 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.
50+
* **`[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'.
4951
* **`[String]` sqlservermodulesourcepath** _(Optional if sqlservermodulesource = 'internet' )_: Path of the SQLServer Powershell module v21.0.17199 ZIP file. Can be a local or an UNC path.
50-
- **https** : (boolean) : true or false. Deploy SSL certificate and activate SSL access to Citrix XML service ? Default : false
51-
- **sslCertificateSourcePath** : (string) 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.
52-
- **sslCertificatePassword** : (string) Password protecting the p12/pfx SSL certificate file.
53-
- **sslCertificateThumbprint** : (string) Thumbprint of the SSL certificate (available in the SSL certificate).
52+
- **`[Boolean]` https** _(Optional, default is false)_: Deploy SSL certificate and activate SSL access to Citrix XML service ? Default : false
53+
- **`[String]` sslCertificateSourcePath** _(Optional if https = false)_: 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.
54+
- **`[String]` sslCertificatePassword** _(Optional if https = false)_: Password protecting the p12/pfx SSL certificate file.
55+
- **`[String]` sslCertificateThumbprint** _(Optional if https = false)_: Thumbprint of the SSL certificate (available in the SSL certificate).
5456

55-
## Installing a Citrix Delivery Controller
57+
## Installing a Citrix Delivery Controller ##
5658

5759
~~~puppet
58-
node 'CXDC' {
60+
node 'CXDC01' {
5961
class{'xd7mastercontroller':
60-
setup_svc_username => 'TESTLAB\svc-puppet',
61-
setup_svc_password => 'P@ssw0rd',
62-
sitename => 'XD7TestSite',
63-
databaseserver => 'CLSDB01LI.TESTLAB.COM',
64-
licenceserver => 'LICENCE.TESTLAB.COM',
65-
sitedatabasename => 'SITE_DB',
66-
loggingdatabasename => 'LOG_DB',
67-
monitordatabasename => 'MONITOR_DB',
68-
sourcepath => '\\\\fileserver\xendesktop715',
69-
xd7administrator => 'TESTLAB\Domain Admins',
70-
sqlalwayson => true,
71-
sqlavailabilitygroup => 'CLSDB01',
72-
sqldbbackuppath => '\\\\fileserver\backup\sql',
73-
https => true,
74-
sslCertificateSourcePath => '\\\\fileserver\ssl\cxdc.pfx',
75-
sslCertificatePassword => 'P@ssw0rd',
76-
sslCertificateThumbprint => '44cce73845feef4da4d369a37386c862eb3bd4e1'
62+
setup_svc_username => 'TESTLAB\svc-puppet',
63+
setup_svc_password => 'P@ssw0rd',
64+
sitename => 'XD7TestSite',
65+
role => 'primary'
66+
databaseserver => 'CLSDB01LI.TESTLAB.COM',
67+
licenceserver => 'LICENCE.TESTLAB.COM',
68+
sitedatabasename => 'SITE_DB',
69+
loggingdatabasename => 'LOG_DB',
70+
monitordatabasename => 'MONITOR_DB',
71+
sourcepath => '\\\\fileserver\xendesktop715',
72+
xd7administrator => 'TESTLAB\Domain Admins',
73+
sqlalwayson => true,
74+
sqlavailabilitygroup => 'CLSDB01',
75+
sqldbbackuppath => '\\\\fileserver\backup\sql',
76+
https => true,
77+
sslCertificateSourcePath => '\\\\fileserver\ssl\cxdc.pfx',
78+
sslCertificatePassword => 'P@ssw0rd',
79+
sslCertificateThumbprint => '44cce73845feef4da4d369a37386c862eb3bd4e1'
80+
}
81+
}
82+
83+
node 'CXDC02' {
84+
class{'xd7mastercontroller':
85+
setup_svc_username => 'TESTLAB\svc-puppet',
86+
setup_svc_password => 'P@ssw0rd',
87+
sitename => 'XD7TestSite',
88+
role => 'secondary',
89+
site_primarycontroller => 'CXDC01',
90+
databaseserver => 'CLSDB01LI.TESTLAB.COM',
91+
licenceserver => 'LICENCE.TESTLAB.COM',
92+
sitedatabasename => 'SITE_DB',
93+
loggingdatabasename => 'LOG_DB',
94+
monitordatabasename => 'MONITOR_DB',
95+
sourcepath => '\\\\fileserver\xendesktop715',
96+
xd7administrator => 'TESTLAB\Domain Admins',
97+
https => true,
98+
sslCertificateSourcePath => '\\\\fileserver\ssl\cxdc.pfx',
99+
sslCertificatePassword => 'P@ssw0rd',
100+
sslCertificateThumbprint => '44cce73845feef4da4d369a37386c862eb3bd4e1'
77101
}
78102
}
79103
~~~

changelog.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@
55
- **BREAKING CHANGE** : Removed unneeded $domainNetbiosName parameter.
66
- **BREAKING CHANGE** : 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.
77
- **BREAKING CHANGE** : Changed all module parameters to lowercase to comply with puppet guidelines.
8+
- **BREAKING CHANGE** : Merged xd7mastercontroller and xd7slave controller into xd7deliverycontroller. Added a **role** parameter to install a **primary** controller with XenDesktop site creation or a **secondary** controller joined to an existing XenDesktop site.
9+
- **BREAKING CHANGE** : Removed SQLServer Powershell resource from the module. Added **sqlservermodulesource** and **sqlservermodulesourcepath** parameters to install is from the internet or from an enterprise file share.
810
- Compliance with puppet language style guide and puppet forge standards.
11+
- Class parameters data types.
12+
13+
914

1015
## Version 1.1.0 ##
1116
- Initial release
-19.8 MB
Binary file not shown.

manifests/databasehighavailability.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#Class configuring SQL Server AlwaysOn High-Availability feature for Citrix databases
22
class xd7mastercontroller::databasehighavailability inherits xd7mastercontroller {
33

4-
if $xd7mastercontroller::sqlalwayson {
4+
if ($xd7mastercontroller::role == 'primary') and ($xd7mastercontroller::sqlalwayson) {
55
#Recovery mode configuration
66
dsc_sqldatabaserecoverymodel{'SiteDatabaseRecoveryModel':
77
dsc_name => $xd7mastercontroller::sitedatabasename,

manifests/init.pp

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,35 @@
1111
# Sample Usage:
1212
#
1313
class xd7mastercontroller (
14-
$setup_svc_username,
15-
$setup_svc_password,
16-
$sitename,
17-
$databaseserver,
18-
$licenceserver,
19-
$sourcepath,
20-
$xd7administrator,
21-
$sitedatabasename='CitrixSiteDB',
22-
$loggingdatabasename='CitrixLogDB',
23-
$monitordatabasename='CitrixMonitorDB',
24-
$sqlalwayson = false,
25-
$sqlavailabilitygroup = '', #Name of the SQL Server Availability group
26-
$sqldbbackuppath = '',
27-
$sqlservermodulesource = 'internet',
28-
$sqlservermodulesourcepath = '',
29-
$https = false,
30-
$sslcertificatesourcepath = '',
31-
$sslcertificatepassword = '',
32-
$sslcertificatethumbprint = ''
14+
String $setup_svc_username,
15+
String $setup_svc_password,
16+
String $sitename,
17+
Enum['primary', 'secondary'] $role,
18+
String $databaseserver,
19+
String $licenceserver,
20+
String $sourcepath,
21+
String $xd7administrator,
22+
Optional[String] $site_primarycontroller = '',
23+
Optional[String] $sitedatabasename = 'CitrixSiteDB',
24+
Optional[String] $loggingdatabasename = 'CitrixLogDB',
25+
Optional[String] $monitordatabasename = 'CitrixMonitorDB',
26+
Boolean $sqlalwayson = false,
27+
Optional[String] $sqlavailabilitygroup = '',
28+
Optional[String] $sqldbbackuppath = '',
29+
Enum['internet', 'offline'] $sqlservermodulesource = 'internet',
30+
Optional[String] $sqlservermodulesourcepath = '',
31+
Boolean $https = false,
32+
Optional[String] $sslcertificatesourcepath = '',
33+
Optional[String] $sslcertificatepassword = '',
34+
Optional[String] $sslcertificatethumbprint = ''
3335
)
3436

3537
{
3638
contain xd7mastercontroller::install
3739
contain xd7mastercontroller::siteconfig
3840
contain xd7mastercontroller::databasehighavailability
3941
contain xd7mastercontroller::sslconfig
42+
4043
Class['::xd7mastercontroller::install']
4144
->Class['::xd7mastercontroller::siteconfig']
4245
#->Class['::xd7mastercontroller::databasehighavailability']

0 commit comments

Comments
 (0)