使用 AWS,有没有办法构建 AMI 以便它自动加入域?

使用 AWS,有没有办法构建 AMI 以便它自动加入域?

因此,我们希望让开发人员能够原生访问 AWS,并且在构建 Windows 机器时让它自动加入域并可能添加一些工具等。由于我习惯于使用没有域基础设施的原生 Amazon AMI,那么最好的方法是什么呢?

感谢任何帮助!

答案1

亚马逊最近通过新的 亚马逊目录服务。您可以运行独立的 AD 域“Simple AD”,或通过“AD Connector”将现有 AS 扩展到 AWS

本质上,亚马逊提供了一种称为“SSM”的东西,或者简单系统管理器帮助您管理 Windows 实例。其中一个功能是“域加入”。一旦您设置了示例 AD,您就可以使用下面描述的域加入功能这里基本上,您创建一个包含您的 AD 详细信息的“SSM”文档,并将该文档与您的实例关联。

答案2

这是我过去使用过的方法 - 只要确保您已具备域基础设施即可:

$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

相关内容