Timur
Условно: группы - это теги
Timur
На каждый хост можно навешать много разных тегов
Timur
Причем теги могут быть вложенными
Timur
И к каждому тегу можно прицепить любой набор переменных, которые, в соответствии с тегами, будут присвоены хосту
Timur
Т.е. при выполнении плея каждый хост будет иметь некий набор тегов и набор переменных с соответствующими значениями
Timur
Откуда все это было получено и из каких источников - совершенно неважно, и логика на это завязана быть не должна
Vladislav 👻
я что-то не до конца понял
Timur
Что именно?
Vladislav 👻
есть два инвентори dev и prod, в каждом создаю группу dev и prod, закидываю в эти группы хосты, в групп_варс объявляю общую(?) переменную со значением "dev"/"prod" соответственно?
Timur
В dev должны быть dev хосты
Timur
В проде - prod
Vladislav 👻
ну да, "соответственно" пропустил там
Timur
А, ок
Vladislav 👻
логика верна?
Timur
Примерно. Только если вас интересует принадлежность хоста к группе, то специальная переменная не нужна
Timur
Членство хоста в группах и так можно проверить через список groups
Vladislav 👻
это работает для двух групп и проверкой руками, а если множество, то проще сразу прописать
Vladislav 👻
сейчас протестирую такую логику
Timur
Это работает для любого количества групп
Timur
Приведите пример таска, который вызывает у вас проблемы с логикой принадлежности хостов к группе
Vladislav 👻
протестировал, работает, проблема только в том, что все хосты мне надо запихнуть в одну эту группу...
Vladislav 👻
Приведите пример таска, который вызывает у вас проблемы с логикой принадлежности хостов к группе
ну я получаю все группы, в которых состоит хост, толку мне от этого?
Denis
протестировал, работает, проблема только в том, что все хосты мне надо запихнуть в одну эту группу...
Если есть несколько больших групп, можно включить в мегагруппу их, будет проще и компактнее
Vladislav 👻
Denis
Возможно это хороший повод прошерстить инвентори и разобрать все хосты по функциональным группам
Timur
Я так и не могу понять суть задачи пока
Vladislav 👻
В смысле, в хост вписать, в группу забыть
Timur
Как можно забыть группу, если все дочерние группы навешиваются автоматом?
Timur
Опять же - в чем именно суть задачи?
Vladislav 👻
Сейчас подумаю, как сделать
Denis
Группа в инвентори, в которую нужно просто добавлять все хосты, действительно может быть источником ошибки.
Timur
Сейчас подумаю, как сделать
Вы можете подробнее задачу описать?
Timur
У меня впечатление, что это очередные упражнения со стаканом
Denis
Проблема, вроде, в том, что нужно для хостов из одного инвентори писать в конфиг прометея одну строчку, для хостов из другого - другую.
Vladislav 👻
вроде понял как сделать, просто я в группу dev/prod закинул хосты руками, а сейчас поменяю на нужные группы мониторинга и все
Timur
Ну, просто в одном инвентаре делается группа для хостов с одним названием, а в другом - другая группа. И в эти группы засовывается одна переменная, но с разными значениями
Timur
Хосты в группу можно включать как угодно. Хоть по одному, хоть группами, хоть все сразу
Timur
Главное, что нужно понять, это то, что при выполнении плея инвентарь всегда один
Timur
И совершенно неважно, из каких источников он сформирован
Александр
Как сравнить список файлов на двух хостах и получить список несуществующих на одном из них?
Александр
Собственно получил список с помощью find, но там каждый элемент словарь.
Timur
А как исходная задача звучит?
Timur
Какое состояние вам нужно получить на целевых хостах?
Александр
А как исходная задача звучит?
Нужно скопировать с одного удалённого узла файлы на другой удалённый узел. Причём только те, которых ещё нет на получателе.
Timur
Ну так копируйте
Timur
Зачем для этого списки сравнивать?
Timur
модуль copy с флагом force: no
Timur
Будет копировать только те файлы, которых нет на таргете
Александр
Но как я их буду копировать, если они удалённые?
Vladislav 👻
нее, не взлетит
Vladislav 👻
я про инвентори свой...
Александр
По отношению к центральному узлу получатель и источник оба удалённые.
Александр
Мне нужно будет использовать ansible как промежуточный.
Vladislav 👻
Например, есть host-dev и host-prod, оба находятся в одной группе service, группа service включается в соответствующую группу своего инвентори prod/dev, при объединении оба хоста в обоих группах dev/prod
Ilia
По отношению к центральному узлу получатель и источник оба удалённые.
В данном контексте, возможно, вам поможет делегирование задач относительно хоста: https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html#delegation. Предлагаю ознакомиться
Timur
По отношению к центральному узлу получатель и источник оба удалённые.
Как вариант - synchronize. Он работает с любого хоста на любой
Андрей
Sudo зло. Используй su. Долго обьяснять почему но в этом контексте только su
не получилось и с become_metod: su. + Пробовал и в shell запихнуть shell: sudo su - root -c "<command>"но если скопировать то, что я пихаю в шелл и на таргет машине запустить, то все работает.
George
set -x env echo "OLOLO! I am started" pwd whoami
George
может станет яснее
Vladislav 👻
А что вам нужно-то?
все тоже самое
xfs_repair
Приветствую
xfs_repair
"msg": "Failed to connect to the host via ssh: ssh_exchange_identification: Connection closed by remote host",
xfs_repair
может кто знает из за чего
xfs_repair
установил ансибл , в хостс прописал одного клиента , пытаюсь проверить , запускаю ansible all -m ping
Anonymous
@AlexShmel будет жить. Поприветствуем!
xfs_repair
в hosts файле: [ipaclients] ansible_host= 10.20..... ansible_user= test ansible_ssh_private_key_file=test.pem
AlexShmel🐝
Гайз. подскажите как в ансибл плейбук передать аргументом айпишник хоста на котором нужно выполнять действия ? так что бы без создания файла hosts и прочей фигни. просто аргументом в консоль или может в сам yml файл както записать ?
AlexShmel🐝
мне нужно в одну длинную строку для одного хоста выполнить один плейбук
AlexShmel🐝
без создания левых файлов типа хостс или инвентарь
AlexShmel🐝
каким аргументом собсно можно передать айпишник ? (даже не hostname)