Комрадз, подскажите как в j2 описать следующее: есть группа в ней

n-хостов, в конфиге на каждом хосте нужно перечислить ip всех хостов из группы, кроме собственного ip. собственно как из цикла исключить собственный ip хоста? спасибо

22 ответов

30 просмотров

{% for ip in groups[keepalived_group_name] | map('extract', hostvars, ['ansible_eth1', 'ipv4', 'address']) | list | difference([ansible_eth1.ipv4.address]) %} типа так

Name- Автор вопроса
Отделение Bereke Bank Ор
{% for ip in groups[keepalived_group_name] | map('...

прям как почувствовал, что я про keepalived =)

у меня как-то так hosts: " {%- set ips = [] %} {%- for host in groups[keepalived_group] %} {{- ips.append(dict(id=loop.index, host=host, ip=hostvars[host]['ansible_host'])) }} {%- endfor %} {{- ips -}}" keepalived_peer_ips: "{{ hosts | rejectattr('host', 'equalto', inventory_hostname ) |map(attribute='ip') | list }}"

Name- Автор вопроса
Name- Автор вопроса
Valiy Vvv
у меня как-то так hosts: " {%- set ips = [] %}...

а можно чуть по подробнее? keepalived_peer_ips - это описанная переменная в defaults,например, а hosts это где ты это описал?

Name
а можно чуть по подробнее? keepalived_peer_ips - э...

host это элемент списка. там любое слово можешь использовать

Name
а можно чуть по подробнее? keepalived_peer_ips - э...

А нет я не прав. Не так посмотрел) ждём автора

Name
а можно чуть по подробнее? keepalived_peer_ips - э...

у меня hosts это универсальная перменная, описана она в group_vars и дальше используется для разных ролей. Получается часть логики храниться в group_vars, наверно это не супер круто и в приниципе можно и в роль унести.

Name- Автор вопроса
Valiy Vvv
у меня hosts это универсальная перменная, описана ...

а keepalived_peer_ips ты уже непосредственно в jinja2 например вставляешь и получаешь все ip кроме хоста хозяина так сказать. верно?

Name
а keepalived_peer_ips ты уже непосредственно в jin...

да, в шаблоне это выглядит вот так unicast_peer { {{ keepalived_peer_ips | join('\n ') }} }

Name- Автор вопроса
Name- Автор вопроса
Name
а это не спроста ('\n ') ?=)

что красиво было) каждый адрес на новой строке и с отступами

Name- Автор вопроса
Valiy Vvv
что красиво было) каждый адрес на новой строке и с...

понял...я просто с 2мя хостами тестирую и не заметил эффекта =)

Name
понял...я просто с 2мя хостами тестирую и не замет...

у меня ещё приоритет для каждого сервера считается с помощью этого массива hosts keepalived_priority_max: 100 keepalived_priority: "{{ keepalived_priority_max - hosts | selectattr('host', 'equalto', inventory_hostname)| map(attribute='id') |first}}"

Name- Автор вопроса
Valiy Vvv
у меня ещё приоритет для каждого сервера считается...

так я уже не стал усложнять, просто в host_vars для каждого хоста свою конкретику задал (state, priority и тд)

Name
так я уже не стал усложнять, просто в host_vars дл...

я делал так, что развернуть можно было указав только группу и vip. Кластеры keepalived на потоке))

Name- Автор вопроса
Valiy Vvv
я делал так, что развернуть можно было указав толь...

а еще вопросик - у вас selinux откл в работе? а то при вкдюченном selinux падает на ошибку keepalived =(

Name- Автор вопроса
Valiy Vvv
да, отключен

а подскажи пжлст в конфиге keepalived.conf у вас unicast_src_ip указан?

Name- Автор вопроса

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
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
Карта сайта