Здравствуйте! Можно ли в анзибл с помощью фильтров, без if

и тому подобного проверить, что если переменная содержит в себе число, и оно больше определенного значения, то присваивать своё значение?

18 ответов

45 просмотров

Можно через ternary по идее

Elina-Linko Автор вопроса
Elina-Linko Автор вопроса

Получилось красивое {{ ((ansible_processor_vcpus - 2) | int > 8) | ternary('8', (ansible_processor_vcpus - 2 | int)) }} Я не стала добавлять проверку на уход в минус, там это не надо ) Главное, суть ясна.

Но ведь там 3е не про минус, а null

Elina-Linko Автор вопроса
azadevlab
Но ведь там 3е не про минус, а null

Я эту штуку запихала в инвентри. Если вывалится из-за этого - то инвентри очень легко поправить.

Elina Linko
Получилось красивое {{ ((ansible_processor_vcpus -...

Я вот так сделал: nginx_max_worker_processes: 4 nginx_worker_processes: "{{ ([ansible_processor_vcpus | default(ansible_processor_count) | int] + [nginx_max_worker_processes | int]) | min }}"

Elina-Linko Автор вопроса
Vladislav 👻 Shishkov
Я вот так сделал: nginx_max_worker_processes: 4 n...

Мне надо чтобы число было всегда меньше на 2 от количества ядер. Но при этом не больше 8.

Elina-Linko Автор вопроса
Timur Gadiev
А если ядро всего одно?

Можно было добавить ещё одну проверку дальше, но я не стала это делать. У нас минимум 4 ядра, а строчка получается слишком длинная с такой проверкой.

Elina Linko
Мне надо чтобы число было всегда меньше на 2 от ко...

- set_fact: foobar: >- {% set a = (ansible_processor_vcpus - 2) %} {% if a > 8 %} {% set needed_num = 8 %} {% else %} {% set needed_num = a %} {% endif %} {{ needed_num}} а если так?

Elina-Linko Автор вопроса
Bodya Lvrk
- set_fact: foobar: >- {% set a = (ansible_pro...

В моей изначальном условии было без if

Elina-Linko Автор вопроса
Bodya Lvrk
- set_fact: foobar: >- {% set a = (ansible_pro...

Но решение интересно. Я хотела тоже всё делать через таски, но опять таки, лишний таск... Запомню. Пригодиться когда-нибудь.

Elina Linko
В моей изначальном условии было без if

сделать что-то с условием без if... ох и задача) when тоже не подходит, как я понимаю?)

Elina-Linko Автор вопроса
Bodya Lvrk
сделать что-то с условием без if... ох и задача) ...

Через ternary всё отлично получилось уже )

Elina Linko
Через ternary всё отлично получилось уже )

заодно и себе пирглядел на будущее, впервые слышу об этом операторе

Elina-Linko Автор вопроса
Bodya Lvrk
заодно и себе пирглядел на будущее, впервые слышу ...

Он вообще шикарен, я просто сама про него забыла )

Bodya Lvrk
- set_fact: foobar: >- {% set a = (ansible_pro...

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

Bodya Lvrk
- set_fact: foobar: >- {% set a = (ansible_pro...

Крайне рекомендую ихбегать сетфактов, слишком сильная переменная которая внутри тасок

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта