Wexagon, в таком случае вам следует сделать отладку. Кроме того, в приведённом коде нету какого-либо логирования значения в конструкции ветвления и при этом внутри вы повторно вызываете функции и логируете результат. А во время повторного вызова там может быть другое значение. Правильнее проверять конкретное значение в конкретный момент времени:
Wexagon, т.е., вы запустили отладку вашего кода, прошли по шагам каждую функцию, посмотрели значение каждой переменной на каждом шаге, получили описанный вами результат и определили, что виноват оператор? Верно?
Mors Clamor, воот, надо дальше смотреть - что это за ошибка и как её исправить. Может там аргумент какой-то не поддерживаемый или ещё что-то несовместимое?
Mors Clamor, ну тогда да, только через пароль. Может какая-то сетевая проблема? А пробовали выполнить полностью всю команду для подключения, которую выполняет ансибл? В логе она вроде есть.
yarovikov, ну, я мог бы тогда сказать "как вопрос сформулировали - такой ответ и получили". Но, давайте всё же будем несколько более конструктивными? Каждое изделие уникально, создаётся человеком с определёнными ограничениями и условиями, а так же ещё с кучей других нюансов. И программа сама с потолка не сможет узнать как именно предполагается собирать/разбирать это изделие, чтобы создать так нужную вам анимацию. Если у вас изделия типовые - то можно в некоторых пределах автоматизировать процесс создания этой анимации. Например нумерацией деталей по очерёдности и задания базовых векторов движения для установки/снятия детали. Под какие-то типовые детали - болт, шпилька, гайка и т.п. можно заранее в модель включить траекторию. И уже всё это вместе скармливать какому-то скрипту/приложению, которое учтёт все эти данные и дополнит траектории с нужными вам параметрами и сделает так нужную вам анимацию. И которую всё равно придётся как-то исправлять и дополнять.