Ошибка при создании динамического инвентаря EC2 в Ansible
Я новичок в Ansible. Я использовал следующий учебник для настройки динамического инвентаря - https://aws.amazon.com/blogs/apn/getting-started-with-ansible-and-dynamic-amazon-ec2-inventory-management/
При запуске ec2.py я получаю следующуюошибку: ОШИБКА: в сценарии инвентаризации (ec2.py) произошла ошибка выполнения: обратная связь (последний вызов был последним): файл "/etc/ansible/ec2.py", строка 130, in from boto importasticache ImportError: невозможно импортировать имя эластичной боли
Кто-нибудь может подсказать, что идет не так?
4 ответа
Похоже, вам нужно установить модуль Бото
pip install boto
должен сделать это для вас.
В Ubuntu (по крайней мере, 12.04) кажется, что если вы устанавливаете модули Python через PIP, /usr/local/lib/python2.7/dist-packages не будет доступен для чтения другим пользователям - он будет доступен только для пользователя root и персонала группа
drwxr-s--- 6 root staff 4096 Jan 7 22:04 awscli
drwxr-s--- 2 root staff 4096 Jan 7 22:04 awscli-1.9.17.dist-info
drwxr-s--- 6 root staff 4096 Dec 28 22:07 beaver
drwxr-s--- 2 root staff 4096 Dec 28 22:07 Beaver-31-py2.7.egg-info
drwxr-s--- 57 root staff 4096 Dec 28 22:07 boto
drwxr-s--- 2 root staff 4096 Dec 28 22:07 boto-2.38.0.dist-info
drwxr-s--- 5 root staff 4096 Jan 7 21:54 botocore
drwxr-s--- 2 root staff 4096 Jan 7 21:54 botocore-1.3.17.dist-info
Самое простое решение (без внесения изменений в каталог dist) - добавить пользователя в группу персонала:
usermod -aG staff USERNAME
Если вы установите Ansible из Ansible ppa
https://launchpad.net/~ansible/+archive/ubuntu/ansible
тогда ваш Ansible устанавливается с помощью пакета python 2.7 в вашей Ubuntu.
вам понадобится Python-Boto установлен, у вас есть два способа сделать это:
установить
python-boto
пакет в вашей системе Ubuntu:sudo apt-get install python-boto
установить пакет
boto
используя pip в системном python, НЕ РЕКОМЕНДУЕТСЯ, избегайте этого, потому что в будущем у вас будут конфликты между пакетами python, установленными из apt в качестве зависимостей, и пакетами, установленными сpip
sudo pip install boto
Привет всем, я бегу к этой же проблеме. Моя установка выглядит следующим образом:
- Mac OSX 10.11.6
- Python 2.7.13
- Ansible 2.3.0.0
- бото 2.46.1
Я использую homebrew, и я попытался переустановить ansible и boto, но безуспешно. Я продолжаю получать сообщение об ошибке:
ERROR! Attempted to execute "inventories/ec2.py" as inventory script: Inventory script (inventories/ec2.py) had an execution error: Traceback (most recent call last):
File "/Users/myname/Sites/admin/ansible/inventories/ec2.py", line 130, in <module>
from boto import elasticache
ImportError: cannot import name elasticache
Ищу любую помощь. Спасибо!