通过用户数据将 EIP 添加到实例的 PowerShell 脚本
PowerShell Script to add EIP to instance via User Data
我是 PowerShell 的新手!
我想做什么:
我们有一个连接到第 3 方的自动缩放组,他们只能进行 IP 白名单(我已经向他们建议域白名单),因此这是自动缩放实例的问题。我正在尝试将免费(未分配)EIP 分配给自动缩放实例。
我找到了这个:https://gist.github.com/cleydson/ff70493ef37cff03669e21ed37d90a8b
但是我不确定在开始使用它之前是否需要安装任何依赖项到实例。
根据我目前所读的内容,我需要:
- 为 EC2 实例分配一个 IAM 角色,使其能够执行必要的 EIP 任务
- 将 powershell 脚本放在实例中的可访问目录中
- 调用实例内部 powershell 脚本的用户数据脚本
一切正常后,我可以将其烘焙到 AMI 中以用于自动缩放。
任何人都可以引导我进一步朝着正确的方向前进吗?提前致谢!
编辑更新:
当我在实例本身的 PowerShell window 中 运行 时,我在上面找到的脚本工作正常。所以我现在为实例制作了一个 AMI,并为 ASG 制作了一个新的启动配置。
我现在的问题是,每当创建新实例时,似乎都不会调用用户数据。下面是我的用户数据脚本:
<script>
PowerShell -ExecutionPolicy Bypass -Command c:\scripts\setEIP.ps1 "EIP1,EIP2,EIP3"
</script>
<persist>true</persist>
我为 EIP 放置了放置器。关于为什么不调用用户数据的任何想法?
我终于解决了!
未被调用的原因是:
最初未选中“为下次服务启动启用 UserData 执行”。
这与安装在实例内部的 EC2Config 服务有关。
总结解决方案:
- 上面的脚本 (https://gist.github.com/cleydson/ff70493ef37cff03669e21ed37d90a8b) 已被使用并保存到实例中。
- 在实例中启用了 UserData 执行 (C:\Program Files\Amazon\Ec2ConfigService\Ec2ConfigServiceSettings.exe)
- UserData脚本调用里面的脚本,使用-Command代替比较流行的-File
<script>
PowerShell -ExecutionPolicy Bypass -Command c:\scripts\setEIP.ps1 "EIP1,EIP2,EIP3"
</script>
<persist>true</persist>
我是 PowerShell 的新手!
我想做什么: 我们有一个连接到第 3 方的自动缩放组,他们只能进行 IP 白名单(我已经向他们建议域白名单),因此这是自动缩放实例的问题。我正在尝试将免费(未分配)EIP 分配给自动缩放实例。
我找到了这个:https://gist.github.com/cleydson/ff70493ef37cff03669e21ed37d90a8b 但是我不确定在开始使用它之前是否需要安装任何依赖项到实例。
根据我目前所读的内容,我需要:
- 为 EC2 实例分配一个 IAM 角色,使其能够执行必要的 EIP 任务
- 将 powershell 脚本放在实例中的可访问目录中
- 调用实例内部 powershell 脚本的用户数据脚本
一切正常后,我可以将其烘焙到 AMI 中以用于自动缩放。
任何人都可以引导我进一步朝着正确的方向前进吗?提前致谢!
编辑更新: 当我在实例本身的 PowerShell window 中 运行 时,我在上面找到的脚本工作正常。所以我现在为实例制作了一个 AMI,并为 ASG 制作了一个新的启动配置。
我现在的问题是,每当创建新实例时,似乎都不会调用用户数据。下面是我的用户数据脚本:
<script>
PowerShell -ExecutionPolicy Bypass -Command c:\scripts\setEIP.ps1 "EIP1,EIP2,EIP3"
</script>
<persist>true</persist>
我为 EIP 放置了放置器。关于为什么不调用用户数据的任何想法?
我终于解决了!
未被调用的原因是:
最初未选中“为下次服务启动启用 UserData 执行”。 这与安装在实例内部的 EC2Config 服务有关。
总结解决方案:
- 上面的脚本 (https://gist.github.com/cleydson/ff70493ef37cff03669e21ed37d90a8b) 已被使用并保存到实例中。
- 在实例中启用了 UserData 执行 (C:\Program Files\Amazon\Ec2ConfigService\Ec2ConfigServiceSettings.exe)
- UserData脚本调用里面的脚本,使用-Command代替比较流行的-File
<script>
PowerShell -ExecutionPolicy Bypass -Command c:\scripts\setEIP.ps1 "EIP1,EIP2,EIP3"
</script>
<persist>true</persist>