host: ["app01","appN"]
и когда мне надо выполнить таску в случае существования when: "someting['host'] is defined", получается что тк это массив, то условие не срабатывает.
Подскажите как описать when, когда случай с массивом?
Уверены, что не срабатывает? По-моему, отлично работает. --- - hosts: localhost gather_facts: no vars: someting: host: ["app01","appN"] tasks: - debug: msg: 'True' when: "someting['host'] is defined" - debug: msg: 'False' when: "someting['host'] is not defined"
у меня на самом деле так: when: "'server' in group_names and someting['host'] is defined" и падает на ошибку: unsupported operand type(s) for -: 'dict' and 'bool'
Запишите отдельные условия вот так. when: - ... - ...
он же пишет, что не может сделать И между словарем и булевом
тобишь их не реально вместе описать?
так же падает на ошибку
Ошибка такая же?
группа из нескольких хостов где должен деплой произойти, если переменная defined
Тогда поменять условия местами было бы неплохо :) И неплохо посмотреть реальный код и реальные переменные. Пока что похоже на то, что у вас там не те типы данных в переменных.
Обсуждают сегодня