#### # 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, #} }