ПРИМЕЧАНИЕ: Нижеприведенный ответ больше не относится к Ansible 2.1+. Из комментариев:
Я понимаю, что это старый пост, но если кто-то все еще будет заинтересован, стоит отметить, что это уже не так, поскольку невозможно 2.1. Взято с here: До Ansible-2.1.0 импортирование только того, что вы использовали из ansible.module_utils.basic, не работало. Вам нужно было использовать подстановочный импорт - bouletta
Оригинал ответ
анзибля (prior to version 2.1) will refuse to run, если вы не делаете import *
бизнеса. Я не на 100% определенно что магия делается, но я знаю some есть.
Replacer используется для вставки кусков кода в модули до передачи . Вместо того, чтобы делать классический импорт python, это позволяет использовать более эффективную передачу в сценарии без перезагрузки, не перемещая дополнительные файлы по проводу, а также заботится о вложении аргументов в переданные модули .
Эта версия выполнена таким образом, что локальный импорт по-прежнему может быть , используемый в коде модуля, поэтому IDE не должны знать, что происходит.
Пример:
from ansible.module_utils.basic import *
... приведет вставки basic.py в модуль из module_utils/каталога в исходном дереве.
Все модули должны импортировать как минимум базовые, хотя также будут другими фрагментами.
Ansible просто задумывается над тем, как они идут. Игнорируйте их и сделайте это правильно. – VooDooNOFX