【问题标题】:PowerShell Script to add EIP to instance via User Data通过用户数据将 EIP 添加到实例的 PowerShell 脚本
【发布时间】:2023-03-03 03:48:03
【问题描述】:

我对 PowerShell 还很陌生!

我正在尝试做的事情: 我们有一个连接到第 3 方的自动扩展组,它们只能将 IP 白名单列入(我建议将域列入白名单),因此这是自动扩展实例的问题。我正在尝试将免费(未分配)的 EIP 分配给自动扩展的实例。

我找到了这个:https://gist.github.com/cleydson/ff70493ef37cff03669e21ed37d90a8b 但我不确定是否需要在实例中安装任何依赖项才能开始使用它。

根据我目前阅读的内容,我需要:

  1. 为 EC2 实例分配一个 IAM 角色,使其能够执行必要的 EIP 任务
  2. 将 powershell 脚本放在实例中可访问的目录中
  3. 用户数据脚本调用实例内的 powershell 脚本

一切正常后,我可以将其烘焙到 AMI 中以用于自动缩放。

谁能带领我进一步走向正确的方向?提前致谢!

编辑更新: 当我在实例本身的 PowerShell 窗口中运行时,上面找到的脚本运行正常。所以我现在制作了实例的 AMI,并为 ASG 制作了新的 Launch Config。

我现在的问题是,每当创建新实例时,似乎都不会调用用户数据。下面是我的用户数据脚本:

<script>
PowerShell -ExecutionPolicy Bypass -Command c:\scripts\setEIP.ps1 "EIP1,EIP2,EIP3"
</script>
<persist>true</persist>

我为 EIP 放置了放置器。关于为什么不调用用户数据的任何想法?

【问题讨论】:

  • 还需要注意的是,我有一个未分配的弹性 IP 池,我需要使用这些池,但无法按需创建和关联 EIP。

标签: amazon-web-services powershell ip elastic-ip eip


【解决方案1】:

我终于解决了!

没有被调用的原因是:

最初未选中“为下一次服务启动启用用户数据执行”。 这与安装在实例本身内的 EC2Config 服务有关。

总结一下解决方案:

  1. 上面的脚本 (https://gist.github.com/cleydson/ff70493ef37cff03669e21ed37d90a8b) 已被使用并保存到实例中。
  2. 在实例内启用了 UserData 执行 (C:\Program Files\Amazon\Ec2ConfigService\Ec2ConfigServiceSettings.exe)
  3. UserData 脚本调用里面的脚本,使用 -Command 而不是更流行的 -File

<script>
PowerShell -ExecutionPolicy Bypass -Command c:\scripts\setEIP.ps1 "EIP1,EIP2,EIP3"
</script>
<persist>true</persist>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-12
    • 2012-02-05
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 2020-11-09
    • 2017-08-11
    • 2019-06-11
    相关资源
    最近更新 更多