执行剧本以启动ec2实例时出错

时间:2019-03-26 11:29:00

标签: amazon-web-services ansible

我有一本可启动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}

1 个答案:

答案 0 :(得分:0)

您将AWS凭证保存在哪里?您有3个选择:

  1. 使用boto配置文件
  2. 设置所需的环境变量
  3. 在任务中设置EC2模块AWS凭证参数

最后一个选项是最差的做法,但是是解决身份验证问题的最简单方法。

查看EC2 Module的笔记。