O inventário dinâmico de ec2.py
usa boto
para fazer chamadas de API para a AWS.
Então, você pode querer verificar se boto
pode se conectar à AWS executando:
python
>>> import boto
>>> s3 = boto.connect_s3()
se você tiver algo assim:
boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
suas credenciais não estão corretas. Existem várias maneiras de configurar o boto. Mas, para propósitos de depuração, você poderia simplesmente definir AWS_ACCESS_KEY_ID
e 'AWS_SECRET_ACCESS_KEY' via linha de comando assim:
export AWS_ACCESS_KEY_ID='AK123'
export AWS_SECRET_ACCESS_KEY='abc123'
Ao usar IAM roles
, você deve observar que:
IAM Roles are supported by plugins/inventory/ec2.py when using boto 2.5.0 or higher.
When running on an EC2 instance that has an IAM Role assigned, and the role policy allows the ec2:Describe* action, ec2.py --list will work without the need to specify aws_access_key_id or aws_secret_access_key.
Additional actions will need to be allowed in the role policy if ec2.ini defines route53 = True or rds = True. github issue