Skip to content

Commit 6bf2939

Browse files
authored
Merge pull request #1 from virtualdesktopdevops/dev
Readme architecture diagram & details + github.io css & seo data
2 parents 38f9160 + b30e7d0 commit 6bf2939

File tree

3 files changed

+44
-10
lines changed

3 files changed

+44
-10
lines changed

README.markdown

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# sqlserveralwayson #
22

3-
This modules install a fully working SQL Server AlwaysOn cluster. It has been designed to install both primary replica nodes with th following features :
3+
This modules install a fully working SQL Server AlwaysOn cluster. It has been designed to install both primary replica nodes with the following features :
44
- SPN creation on sql service account (service account not yet created by this module, schedulded in next release)
55
- SQL server installation and initial configuration (MaxDop Firewall, Memory, Admin rights, ...)
66
- Failover cluster creation (primary node) or join (replica node) with File Share witness
@@ -15,7 +15,7 @@ The database failover mecanism integrated in this module is SQL Server AlwaysOn.
1515
The module can be installed on a Standard, Datacenter, or Core version of Windows 2012R2 or Windows 2016.
1616

1717
## Usage
18-
- **setup_svc_username** : (string) Privileged account used by Puppet for installing the software and creating the failover cluster (spn creation, computer registration, local administrator privilèges needed)
18+
- **setup_svc_username** : (string) Privileged account used by Puppet for installing the software and creating the failover cluster (spn creation, computer registration, local administrator privilèges needed)
1919
- **setup_svc_password** : (string) Password of the privileged account. Should be encrypted with hiera-eyaml.
2020
- **setupdir** : (string) Path of a folder containing the SQL Server installer (unarchive the ISO image in this folder).
2121
- **sa_password** : (string) SQL Server SA password for mixed mode SQL authentication configuration.
@@ -24,21 +24,34 @@ The module can be installed on a Standard, Datacenter, or Core version of Window
2424
- **sqlservicecredential_password** : (String) : Password of the service account for the SQL service. Should be encrypted with hiera-eyaml.
2525
- **sqlagentservicecredential_username** : (String) Service account for the SQL Agent service
2626
- **sqlagentservicecredential_password** : (String) Password of the service account for the SQL Agent service. Should be encrypted with hiera-eyaml.
27-
- **sqladministratoraccounts** : (String[] Array) : Array of accounts to be made SQL administrators.
27+
- **sqladministratoraccounts** : (String[] Array) : Array of accounts to be made SQL administrators.
2828
- **sqluserdbdir** : (String)(optionnal) Path for SQL database files. Default to 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data'
2929
- **sqluserdblogdir** : (String)(optionnal) Path for SQL log files. Default to 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data'
3030
- **sqlbackupdir** : (String)(optionnal) Path for SQL backup files. Default to 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup'
3131
- **sqltempdbdir** : (String)(optionnal) Path for SQL TempDB files. Default to 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data'
3232
- **sqltempdblogdir** : (String)(optionnal) Path for SQL TempDB log files. Default to 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data'
3333
- **clusterName** : (String) Failover cluster name.
3434
- **clusterIP** : (String) Failover cluster IP address.
35-
- **fileShareWitness** : (String) Fileshare witness UNC path in the format'\\witness.company.local\witness$'. Needs to be writable by SQL nodes.
35+
- **fileShareWitness** : (String) Fileshare witness UNC path in the format'\\witness.company.local\witness$'. Needs to be writable by SQL nodes.
3636
- **listenerIP** : (String) The IP address used for the availability group listener, in the format 192.168.10.45/255.255.252.0.
3737
- **role** : (String) Needs to be 'primary' for primary SQL nodes or 'secondary' for SQL replica nodes
3838
- **domainNetbiosName** : (String) Active Directory domain NETBIOS name
3939

4040

4141
## Installing a Microsoft SQL Server AlwaysOn cluster
42+
The following example creates a 2 nodes SQL Server Always On Availability group :
43+
- SQL Server is installed on both nodes using the privileged **DOMAIN-TEST\svc-puppet** account.
44+
- SQL Server service and agent are configured to run using the **DOMAIN-TEST\svc-sql-puppet** service account.
45+
- Mixed mode logon is configured with the required "SA password" used to recover SQL Server access in case of windows authentication service failure
46+
- Windows Failover Cluster named **CLDB01** is created and configured with the **\\192.168.1.10\quorum** file share witness
47+
- Always On Availability group is created including endpoints and **CLDB01LI** listener (IP address : 192.168.1.61). The listener name is derived from the failover cluster name by the module
48+
49+
The replica node is installed with the same parameters and joined to the **CLDB01** windows failover cluster and to the Avalability Group. **Notice the role => 'secondary'** which defines the role of the node.
50+
51+
### Sample architecture :
52+
![Sample SQL Server Always On architecture](https://virtualdesktopdevops.github.io/images/sql-server-always-on-architecture.jpg)
53+
54+
### Sample Puppet code :
4255
~~~puppet
4356
#Primary node
4457
node 'SQL01' {
@@ -58,7 +71,7 @@ node 'SQL01' {
5871
fileShareWitness=> '\\192.168.1.10\quorum',
5972
listenerIP => '192.168.1.61/255.255.255.0',
6073
role => 'primary',
61-
domainNetbiosName => 'DOMAIN-TEST'
74+
domainNetbiosName => 'DOMAIN-TEST'
6275
}
6376
}
6477
@@ -80,11 +93,8 @@ node 'SQL02' {
8093
fileShareWitness=> '\\192.168.1.10\quorum',
8194
listenerIP => '192.168.1.61/255.255.255.0',
8295
role => 'secondary',
83-
domainNetbiosName => 'DOMAIN-TEST'
96+
domainNetbiosName => 'DOMAIN-TEST'
8497
}
8598
}
8699
87100
~~~
88-
89-
90-

_config.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,14 @@
1-
theme: jekyll-theme-slate
1+
title: SQL Server Always On Puppet module
2+
description: Puppet module installing a fully working SQL Server Always On cluster including : SPN creation, SQL server installation and initial configuration, windows failover cluster and SQL Always On Availability Group creation.
3+
google_site_verification: R71XDERzPOp9lUudi8X6iKrpcoIgDG_1HzRMz_TMaDY
4+
google_analytics: UA-12767493-6
5+
theme: jekyll-theme-slate
6+
show_downloads: true
7+
plugins:
8+
- jekyll-seo-tag
9+
- jekyll-sitemap
10+
- jekyll-feed
11+
- jekyll-redirect-from
12+
- jekyll-mentions
13+
jekyll-mentions:
14+
base_url: http://www.virtualdesktopdevops.com/puppet-modules/sql-server-alwayson.html

assets/css/style.scss

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
---
3+
4+
@import "{{ site.theme }}";
5+
6+
.inner {
7+
position: relative;
8+
max-width: 1200px;
9+
padding: 20px 10px;
10+
margin: 0 auto;
11+
}

0 commit comments

Comments
 (0)