Назад | Перейти на главную страницу

Можно ли с помощью AWS создать AMI, чтобы он автоматически присоединялся к домену?

Поэтому мы хотим, чтобы разработчики имели доступ к 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