diff --git a/modules/ag_sqlserver/manifests/init.pp b/modules/ag_sqlserver/manifests/init.pp new file mode 100644 index 0000000..6fca6fe --- /dev/null +++ b/modules/ag_sqlserver/manifests/init.pp @@ -0,0 +1,107 @@ +#### +# Class: sqlserver_2014 +# Description: Installing SQL server and its prerequisites and configuration +# Customer: Freshfields Bruckhaus Deringer +# Author: WM Promus +# Date: April 2018 +### + +class ag_sqlserver ( + String $sourcelocation = '\\\\freshfields\\dfs\\FCL\\SQLServerSharedRepository\\INSTALLMEDIA\\SQL 2014\\SQL 2014 - Standard', + String $windowssourcelocation = '\\\\freshfields\\dfs\\FCL\\ISO\\Microsoft\\WINDOWS_SERVER_2012R2\\ISO_X19-82891\\sources\\sxs', + String $sqlserverinstancename = 'MSSQLSERVER', + String $sqlserveradminaccount = 'sa', + String $sqlserveradminpassword = 'Passw0rd1', + String $sqlserversecuritymode = 'SQL', + Array $sqlserverfeatures = ['SQLEngine'], + String $sqlserverinstancefolder = 'C:\\Program Files\\Microsoft SQL Server', + String $sqlserverdatafolder = 'E:\\SQLData', + String $sqlserverlogfolder = 'F:\\SQLLog', + String $sqlservertempdbfolder = 'G:\\TempDB', + String $sqlserverbackupfolder = 'E:\\SQLBackup', +) { + + ############################################################################ + # Installing SQL Server pre-requisites # + ############################################################################ + + include chocolatey + + reboot { 'reboot_powershell': + when => pending, + timeout => 15, + } + package { 'dotnet4.5': + ensure => latest, + provider => 'chocolatey', + } + package { 'powershell': + ensure => installed, + provider => 'chocolatey', + require => Package['dotnet4.5'], + notify => Reboot['reboot_powershell'], + } + package { 'sql2014-powershell': + ensure => installed, + provider => 'chocolatey', + require => Package['powershell'], + } + dsc_windowsfeature { 'NET Framework 3.5': + dsc_ensure => 'present', + dsc_name => 'NET-Framework-Features', + dsc_source => $windowssourcelocation, + require => Package['powershell'], + } + ############################################################################ + # Installing and configuring SQL Server # + ############################################################################ + + file { 'C:\\MSSQLSERVER': + ensure => directory, + } + -> file { $sqlserverinstancefolder: + ensure => directory, + } + -> file { $sqlserverdatafolder: + ensure => directory, + } + -> file { $sqlserverlogfolder: + ensure => directory, + } + -> file { $sqlservertempdbfolder: + ensure => directory, + } + -> file { $sqlserverbackupfolder: + ensure => directory, + } + -> sqlserver_instance { $sqlserverinstancename: + source => $sourcelocation, + windows_feature_source => $windowssourcelocation, + features => $sqlserverfeatures, + security_mode => $sqlserversecuritymode, + sa_pwd => $sqlserveradminpassword, + #sql_sysadmin_accounts => $sqlserversysadminaccounts, + sql_sysadmin_accounts => [$facts['id'], "007"], + install_switches => { + 'TCPENABLED' => 1, + 'SQLBACKUPDIR' => $sqlserverbackupfolder, + 'SQLTEMPDBDIR' => $sqlservertempdbfolder, + 'INSTALLSQLDATADIR' => $sqlserverdatafolder, + 'INSTANCEDIR' => $sqlserverinstancefolder, + 'INSTALLSHAREDDIR' => $sqlserverinstancefolder, + 'INSTALLSHAREDWOWDIR' => 'C:\\Program Files (x86)\\Microsoft SQL Server', + }, + require => Dsc_windowsfeature['NET Framework 3.5'], + } + -> sqlserver::config { $sqlserverinstancename: + admin_login_type => 'SQL_LOGIN', + admin_user => $sqlserveradminaccount, + admin_pass => $sqlserveradminpassword, + } + #-> + #sqlserver::login{ $sqlserveruser: + # instance => $sqlserverinstancename, + # password => $sqlserveruserpassword, + #} + +}