#python #ansible #windows-subsystem-for-linux
#python #ansible #windows-subsystem-for-linux
Вопрос:
Мы используем сборники воспроизведения Ansible, которые вызывают пользовательские модули Python, работающие на AWX / Centos. Мне нужно внести некоторые изменения в модули, и я хочу запустить их локально в моей среде разработки, которая является Windows. Я хочу иметь возможность пошагово выполнять код и не запускать что-либо удаленно (хотя WSL подходит).
Я не могу запустить модуль непосредственно в Windows, поскольку pip install Ansible и pip install AnsibleRunner оба завершаются неудачей (что, я думаю, ожидаемо).
Я смог запустить свой playbook с помощью AnsibleRunner в WSL, но он завис (я думаю, он пытался подключиться к localhost через ssh). Даже если он запустил playbook / module, я подозреваю, что он не остановится на моих точках останова. Теперь я запускаю свой модуль напрямую (например, module.run_module()) в wsl, и я могу войти в него, но он никогда не возвращается после вызова следующего:
module = AnsibleModule(
argument_spec=module_args,
supports_check_mode=True
)
Есть идеи, почему это остановилось бы здесь? Журналы или ошибки не генерируются.
Любые другие рекомендации? Я хочу иметь возможность легко вносить изменения в код и тестировать / выполнять их. Я выполнял удаленную отладку с помощью других технологий, и это отстой, поэтому я хочу избежать этого.
Ответ №1:
Я понял это, он блокировался, потому что AnsibleModule пытался заполнить _ANSIBLE_ARGS путем чтения из stdin. Проверив код, я понял, что вместо него будет использоваться файл, если первый аргумент является допустимым файлом.
Итак, теперь я могу выполнить пошаговый запуск своего пользовательского модуля, вызываемого из тестовой программы, работающей в VSCode в Windows, через WSL / Ubuntu.