我有一本可启动ec2实例的剧本。但是我运行它时总是收到以下错误。
---
- name: Create an ec2 instance
hosts: localhost
gather_facts: false
vars:
region: us-east-1
instance_type: t2.micro
ami: ami-01ac7d9c1179d7b74
keypair: priyajdm
tasks:
- name: Create an ec2 instance
ec2:
key_name: "{{ keypair }}"
group: launch-wizard-31
instance_type: "{{ instance_type }}"
image: "{{ ami }}"
wait: true
region: "{{ region }}"
count: 1
vpc_subnet_id: subnet-02f498e16fd56c277
assign_public_ip: yes
register: ec2
错误:
执行任务期间发生异常。要查看完整的回溯,请使用-vvv。错误是:AuthFailure
AWS无法验证所提供的访问凭证cb70bd1a-b7ec-41aa-895a-fabf9e0b6cfe
致命的:[本地主机]:失败! => {“已更改”:false,“ module_stderr”:“跟踪(最近一次通话结束):\ n文件\“ / root / .ansible / tmp / ansible-tmp-1553599571.08-120541135236553 / AnsiballZ_ec2.py \”,行113,在\ n _ansiballz_main()\ n文件\“ / root / .ansible / tmp / ansible-tmp-1553599571.08-120541135236553 / AnsiballZ_ec2.py \”的行105中,在_ansiballz_main \ n invoke_module(zipped_mod,temp_path,ANSIBALLZ_PARMS) \ n文件\“ / root / .ansible / tmp / ansible-tmp-1553599571.08-120541135236553 / AnsiballZ_ec2.py \”,第48行,在invoke_module \ n imp.load_module(' main ',mod ,模块,MOD_DESC)\ n文件\“ / tmp / ansible_ec2_payload_hXpgWw / 主要 .py \”,第1702行,位于\ n文件\“ / tmp / ansible_ec2_payload_hXpgWw / 主要 .py \“,第1686行,位于主\ n文件\” / tmp / ansible_ec2_payload_hXpgWw / 主要 .py \“,第989行,位于create_instances \ n文件\” / home / ubuntu / .local /lib/python2.7/site-packages/boto/vpc/ init .py \“,行1152,在get_all_subnets \ n中返回self.get_list('Descr ibeSubnets',参数,[('item',子网)])\ n文件\“ / home / ubuntu / .local / lib / python2.7 / site-packages / boto / connection.py \”,第1186行,在get_list \ n提高self.ResponseError(response.status,response.reason,body)\ nboto.exception.EC2ResponseError:EC2ResponseError:401未经授权\ n \ n AuthFailure
AWS无法验证提供的访问凭证cb70bd1a-b7ec -41aa-895a-fabf9e0b6cfe \ n“,” module_stdout“:”“,” msg“:”模块故障\ n请参阅stdout / stderr了解确切错误“,” rc“:1}
答案 0 :(得分:0)
您将AWS凭证保存在哪里?您有3个选择:
最后一个选项是最差的做法,但是是解决身份验证问题的最简单方法。
查看EC2 Module的笔记。