如何解决使用带有Terraform挑战的Powershell为AWS EC2创建EC2用户数据
老实说,我花了绝对的时间来尝试安装SSM代理,并使它在通过Terraform启动的Windows EC2(基本AMI)上运行。我需要做的就是在安装了SSM代理的情况下启动EC2实例(Windows)(我相信这是默认设置,但是除非我对魔术蘑菇产生幻觉,否则在控制台中对其进行调配后,我将无法连接到它-说错误(未安装SSM代理)-它也具有ADMIN特权,并且具有使用God模式的实例配置文件。我还需要TF Userdata来在启动时创建一个文件夹,而这完全没有发生。有任何想法吗?谢谢。这是Powershell用户数据。 (ps)-实例启动正常,只是在启动时不接受用户数据。
<powershell>
Invoke-WebRequest `
https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/windows_amd64/AmazonSSMAgentSetup.exe
-OutFile $env:USERPROFILE\Desktop\SSMAgent_latest.exe
Start-Process `
-FilePath $env:USERPROFILE\Desktop\SSMAgent_latest.exe `
-ArgumentList "/S"
New-Item -ItemType directory -Path C:\Cats
<powershell>
解决方法
如何在不分配它的情况下使其运行?没有什么应该公开的,尤其是计算。
由于主要问题已解决(请参阅评论),所以我可以对上述问题发表评论。
根据定义,如果实例位于公共子网中,则该实例将在分配了公共IP的情况下公开提供。为确保您的实例为私有,但仍可以连接互联网,需要执行以下三项操作:
- 一个私有子网,但没有通往互联网网关的路由,
- NAT gateway在公共子网中 必须将专用子网的
- 路由表配置为将Internet通信路由到NAT网关。
使用此设置,在专用子网中启动实例可确保它能够访问Internet(例如,下载软件或更新),但是它将从Internet 不可访问。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。