Alex
Один плейбук с разными плеями
а как быть со сложными HA окружениями. Например когда у нас идет настройка slave ноды, затем нужно выполнить один таск на мастере и вернуться снова на слейв и так раз 10-15. Размазывать вызов отдного таска в отдельный плей?
Alexander
Тут как раз про это речь )
Владимир
А есть какой нибудь каталог готовых плейбуков?
Sergey
Sergey
Sergey
Без вот этого вот, прости, дрочения вприсядку.
Владимир
Alexander
В плейбуке надо постоянно скакать либо с мастера на слейв, либо не скакать. В зависимости от того, запущен он на мастере или слейве
Alexander
Сам плейбук может выполняться как на мастере, так и на слейве
Sergey
Alex
Sergey
Сам плейбук должен выполнятсья на всех узлах, только есть такая конструкция - пересечение групп.
Sergey
Вот же - https://docs.ansible.com/ansible/latest/user_guide/intro_patterns.html
Sergey
Например:
- hosts: full_group:&masters
tasks:
- name: Master task
.....
- hosts: full_group:&slave_tasks
tasks:
- name: Slave task
Alexander
Еще раз - все задачи могут выполняться как на мастере, так и на слейве
A
Докатился. Стою на светофоре, перед зелёным загорается " - - - ". Первая мысль: "yaml-светофор..."
Sergey
Определись уже.
Alexander
Т.е. если плейбук выполняется на мастере, он выполняется на мастере. Если он выполняется на слейве, часть задач должна выполняться на мастере
Alexander
Опыт работы с кубами есть? )
Sergey
Опыт использования булевой алгебры есть? )
Alexander
Да, при этом их либо нужно делегировать на мастер, либо никуда не нужно делегировать
Sergey
Да не нужно делегировать, просто эту часть нужно принудительно исполнять на мастере, вот и всё. Сразу отвалится делегирование.
Sergey
Часть - где попало, часть - на мастере.
Sergey
https://tproger.ru/explain/xyproblem/
Alexander
Я про это ничего не спрашивал. Я спрашивал про изменение синтакса в ансибле. С кубовыми нодами там все итак без проблем работает
Sergey
include имеет право работать как попало - оно было в 2.5 вроде объявлено устаревшим с вводом include_tasks + import_tasks
Alexander
Да, у меня везде используется include_tasks
Alexander
Только в двух местах, где нужно передавать переменные, был include, потому что раньше работало так
Alex
Alexander
Сейчас синтакс поменяли и с include_tasks тоже заработало, исправили косяк
Rad
https://www.redhat.com/en/services/training/do007-ansible-essentials-simplicity-automation-technical-overview тут Redhat выложил бесплатный курс по Ansible
Alexander
Андрей
Sergey
Ну так, если что
Alexander
Этот конкретный хост может быть разным в разных случаях
Alexander
В зависимости от того, с каким кластером я работаю
Sergey
Угу. Разные кластеры - разные группы. Ты же не был на обсуждении объектной модели, да?
Alexander
Разные кластеры в разных группах, да. Мастеры этих разных кластеров в разных группах
Alexander
Зачем мне городить огород и создавать еще какую-то группу с одним мастером для каждого кластера, при том, что мне потом все равно ее придется динамически в плейбук пихать?
Alexander
Группы тоже разные
Sergey
1 кластер = 1 группа верхнего уровня. В неё вложены две другие - группа с мастером (может быть из одного хоста, кстати), и группа со слейвами.
Группы верхнего уровня входят в all.
Отделение Bereke Bank
Группы тоже разные
В общем посмотри тут https://github.com/erzh1906/kubernetes-playbook
Timur
Alexander
Там итак есть группы верхнего уровня для кластеров. При этом есть мультимастер кластеры, и кластеры с одним мастером. И есть еще отдельная роль у нод, которая может быть назначена куда угодно
Timur
Alexander
Хоть на любой из этих мастеров, хоть на отдельно стоящий слейв
Alexander
И группами это уже решено
Timur
Любая группировка хостов по любому признаку решается группами
Timur
И группами это уже решено
Если группами решено, то никакая дополнительная логика определения наличия хоста в группе не нужна
Sergey
^^^ +++
Alexander
Логика должна определять, находимся мы на мастер ноде или на слейв ноде
Отделение Bereke Bank
Sergey
Alexander
В общем, это бессмысленный флейм
Alexander
Не зная броду, не лезь в воду, как говорится. Люди просто не работали с достаточно сложными ha системами из разных кубовых кластеров, поэтому им непонятно
Timur
Timur
Alex
Alex
куча плеев
Alexander
Это нормально, в моем проекте в плейбуках верхнего уровня примерно также
manefesto
Возник у меня тут странный кейс
Есть куча инстансов, все они в приватной сети, если кому интересно, то это scaleway
Хочу назначить только на 1 хост public ip и через него сделать провижен всех нод. Я знаю можно на этот хост закинуть плейбук и оттуда сделать деплой, но меня интересует именно такой извращенный способ
Alexander
Мне не нужны там плеи, нужно отдельные действия в плейбуке делегейтить динамически
Alexander
Писать кучу плеев по одной таске это идиотизм, для этого есть delegate_to
manefesto
нашел кажись https://blog.scottlowe.org/2015/12/24/running-ansible-through-ssh-bastion-host/
Alex
manefesto
я думаю не в бастионе суть, а в proxy_command
Отделение Bereke Bank
Alex
так это и есть использование бастиона - промежучтоного сервера
manefesto
тьфу, я думал это какая то тулза
manefesto
=)
manefesto
Сорян
Prostotak
Привет, может, кто подскажет как создать сразу несколько папок в linux с помощью playbook?
Prostotak
типа /home/user/test1/test2/test3