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

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

18 ответов

42 просмотра

Можно через 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...

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

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

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

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
2
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Ребят, а двух-факторку для плагина Users и для бэкенда октября кто-то прикручивал? Поделитесь опытом
Constantine Anikin
4
Карта сайта