Задачка: - name: Поставить пакет lsyncd ansible.builtin.apt:

pkg:
- lsyncd
state: present
update_cache: true
when: (csync2_cluster is defined) and (csync2_cluster == "yes")

там где переменная определена, все красиво. На хостах, где переменная вообще не указана

fatal: [x.x.x.x]: FAILED! => {"msg": "The conditional check 'csync2_cluster == \"yes\"' failed. The error was: error while evaluating conditional (csync2_cluster == \"yes\"): 'csync2_cluster' is undefined. 'csync2_cluster' is undefined\n\nThe error appears to be in '/home/settler/.ansible/admin/roles/csync2_lsyncd/tasks/main.yml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: Поставить пакеты lsyncd\n ^ here\n"}

Подскажите - как это правильно принято описывать?
Можно конечно хосты по группам разбить, но хочется понять как такой вариант победить.

16 ответов

38 просмотров

when: csync2_cluster | default(false)

Timur Gadiev
when: csync2_cluster | default(false)

А если кто-то поставит csync2_cluster: no? или "no"?

Andrey-Nekrasov Автор вопроса

Возможно где-то ещё используется?

Andrey-Nekrasov Автор вопроса
Lamobot
Возможно где-то ещё используется?

не, это микро задачка, там больше ничего нет кроме написанного выше

Не может такого быть. Вы что-то путаете

Andrey-Nekrasov Автор вопроса
Timur Gadiev
Не может такого быть. Вы что-то путаете

[servers] 1.2.3.1 csync2_cluster=yes 1.2.3.2 csync2_cluster=yes 1.2.3.3 csync2_cluster=yes 1.2.3.4 csync2_cluster=no 1.2.3.5 первые три - делает, там где no - скипает. там где переменной нет - вываливает портянку ошибки

Timur Gadiev
when: csync2_cluster | default(false)

when: csync2_cluster is defined and csync2_cluster

Andrey-Nekrasov Автор вопроса

мне сильно кажется, что no | bool == true

Andrey-Nekrasov Автор вопроса
Denis nobody
мне сильно кажется, что no | bool == true

"when: csync2_cluster | default(false) | bool" - вот этот вариант рабочий. меня пока устраивает. хотя по нормальному в жизни лучше конечно сервера по группам разложить в инвентори, как мне кажется.

Andrey Nekrasov
"when: csync2_cluster | default(false) | bool" - в...

и при no тоже работает верно и пропускается?

Andrey-Nekrasov Автор вопроса
Denis nobody
и при no тоже работает верно и пропускается?

ага и вот так норм - when: csync2_cluster is defined and csync2_cluster == "yes"

Andrey Nekrasov
ага и вот так норм - when: csync2_cluster is defin...

как минимум тут читаемость сильно лучше предыдущего

Похожие вопросы

Обсуждают сегодня

Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Всем привет В общем надо на странице вакансии вывести вакансии с hh, но когда я пишу код в разделе Code ошибка Invalid URL format. The URL should start with the forward slash...
A da
1
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Это немного оффтоп, но я просто хз куда писать. Как можно решить проблему эту? У некоторых людей автовоспроизведение гифок включено, но все равно подобное вместо гифок
Anton Shvets
1
DataGrip не сканирует почему-то все таблицы, хотя раньше показывал их че за херня, сталкивались?
Magic
9
Привет! Подскажите может кто сталкивался, при создании купона выходит вот в таком виде окно. Как поправить это?
Ruslan
4
Карта сайта