Поэтому мы хотим, чтобы разработчики имели доступ к AWS изначально, а при создании Windows-машины он автоматически присоединялся к домену и, возможно, добавлял некоторые инструменты и т. Д. Поскольку я привык использовать собственные AMI Amazon без инфраструктуры домена, что лучше способ сделать это?
Ценю любую помощь!
Amazon недавно упростила этот процесс с помощью нового Служба каталогов Amazon. Вы можете запустить автономный домен AD "Simple AD" или расширить существующую AS до AWS через "AD Connector"
По сути, Amazon предоставляет что-то, называемое SSM или Простой системный менеджер который помогает вам управлять экземплярами Windows. Одна из таких возможностей - «Присоединение к домену». Когда у вас есть образец настройки AD, вы можете использовать средство присоединения к домену, описанное ниже. Вот. Обычно вы создаете документ «SSM» с данными AD и связываете этот документ с вашим экземпляром.
Вот что я использовал в прошлом - просто убедитесь, что у вас есть доменная инфраструктура:
$UserData = [System.Convert]::ToBase64String(
[System.Text.Encoding]::ASCII.GetBytes(@‘
<powershell>
Get-NetFirewallRule | Where { $_.DisplayName -eq “Windows Management Instrumentation (ASync-In)” } | Enable-NetFirewallRule
Get-NetFirewallRule | Where { $_.DisplayName -eq “Windows Management Instrumentation (DCOM-In)” } | Enable-NetFirewallRule
Get-NetFirewallRule | Where { $_.DisplayName -eq “Windows Management Instrumentation (WMI-In)” } | Enable-NetFirewallRule
</powershell>
‘@))
$Reservation = New-EC2Instance - ImageId $AMI -KeyName $KeyName -SubnetId $SubnetId -InstanceType $InstanceType -MinCount 1 -MaxCount 1 -UserData $UserData
$Instance = $Reservation.RunningInstance[0].InstanceId
$IP = $Reservation.RunningInstance[0].PrivateIpAddress
$Tag = New-Object Amazon.EC2.Model.Tag
$Tag.Key = ‘Name’
$Tag.Value = $ServerName
New-EC2Tag -ResourceId $Instance -Tag $Tag
$LocalPassword = $null
While( $LocalPassword -eq $null) {
Try {
Write-Host “Waiting for Password.”
$LocalPassword = Get-EC2PasswordData -InstanceId $InstanceId
-PemFile $PemFile -ErrorAction SilentlyContinue
]Catch{}
Start-Sleep -s 60
$DomainPassword = $DomainPassword | ConvertTo-SecureString -asPlainText -Force
$DomainCredential = New-Object System.Management.Automation.PSCredential(“administrator”, $LocalPassword)
Add-Computer -ComputerName $LocalComputer -LocalCredential $LocalCredential
-NewName $ServerName -DomainName $DomainName
-Credential $DomainCredential -Restart -Force