Тайм-аут Boto Socket при инициализации экземпляра EC2 с использованием ansible

У меня есть простой доступный сценарий для создания экземпляра AWS-EC2.

У меня есть ключ доступа к AWS и секретный ключ в переменных среды. Мне кажется, boto истекает время ожидания при попытке подключения к AWS?

Ниже приведены сведения о хостах, плейбуке и журнале ошибок с терминала. Может ли это быть проблема с прокси? В моей среде установлен https_proxy.

Просмотрел другие блоги и вопросы по stackoverflow, но не смог решить эту проблему.

В моем доступном файле хоста есть следующие.

[localhost]
127.0.0.1

--- # Create ec2 instance playbook

- hosts: localhost
  connection: local
  gather_facts: false
  vars_prompt:
    inst_name: "What's the name of the instance?"
  vars:
      keypair: ".pem name here?? <<I already have ec2 instance that i created manually, using same key name here>>"
      instance_type: "t2.large"
      image: "ami-3d409b56"
      group: "securityGroup here"
      region: "us-east-1"
  tasks:
    - name: make one instance
      ec2: image={{ image }}
           instance_type={{ instance_type }}
           instance_tags='{"Name":"{{ inst_name }}"}'
           region={{ region }}
           group={{ group }}
           vpc_subnet_id="subnet-dfb490a8"
           wait=true
      register: ec2_info

    - name: Add instances to host group
      add_host: hostname={{ item.public_ip }} groupname=ec2hosts
      with_items: ec2_info.instances

    - name: Wait for SSH to come up
      wait_for: host={{ item.public_dns_name }} port=22 delay=60 timeout=320 state=started
      with_items: ec2_info.instances



****Error:****
failed: [localhost] => {"failed": true, "parsed": false}
Traceback (most recent call last):
  File "/var/root/.ansible/tmp/ansible-tmp-1445631523.13-62493682297224/ec2", line 3070, in <module>
    main()
  File "/var/root/.ansible/tmp/ansible-tmp-1445631523.13-62493682297224/ec2", line 1249, in main
    (instance_dict_array, new_instance_ids, changed) = create_instances(module, ec2, vpc)
  File "/var/root/.ansible/tmp/ansible-tmp-1445631523.13-62493682297224/ec2", line 792, in create_instances
    vpc_id = vpc.get_all_subnets(subnet_ids=[vpc_subnet_id])[0].vpc_id
  File "/Library/Python/2.7/site-packages/boto-2.38.0-py2.7.egg/boto/vpc/__init__.py", line 1153, in get_all_subnets
    return self.get_list('DescribeSubnets', params, [('item', Subnet)])
  File "/Library/Python/2.7/site-packages/boto-2.38.0-py2.7.egg/boto/connection.py", line 1170, in get_list
    response = self.make_request(action, params, path, verb)
  File "/Library/Python/2.7/site-packages/boto-2.38.0-py2.7.egg/boto/connection.py", line 1116, in make_request
    return self._mexe(http_request)
  File "/Library/Python/2.7/site-packages/boto-2.38.0-py2.7.egg/boto/connection.py", line 1030, in _mexe
    raise ex
socket.timeout: timed out

Новая ошибка после добавления прокси:

failed: [localhost -> 127.0.0.1] => {"failed": true, "parsed": false}
reply: 'HTTP/1.0 200 Connection established\r\n'
send: 'POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 48\r\nUser-Agent: Boto/2.38.0 Python/2.7.10 Darwin/14.5.0\r\nHost: ec2.us-east-1.amazonaws.com\r\nX-Amz-Date: 20151025T132220Z\r\nContent-Type: application/x-www-form-urlencoded; charset=UTF-8\r\nAuthorization: AWS4-HMAC-SHA256 Credential=MyKEYHere/20151025/us-east-1/ec2/aws4_request,SignedHeaders=host;x-amz-date,Signature=someSignature\r\n\r\nAction=DescribeSecurityGroups&Version=2014-10-01'
reply: 'HTTP/1.1 401 Unauthorized\r\n'

person Raghu    schedule 23.10.2015    source источник
comment
Я добавил следующую строку в свою задачу ansible и теперь получаю исключение 401. Похоже, теперь он может хотя бы разговаривать с AWS? Кажется, он не берет ключ доступа из моих переменных env? 'environment: http_proxy: user: password @ proxy: port' поднять self.ResponseError (response.status, response.reason, body) boto.exception.EC2ResponseError: EC2ResponseError: 401 Unauthorized ‹? xml version = 1.0 encoding = UTF-8?› ‹Error› ‹Code› AuthFailure ‹/Code› ‹Message› AWS не удалось проверить предоставлены учетные данные для доступа ‹/Message› ‹/Error›   -  person Raghu    schedule 24.10.2015


Ответы (1)


неважно .. прошли обе ошибки. Тайм-аут Boto Socket - который, как я упоминал ранее, был из-за прокси. И второй - авторизация AWS из-за отсутствия параметра profile в моем скрипте ansible.

 local_action: ec2 instance_tags="Name=AnsibleTest"
                  instance_type={{ instance_type}}
                  image={{ image }}
                  wait=true
                  group_id={{group_id}}
                  **profile=ProfileToWhichMyUserBelongsTo**
person Raghu    schedule 26.10.2015