#amazon-ec2 #ansible #boto #elastic-ip
#amazon-ec2 #ansible #boto #эластичный-ip
Вопрос:
Я запускаю boto с python3 и использую ansible playbook для настройки некоторых экземпляров ec2. Все в порядке, создаются экземпляры, группы безопасности, пары ключей, все eu-west-2
включено. При выполнении задачи для эластичных IP-адресов происходит сбой с этим сообщением: Region eu-west-2 does not seem to be available for aws module boto.ec2. If the region definitely exists, you may need to upgrade boto or extend with endpoints_path
Я использую ansible -e ansible_python_interpreter="/usr/bin/python3"
. У меня установлена последняя версия boto.
> python3 -m pip freeze | grep boto
boto==2.44.0
boto3==1.4.2
botocore==1.16.19
> python3
>>> import boto.ec2
>>> for i in boto.ec2.regions():
... print(i)
...
RegionInfo:ap-northeast-1
RegionInfo:ap-northeast-2
RegionInfo:ap-south-1
RegionInfo:ap-southeast-1
RegionInfo:ap-southeast-2
RegionInfo:ca-central-1
RegionInfo:cn-north-1
RegionInfo:eu-central-1
RegionInfo:eu-west-1
RegionInfo:sa-east-1
RegionInfo:us-east-1
RegionInfo:us-east-2
RegionInfo:us-gov-west-1
RegionInfo:us-west-1
RegionInfo:us-west-2
Вы видите, что в нем отсутствует eu-west-2
регион? Он должен быть там. Есть идеи?
Модуль ansible, который я использую, — ec2_eip. Если это ограничение boto, как мне принудительно использовать boto3 для этого модуля?
Комментарии:
1. boto — это старый AWS SDK, вы должны импортировать boto3 — последний выпуск boto был в июле 2018 года — тогда регион еще не существовал. pypi.org/project/boto/#history
Ответ №1:
Я прибегнул к использованию модуля сообщества для эластичного ip. Поэтому community.aws.ec2_eip
вместо ec2_eip
.