我想在AWS EC2用户数据中设置Windows Server 2012 R2管理员密码,但我正在做的事情并不起作用。
我使用以下用户数据值启动实例:
xor eax, eax
我会为prod使用不同的密码,但我想确保我现在符合Windows密码要求。
就我所使用的AMI而言,我开始基于亚马逊提供的Windows Server 2012 R2 AMI进行简单的Packer构建。所有这些Packer构建现在都是添加一个目录,然后输出它创建的AMI ID。然后我从该AMI启动一个新实例。
但是当我进入实例时,我仍然收到错误<powershell>
$user = [adsi]"WinNT://localhost/Administrator,user"
$user.SetPassword("Tm8LgmjBTigXq8PYifGG@RGQaXoqzT")
$user.SetInfo()
</powershell>
。
以下是来自EC2&#34;获取系统日志的日志&#34;:
The user name or password is incorrect. Try again.
非常喜欢任何Windows专家的指导!
更新#1:我采取了新方法。似乎AWS有一项名为EC2ConfigService的服务,可用于从自定义AMI启用密码生成。使用Packer,我将文件2015/12/17 02:26:26Z: EC2ConfigMonitorState: 0
2015/12/17 02:26:27Z: Windows sysprep configuration complete.
2015/12/17 02:26:30Z: AMI Origin Version: 2015.10.26
2015/12/17 02:26:30Z: AMI Origin Name: Windows_Server-2012-R2_RTM-English-64Bit-Base
2015/12/17 02:26:30Z: OS: Microsoft Windows NT 6.3.9600
2015/12/17 02:26:30Z: OsVersion: 6.3
2015/12/17 02:26:30Z: OsProductName: Windows Server 2012 R2 Standard
2015/12/17 02:26:30Z: OsBuildLabEx: 9600.18066.amd64fre.winblue_ltsb.150928-1002
2015/12/17 02:26:30Z: Language: en-US
2015/12/17 02:26:30Z: EC2 Agent: Ec2Config service v3.10.442
2015/12/17 02:26:32Z: Message: Waiting for meta-data accessibility...
2015/12/17 02:26:32Z: Message: Meta-data is now available.
2015/12/17 02:26:35Z: AMI-ID: ami-0cd7c86d
2015/12/17 02:26:35Z: Instance-ID: i-9da97047
2015/12/17 02:26:40Z: Driver: AWS PV Network Device v7.3.2.0
2015/12/17 02:26:40Z: Driver: AWS PV Storage Host Adapter v7.3.2.0
2015/12/17 02:26:40Z: Ec2SetPassword: Disabled
2015/12/17 02:26:41Z: RDPCERTIFICATE-SUBJECTNAME: WIN-B5RLUMJ651G
2015/12/17 02:26:41Z: RDPCERTIFICATE-THUMBPRINT: A03F21FCE336140DA63828E3D61FB1274C6CF26E
2015/12/17 02:26:44Z: Message: Windows is Ready to use
2015/12/17 02:26:52Z: Info EC2Config configuration: status:3; region:us-west-2; iam:0; authz:0
2015/12/17 02:26:52Z: SSM Config: status:Inactive; iam:No; ErrorMessage:[[Unable to find credentials]]; RequestId:; ErrorCode:; ErrorType:Sender; StatusCode:0
Close
替换为C:\Program Files\Amazon\Ec2ConfigService\Settings\config.xml
的设置为Ec2SetPassword
的文件,但它似乎仍然无法发挥作用。我将查找更改此内容的在线示例,以查看是否可以找到任何内容。
答案 0 :(得分:4)
好的,我的同事弄明白了。我们的Packer配置器现在看起来像这样:
"provisioners": [
{
"type": "powershell",
"inline": [
"# Enable the system password to be retrieved from the AWS Console after this AMI is built and used to launch code",
"$ec2config = [xml] (get-content 'C:\\Program Files\\Amazon\\Ec2ConfigService\\Settings\\config.xml')",
"($ec2config.ec2configurationsettings.plugins.plugin | where {$_.name -eq \"Ec2SetPassword\"}).state = \"Enabled\"",
"$ec2config.save(\"C:\\Program Files\\Amazon\\Ec2ConfigService\\Settings\\config.xml\")"
]
}
]
我验证了这是按预期工作的。 Packer构建AMI,配置它想要的东西,一旦从该AMI启动EC2实例,密码就会被重置,并且一旦你传入你的EC2 Keypair就可以获取密码。