【问题标题】:Preparing a Windows 2016 EC2 instance for AMI creation via UserData为通过 UserData 创建 AMI 准备 Windows 2016 EC2 实例
【发布时间】:2019-03-01 16:42:11
【问题描述】:

我正在按照本指南准备实例以创建 AMI(“使用 EC2Launch 手动运行 Sysprep”部分): https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html#ec2launch-sysprep

当我在步骤 7 (./SysprepInstance.ps1) 中运行脚本时,它会引发关于设置变量的错误(关于无法设置这些变量的错误,因为它们是只读的)。此错误来自第 37、38、39 行:

Set-Variable rootPath -Option Constant -Scope Local -Value (Join-Path $env:ProgramData -ChildPath "Amazon\EC2-Windows\Launch")
Set-Variable modulePath -Option Constant -Scope Local -Value (Join-Path $rootPath -ChildPath "Module\Ec2Launch.psd1")
Set-Variable scriptPath -Option Constant -Scope Local -Value (Join-Path $PSScriptRoot -ChildPath $MyInvocation.MyCommand.Name)

这些行似乎与 ./InitializeInstance.ps1 的第 64、65、66 行冲突:

Set-Variable rootPath -Option Constant -Scope Local -Value (Join-Path $env:ProgramData -ChildPath "Amazon\EC2-Windows\Launch")
Set-Variable modulePath -Option Constant -Scope Local -Value (Join-Path $rootPath -ChildPath "Module\Ec2Launch.psd1")
Set-Variable scriptPath -Option Constant -Scope Local -Value (Join-Path $PSScriptRoot -ChildPath $MyInvocation.MyCommand.Name)

在我上面提到的指南中,它建议手动运行这些脚本(在正确的文件夹中打开提示并运行这些脚本)。当我手动运行它们时它工作正常,因为我可以在运行 ./SysprepInstance.ps1 之前关闭终端。但是当我通过 UserData 运行它们时,我相信 ./InitializeInstance.ps1 将这些变量设置为只读,然后 ./SysprepInstance.ps1 会引发错误。 这会导致错误的 AMI,其中开始菜单不起作用,所有终端都很奇怪(powershell 有黑色背景,您无法滚动,cmd 提示符默认启用键盘的 Insert 键,以及其他奇怪的东西)。

这是我的用户数据脚本:

<powershell>
    cd "C:\ProgramData\Amazon\EC2-Windows\Launch\\Scripts\"
    ./InitializeInstance.ps1 -Schedule
    ./SysprepInstance.ps1
<powershell/>

是否有人对如何准备 Windows 2016 实例以通过 UserData 创建 AMI 有任何经验?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 user-data ec2-ami


    【解决方案1】:

    尝试不使用 ./SysprepInstance.ps1 PS 也使用 unix 风格的 dir 斜杠。 cd "C:/ProgramData/Amazon/EC2-Windows/Launch/Scripts/"

    【讨论】:

    • SysprepInstance.ps1 必须运行才能从正在运行的 Windows 实例创建 AMI,因此不运行它不是一个选项。此外,整篇文章都是关于该脚本的,所以不运行不是解决方案……最后,PS 对使用反斜杠定义的位置非常满意(例如,命令“cd C:\Users\”工作正常)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 2017-11-11
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多