使用Vagrant创建EC2实例遇执行卡住,求解决方案
解决Vagrant创建AWS EC2实例时进程卡住的问题
看起来你在使用Vagrant AWS插件创建EC2实例时遇到了进程卡住的情况,我帮你梳理几个常见的排查和解决方向:
1. 先确认AWS凭证是否配置到位
Vagrant AWS插件需要AWS的访问密钥才能调用EC2 API,如果没有配置凭证,进程会默默卡住等待输入(不会有明显提示)。
你可以通过两种方式配置:
- 环境变量方式(推荐,避免把密钥写进代码):
在终端执行:
之后再运行export AWS_ACCESS_KEY_ID="你的AWS访问密钥ID" export AWS_SECRET_ACCESS_KEY="你的AWS秘密访问密钥"vagrant up --provider=aws - 直接写进Vagrantfile(注意不要提交到版本库):
在provider块里添加:aws.access_key_id = '你的AWS访问密钥ID' aws.secret_access_key = '你的AWS秘密访问密钥'
2. 启用安全组并确保开放SSH端口
你把安全组配置注释掉了,这会让EC2实例使用默认安全组,但如果默认安全组没有开放22端口(SSH),Vagrant会卡在尝试连接实例的步骤。
解决方法:
- 取消注释
aws.security_groups = ['default']这一行 - 登录AWS控制台,检查这个安全组的入站规则,确保允许你的公网IP访问22端口(SSH),否则Vagrant根本连不上实例,进程会一直卡着。
3. 验证AMI的可用性和兼容性
你用的AMI ami-0dad20bd1b9c8c004 需要确认在ap-southeast-1区域是可用的,并且和t2.small实例类型兼容。如果AMI不存在或者不兼容,AWS API可能不会返回明确错误,导致进程卡住。
你可以去AWS EC2控制台的AMI页面搜索这个ID,确认它在新加坡区域可用,或者换成该区域最新的Amazon Linux 2 AMI(可以从AWS官方文档找到对应区域的AMI ID)。
4. 暂时禁用同步文件夹排查问题
你配置了rsync类型的同步文件夹,Vagrant会在实例启动后尝试同步本地文件。如果SSH连接有问题,这一步也会卡住。可以先注释掉这一行测试:
# config.vm.synced_folder ".", "/vagrant", type: "rsync"
如果注释后能正常启动,那问题就出在同步文件夹的配置上,后续再排查rsync的问题。
5. 开启调试日志定位具体问题
如果以上方法都没解决,开启Vagrant的调试日志,能看到进程卡在哪个阶段:
VAGRANT_LOG=debug vagrant up --provider=aws
日志里会详细显示每一步的操作,比如是卡在调用AWS API创建实例,还是卡在SSH连接,或者是同步文件夹的步骤,这样就能精准定位问题了。
内容的提问来源于stack exchange,提问作者Sager Gulabani
相关产品推荐
相关产品推荐

