使用Ansible创建EC2实例时遇模块解析错误求助
解决Ansible无法找到amazon.aws.ec2_instance模块的问题
你遇到的ERROR! couldn't resolve module/action 'amazon.aws.ec2_instance'错误,核心原因是本地未安装Amazon AWS官方Ansible集合,以下是具体解决步骤:
1. 安装Amazon AWS Ansible集合
执行以下命令安装所需的官方集合:
ansible-galaxy collection install amazon.aws
2. 验证集合安装状态
运行命令确认集合已成功安装:
ansible-galaxy collection list | grep amazon.aws
若输出包含amazon.aws及对应版本号,说明安装完成。
3. 修正Playbook中的参数问题(避免后续报错)
你的Playbook存在两处参数错误,需要修正:
group参数在amazon.aws.ec2_instance模块中应改为security_groupvpc_subnet_id需传入子网ID(格式如subnet-xxxxxxx),而非VPCID
修正后的Playbook代码:
- name: launching AWS instance using Ansible amazon.aws.ec2_instance: key_name: xxxxx instance_type: xxxxx image: "{{ ami_id }}" region: ap-southeast-2 wait: yes security_group: Ansible count: 1 vpc_subnet_id: subnet-xxxxxxx register: ec2
4. 额外检查项
- 确保Ansible版本在2.10及以上,amazon.aws集合对Ansible版本有最低要求,版本过低会导致集合无法正常运行
- 确认AWS凭证已正确配置(可通过环境变量
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY、~/.aws/credentials文件或Ansible参数指定),否则实例创建时会触发权限错误
内容的提问来源于stack exchange,提问作者Shivaah
相关产品推荐
相关产品推荐

