то есть |default('') не спасет. Как можно сделать в той же j2? {{ hostvars[inventory_hostname]['ansible_env'].SSH_CONNECTION.split(' ')[2] }} . как проверить аттрибут и если нет сделать default?
Почему не спасает ?
потому как идет доступ по ключу которого нет.
кто не умеет читать то тут написано
Эх.... Если хочешь, чтоб дефолт работал - он должен быть последним в записи, ты не можешь методы потенциально несуществующего объекта вызывать (в данном случае - split)
ок. ну то есть нужно сначала обернуть всю конструкцию в какой нибудь if и только потом split и прочее?
Default достаточно, просто продумай, как будет работать дальнейшая часть выражения, если сработет default. Ну и в этом разе ты, если что, пишешь код в фукциональном стиле :-)
Обсуждают сегодня