【问题标题】:AWS - UserData is not executed for instance created from custom imageAWS - 对于从自定义图像创建的实例,不执行 UserData
【发布时间】:2016-10-09 02:00:51
【问题描述】:

我使用简单的 PowerShell 脚本进行了测试 mkdir C:\tempdir 当我将它指定为从 Amazon 图像启动的 UserData 时,一切正常。如果我使用指定的 UserData 启动实例并制作该实例的图像,则不会为从我的自定义图像创建的实例执行 UserData。 有趣的是,"C:\Program Files\Amazon\Ec2ConfigService\Scripts\UserScript.ps1" 包含初始启动的用户数据(在创建图像之前),尽管它应该包含上次启动期间指定的数据。 更有趣的是,即使 UserScript.ps1 存在,它也不会被执行(它应该创建文本文件但文本文件不存在)。 这是第二次发布的用户数据

<powershell>
  mkdir C:\tempdir
</powershell>

【问题讨论】:

    标签: amazon-ec2 ec2-ami


    【解决方案1】:

    用户数据脚本仅在实例启动时运行一次(创建未启动)。然后在实例上禁用它们。因此,当您从该实例获取 AMI 并启动新的 AMI 时,用户数据已被禁用。

    启用用户数据

    要在您从创建的 AMI 启动新的 AMI 时允许它再次运行,您必须通过选中 UserData 框(在获取 AMI 之前)在 EC2ConfigService 设置实用程序中重新启用用户数据支持。

    坚持启用用户数据

    在此之后,如果您再次重新启动实例,那么 UserData 将运行并再次禁用自身。要禁用此功能,您还需要将 &lt;persist&gt;true&lt;/persist&gt; 添加到实例的 UserData 中,这将使复选框保持相同状态(如果您打开它,则打开)。

    更多信息:

    【讨论】:

    • 运行 EC2ConfigService 设置实用程序时,它显示“默认情况下,将在 SysPrep 后启用 UserData)。我尝试启用 User Dtaa 复选框,而不是运行 SysPrep(第二个选项卡)并从 AWS Web 控制台制作图像. - 没有用我重复了这个过程,只是简单地关闭了实例并创建了图像没有用。永久启用它的选项不适合我的场景。
    • 我不使用 SysPrep,因为我真的不希望它在我的情况下运行。我只是确保复选框已打开,关闭实例,对其进行映像并启动一个新实例。在我的设置中,旧实例的用户数据中只有&lt;persist&gt;true&lt;/persist&gt;,而在启动新实例时,我使用&lt;powershell&gt;...&lt;/powershell&gt;&lt;persist&gt;false&lt;/persist&gt; 仅在新映像第一次启动时运行脚本。
    • 当我将&lt;persist&gt;true&lt;/persist&gt; 添加到基本实例(我用来制作图像)时,UserData 起作用了。我仍然很困惑为什么当我选中相应的复选框时它不起作用。尽管如此,问题还是解决了。谢谢。
    【解决方案2】:

    我遇到了同样的问题。这是解决它的方法

    1. 如果您尚未启动映像中的实例
    2. RDP 进入它
    3. 打开powershell,运行C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 –Schedule
    4. 如果您有实例的自定义密码,它会在上一步中重置。如果你想要它,打开powershell并运行以下命令(假设你的用户名是管理员net user Administrator "your_new_password"(如果你没有自定义密码,并且只是使用.pem文件生成的密码,那么你可以忽略这个步骤)
    5. 现在进入 AWS 控制台(即在浏览器中)并从实例创建一个 AMI
    6. 确保您的用户数据具有以下格式(persist/true 部分必不可少)。
    <powershell>
    # Some powershell code here
    </powershell>
    <persist>true</persist>
    

    就是这样。您的 userdata powershell 脚本现在将在您的实例下次启动时运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      相关资源
      最近更新 更多