Динамический инвентарь: ec2.py
ansible 2.1.0.0
Python 2.7.10
Mac OS X 10.11.6
Автономный запуск ec2.py вызывает ошибку импорта.
python ec2.py --list
Traceback (most recent call last):
File "ec2.py", line 134, in <module>
from ansible.module_utils import ec2 as ec2_utils
ImportError: No module named ansible.module_utils
Список экземпляров
Ошибка выше.
Если я закомментирую строку from ansible.module_utils import ec2 as ec2_utils
сценарий будет работать нормально.
Линия была представлена в # 16606.
@jonatanblue , импорт был добавлен https://github.com/ansible/ansible/commit/59e499f8f00e4068b68c147b8f3002535ad706e0, что, похоже, является попыткой нормализовать код настройки клиента Boto.
Подразумевается, что для использования скрипта инвентаризации на компьютере должен быть установлен ansible, чтобы в пути python для вашего интерпретатора python по умолчанию был доступен «ansible». Мы планируем со временем более широко использовать доступные библиотеки в сценариях динамической инвентаризации, поэтому я не собираюсь отменять это изменение.
Приятно слышать, что это не ошибка. Это описано где-нибудь в документации?
Я выяснил, что вызвало это с моей стороны: установка Ansible с brew
сделала ansible недоступным для моего интерпретатора Python.
Чтобы исправить это, я удалил Ansible и снова установил его с помощью pip:
brew uninstall ansible
pip install ansible
Теперь доступен анзибль:
python -c "import ansible;print(ansible.__version__)"
2.1.1.0
и сценарий работает как положено.
Возможно, стоит упомянуть об этом где-нибудь в документации или сделать так, чтобы сценарий выдал информативную ошибку, если ansible
недоступен в пути python.
Самый полезный комментарий
Приятно слышать, что это не ошибка. Это описано где-нибудь в документации?
Я выяснил, что вызвало это с моей стороны: установка Ansible с
brew
сделала ansible недоступным для моего интерпретатора Python.Чтобы исправить это, я удалил Ansible и снова установил его с помощью pip:
Теперь доступен анзибль:
и сценарий работает как положено.
Возможно, стоит упомянуть об этом где-нибудь в документации или сделать так, чтобы сценарий выдал информативную ошибку, если
ansible
недоступен в пути python.