when: db | default(false) == 'true'
и два условия если true что бы брало value = mongo_db
если false брало value = mongo2_db
Как реализовать ?
а если просто описать 2 плейбука - в одном when: db = 'mongo_db', а во втором db = 'mongo2_db'
Вот вопрос как )
да можно вообще и в db.yml сделать 2 block c when: db = 'mongo_db' и when: db = 'mongo2_db'
value: '{% "mongo_db" if (var|bool) else "mongo2_db" %}' Но лучше вместо булевой переменной сразу название базы передавать в include_tasks
ternary
Не подскажешь как будет в моем случае ?
через omit не думали?
В чем разница? Кроме как возможности обработки отсутствия переменной?
Не могу понять как реализовать в моем случае
Думаю предполагается какой-то такой вариант. value: '{{ var | ternary("mongo_db", "mongo2_db") }}'
- include_tasks: db.yml vars: value: mongo2_db when: db is not defined or db == 'false' - include_tasks: db.yml vars: value:mongo_db when: db is defined and db == 'true' ? типа так
Почему? ИМХО выглядит просто и понятно даже для новичка
Ненужное дублирование кода + ненужное сравнение булевой переменной
Да вы правы value: '{{ db| ternary("mongo_db", "mongo2_db") }}' выглядит короче
Обсуждают сегодня