Aleksey
Мне не понравились зависимости в ансибле
Aleksey
Не интуитивно
Roman
Какие именно зависимости?
Aleksey
При установке графаны на хост если зависимость у нее от постгреса то надо в зависимостях писать ещё и delagate_to иначе постнрес будет поставлен на тот же хост что и графана.
Aleksey
Но в делегейт то нельзя прописать group["postgres"]
Aleksey
Только делать with
Aleksey
Короче не оч
Sergey
При установке графаны на хост если зависимость у нее от постгреса то надо в зависимостях писать ещё и delagate_to иначе постнрес будет поставлен на тот же хост что и графана.
Это зависимость уровня настроек, которая не может - да и не должна! - сама разрешаться. На мой взгляд, нужно тупо сделать группу отдельную, которая и будет целью для настроек графаны.
Aleksey
Это как?
Aleksey
Вот вариант 4 хоста. 2 плстгреса 2 графины
Sergey
да. и дальше?
Sergey
ты хочешь пару графан поднять с независимыми постгресами?
Aleksey
Грпфана зависит от постгреса
Aleksey
Я хочу графаны что бы смотрели на отказоустойчивый постгрес
Aleksey
При этом собрать это через зависимость
Sergey
Я хочу графаны что бы смотрели на отказоустойчивый постгрес
вооооооот! это не "она зависит", это ты решаешь.
Pavel
Так откуда ansible узнает, куда postgres заливать? Не проще две отдельные роли, объедидённые плейбуком сделать
Sergey
Следовательно, для графан будет просто какой-то ендпойнт постгресовый, причём - один.
Aleksey
Да будет один.
Aleksey
Но поможет ли в этом зависимости -- нет
Aleksey
Что отстой
Pavel
Зависимость это что-то более простое - подтянуть вебсервер, настроить SSL, firewall
Sergey
Нет, потому что отказоустойчивость ты конструируешь сам.
Aleksey
А если фаер надо настроить не на этом же хосте?
Aleksey
Снова делегейт
Pavel
Это как? Мы развернули графану на одной ноде, а порты на другой открываем?
Aleksey
Да. На балансере
Aleksey
Или на фронте
Aleksey
В итоге роли получаются сильно мелкие на которые можно в мультисерверной среде опираться
Pavel
Тут опять получится зависимость частного от общего. Т.е. мы не знаем на какой ноде собственно нужно порт открыть, а запихивать это в роль - не очень
Aleksey
А условную common лучше оформить как pre_tasks: import_tasks: common/main.yml
Nklya
Или как базовую роль
Aleksey
А зависимость от common роли вообще ад. Ибо тогда прогон будет на каждую зависимую роль.
Aleksey
Хак инклюд when: common_complete is defined
Aleksey
Тоже так се
Aleksey
В плей?
Nklya
Я не сильно читал эту ветку, но разговор был про общий фрагмент трех ролей
Aleksey
Короче имеет смысл почитать для погружения в тему osa и kubespray
Nklya
Если будут три роли, то импорт тасок в каждой, и таски соответственно тоже. Будет копипаст
Pavel
А зависимость от common роли вообще ад. Ибо тогда прогон будет на каждую зависимую роль.
накрыть тегами. Всё-таки зависимость - это для того чтобы вместо одной большой роли сделать несколько маленьких, которые дергаются по цепочке
Tadeusz
Нет конечно)
Tadeusz
У меня и 6-8 тасок есть
Pavel
ru.wikipedia.org/wiki/Магическое_число_семь_плюс-минус_два - британские учёные уже выяснили)
Tadeusz
Ansible не человек)
Pavel
Так поддерживать таски не ansible будет. Хотя при использовании best practices надо ещё догадаться в meta заглянуть. Отличие зависимостей от импорта в том что зависимость дважды не будет исполняться, если случайно заинклюдится дважды. http://docs.ansible.com/ansible/latest/playbooks_reuse_roles.html#role-dependencies
Ievgen
Так поддерживать таски не ansible будет. Хотя при использовании best practices надо ещё догадаться в meta заглянуть. Отличие зависимостей от импорта в том что зависимость дважды не будет исполняться, если случайно заинклюдится дважды. http://docs.ansible.com/ansible/latest/playbooks_reuse_roles.html#role-dependencies
КО какбэ намекает, что через мета роль выполняется строго ДО родителя и если надо допустим иметь роль которая нужет ) инклюдится как мета, то в других местах там где надо выполнить в определенный момент, можно сделать include_role
Ievgen
таким образом, я бы запихнул общее в отдельную роль, и дергал ее как угодно, через мета депенды или прямым инклюдом
Ievgen
ну и да тэги
Pavel
А include_role делает защиту от двойного include?
Pavel
Когда я игрался с зависимостями, в Ansible такой роскоши как include_role по-моему не было)
Ievgen
но если ты руками инклюдишь роль, то ты наверное об этом знаешь
Ievgen
это недавно появилось
Ievgen
я имею ввиду include_role
Pavel
Проблемы начнутся когда ты инклюдишь роль, которая тоже инклюдит роль)
Ievgen
вот тут можно играться с депендами
Ievgen
потому что include_role мета не обрабатывает помоему
Pavel
Хотя вот официальная документация уверяет что allow_duplicates можно поставить в no и пользоваться как депенденсами
Ievgen
это же опция для meta нет?
Pavel
Ну как бы вот: http://docs.ansible.com/ansible/latest/include_role_module.html
Pavel
Написано что влияет на опцию meta. Но без примера непонятно что она делает
Ievgen
а ну значит и там
Pavel
Я так понимаю что по умолчанию форсится инклюд роли, но при желании можно включить защиту от двойного инклюда и тогда второй раз, если уже роль была вызвана с теми же параметрами, не выполнится. С другими параметрами - выполнится всё равно
Pavel
В этом прелесть зависимостей собственно была
Ievgen
а почему была, она и есть
Ievgen
)
GithubReleases
https://github.com/ansible/ansible/releases/v2.4.3.0-0.6.rc3 was tagged
Artem
Как вы смотрите релизнлутсы к версии? Коммиты смотреть это ужасно
✙ DarkKC ✙
Как вы смотрите релизнлутсы к версии? Коммиты смотреть это ужасно
прям вот тоже спросить хотел. https://github.com/ansible/ansible/blob/devel/CHANGELOG.md тут токмо по 2.4.1 есть, и 2.5 TBD
✙ DarkKC ✙
Таки по существу, беглое гугление не показывает внятного чейнджлога… Он есть, или надо пырить коммиты?
Aleksey
нормального ченджлога для rc парни не пишут
Aleksey
только для релизов
Artem
Для релизов минорных тоже кажется.
Anatoly
минорные ченчлоги
Andrey
Таки по существу, беглое гугление не показывает внятного чейнджлога… Он есть, или надо пырить коммиты?
будет когда выйдет релиз. пишут почему-то только на будущий мажорный.
Andrey
--- - hosts: all become: yes gather_facts: False tasks: - name: "raw | update apt package cache before installing anything" raw: apt -q -y update - name: "raw | install python2.7-minimal" raw: apt -q -y install python-minimal - hosts: all become: yes roles: - { role: base-packages-install }
Andrey
чо он ругается на то что хочет питон?
manefesto
ругань то где ?