Использую Arch.
Хочу собрать последний Ansible 2.9 с Mitogen для ускорения работы плейбуков. Mitogen работает только с Ansible до 2.9(или до 2.10, не суть). Судя по документации, Ansible 2.9 это что-то типа LTS-релиза.
Собрал пакет в AUR для ansible 2.9 на основе архивного PKGBUILD. Накатил также mitogen из AUR.
В переменных окружениях указал:
ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python3.10/site-packages/ansible_mitogen/plugins/strategy/
Получаю такую ошибку при запуске плейбуков:
PLAY [apply common configuration to all nodes] *******************************************************************************************************************************
ERROR! Unexpected Exception, this is probably a bug: name 'ansible' is not defined
the full traceback was:
Traceback (most recent call last):
File "/usr/bin/ansible-playbook", line 123, in <module>
exit_code = cli.run()
File "/usr/lib/python3.10/site-packages/ansible/cli/playbook.py", line 128, in run
results = pbex.run()
File "/usr/lib/python3.10/site-packages/ansible/executor/playbook_executor.py", line 169, in run
result = self._tqm.run(play=play)
File "/usr/lib/python3.10/site-packages/ansible/executor/task_queue_manager.py", line 261, in run
strategy = strategy_loader.get(new_play.strategy, self)
File "/usr/lib/python3.10/site-packages/ansible/plugins/loader.py", line 552, in get
self._module_cache[path] = self._load_module_source(name, path)
File "/usr/lib/python3.10/site-packages/ansible/plugins/loader.py", line 525, in _load_module_source
spec.loader.exec_module(module)
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/usr/lib/python3.10/site-packages/ansible_mitogen/plugins/strategy/mitogen_linear.py", line 55, in <module>
import ansible_mitogen.loaders
File "/usr/lib/python3.10/site-packages/ansible_mitogen/loaders.py", line 86, in <module>
assert_supported_release()
File "/usr/lib/python3.10/site-packages/ansible_mitogen/loaders.py", line 73, in assert_supported_release
raise ansible.errors.AnsibleError(
NameError: name 'ansible' is not defined
Полагаю, что проблема в том, что mitogen не работает с python 3.10 и нужно собирать ansible c python 3.7, а также все сопутствующие библиотеки. Mitogen так же. И это уже что-то пугает, потому что зависимостей там дофига, и сопровождать десяток мелких пакетов это так себе.
Есть какие-то простые пути получить желаемое?