Итак. В предыдущей статье мы подготовили шару с необходимыми библиотеками, скачали и установили необходимые библиотеки и модули. Теперь можно собственно приступить к главному блюду – установка SQL Server.
Я для этого сделал отдельную конфигурацию, хотя можно конечно обойтись и одной. Но так будет нагляднее.
Машины подготовлены, время запускать новую конфигурацию.
$ConfigurationData = @{
AllNodes = @(
@{
NodeName = 'FQDN КУДА СТАВИМ'
PSDscAllowPlainTextPassword = $True
}
)
}
#вот то что выше - позволяет передавать пароли в открытом виде
$pass = (convertto-securestring 'ТУТ ПАРОЛЬ В ОТКРЫТОМ ВИДЕ' -asplaintext -force)
$cred = (New-Object System.Management.Automation.PSCredential ('sa', $pass))
Configuration SQLInstall
{
Add-Type -AssemblyName System.Web
Import-DscResource –ModuleName 'PSDesiredStateConfiguration'
Import-DscResource -ModuleName SqlServerDsc
node "FQDN куда ставишь"
{
WindowsFeature 'NetFramework45'
{
Name = 'NET-Framework-45-Core'
Ensure = 'Present'
}
SqlSetup 'InstallDefaultInstance'
{
InstanceName = 'MSSQLSERVER'
Features = 'SQLENGINE,REPLICATION'
SQLCollation = 'SQL_Latin1_General_CP1_CI_AS'
SourcePath = '\\srv-01\repo\mssql2019' #тут папка где лежит дистрибутив sql. т.е. файлы setup.ехе и т.д.
SQLSysAdminAccounts = @('Administrators')
SecurityMode = 'SQL'
SAPwd = $cred
NpEnabled = $true
TcpEnabled = $true
UpdateEnabled = 'False'
UseEnglish = $true
ForceReboot = $false
DependsOn = '[WindowsFeature]NetFramework45'
}
}
}
SQLInstall -ConfigurationData $ConfigurationData
Start-DscConfiguration -Path SQLInstall -Wait -Verbose -Force
Разберем несколько непонятных сразу моментов. Когда Вы ставите SQL сервер в режиму mixed, от вас требуется установить пароль пользователя sa. И соответственно, желательно было бы, чтобы вся передача была бы зашифрована и т.д. Вы сами могли убедиться, что Вы можете открыть mof файл блокнотом и прочитать его. Для шифрования всего добра Вам понадобится сертификат. Но чтобы не пересказывать доки от microsoft, вот вам просто ссылочка: https://docs.microsoft.com/en-us/powershell/dsc/configurations/configdatacredentials?view=dsc-1.1
Собственно все что находится в этом блоке
$ConfigurationData = @{
AllNodes = @(
@{
NodeName = 'FQDN КУДА СТАВИШЬ'
PSDscAllowPlainTextPassword = $True
}
)
}
Позволяет передавать пароль в открытом виде. Да, это плохой совет. Но в любом случае я про это рассказал
Add-Type -AssemblyName System.Web Добавлен для исправления ошибки которая выскакивала не тестовых серверах.
Import-DSCResource – Используется внутри конфигурации. Не обязательно, но желательно. Подробнее тут: https://docs.microsoft.com/en-us/powershell/dsc/configurations/import-dscresource?view=dsc-1.1#:~:text=Import%2DDSCResource%20is%20a%20dynamic,resources%20used%20in%20your%20Configuration.
Ну а установка SQL совсем просто. Мы ставим следующие Features: SQLENGINE,REPLICATION.
Метод сортировки – SQL_Latin1_General_CP1_CI_AS
Пароль SA задан в SAPwd.
И т.д. Все достаточно наглядно. Если хотите посмотреть подробнее, что можно делать, (задавать учетки агентам, ставить нужные фичи и т.д.) то тогда рекомендую заглянуть на гитхаб модуля SQLServerDSC
Ссылка на гитхаб: https://github.com/dsccommunity/SqlServerDsc
Вот собственно и все. Поскольку мы не копировали дистрибутив SQL Server на конечный компьютер, а ставили его сразу по сети из расшареной папки, то скорость работы может быть ниже. Но это уже на ваш выбор. Ну и в качестве доказательства скорости работы прикладываю картинку, за какое время была произведена установка SQL сервер указанной выше конфигурации.