Alexander
Рассказываешь, почему Ansible-плохо.
То есть обсуждать реализацию - запрещено?
Sergey
Обсуждать - разрешено. Осуждать без PR - бессмысленно, а потому - запрещено.
Sergey
То, что ты называешь "переменными", таковыми быть перестаёт, если заглянуть в исходники. Все переменные "запекаются"/"схлопываются" в словарь hostvars перед запуском плейбука. Таковы детали реализации.
Alexander
То, что ты называешь "переменными", таковыми быть перестаёт, если заглянуть в исходники. Все переменные "запекаются"/"схлопываются" в словарь hostvars перед запуском плейбука. Таковы детали реализации.
Это уже на днях мы обсуждали выше, когда я группы в статическом инвентори настраивал. Сегодняшним шоком оказалось, что не только группы, но и хост тоже по имени "схлопывается".
Alexander
А вообще, я бы уже два часа назад об этом забыл (потому что разобрался и решил задачу), если бы не заносчивый фанбоизм, с которым меня (как это принято, любимейший ad hominem) здесь не атаковали.
Sergey
Понимаешь, я вижу твои сообщения вот так: "ой, это работает не так, как я ожидаю, так что это - говно". А я такой думаю - "хм, а я не ожидаю, а читаю доки, потом делаю по ним, и работает по ним, что-то странно как-то...."
Alexander
То, что я ожидаю - это не я просто так себе в голове придумал. Это то, как в том числе и в других местах в ansible работает. Странно ожидать что нигде ничего не будет повторяться. И модули если посмотреть - по одному лекалу сделаны (где это возможно).
Alexander
А если бы доки в ansible всегда были замечательные и чёткие - огромного количества вопросов по весьма базовым вещам и здесь и на stackoverflow бы не было.
George
А если бы доки в ansible всегда были замечательные и чёткие - огромного количества вопросов по весьма базовым вещам и здесь и на stackoverflow бы не было.
Не только. Вопросы на СО не потому что дока ансибла такая, а потому что на СО любят задавать вопросы, начиная от идиотских и очевидных
Alexander
Если бы на SO, который является Q&A ресурсом, не любили бы задавать вопросы, это было бы внезапно)
Alexander
Поэтому он и так популярен.
Timur
И никто тебя не атакует, тебе просто написали, что ты хочешь странного, т.к. задаёшь вопросы из серии «почему не работает конструкция, которая не должна и не может работать согласно документации?»
Timur
Если ты напишешь суть задачи, которая перед тобой стоит, тебе с радостью помогут ее решить без придумывания странностей
Timur
То, что я ожидаю - это не я просто так себе в голове придумал. Это то, как в том числе и в других местах в ansible работает. Странно ожидать что нигде ничего не будет повторяться. И модули если посмотреть - по одному лекалу сделаны (где это возможно).
Те конструкции, что ты описываешь (разные значения одной и той же переменной в рамках хоста в одном плее), в ансибле не работают нигде. И нигде там нет чего-то подобного. И быть не может, если читать документацию и немножко смотреть в код. Так что - да, это просто ты в голове так себе придумал
zEvilz
есть вот такое: {{ var.results | map(attribute='stdout') | join(',') }} как исключить из map() элементы, где нет атрибута stdout?
zEvilz
сейчас получаю ошибку The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'stdout' если один и более элементов пропущено в шаге, где регистрируется var
Anton
завел багу https://github.com/kubernetes-sigs/kubespray/issues/5124
Alex
> Хотя, в galaxy полно треша. а может кто посоветовать пару, так сказать, образцовых ролей из галакси для "изучения" ?
George
мне нравятся
George
1. geerlingguy - он же писатель книжки про ансибл. Но вкусовщина 2. cloudalchemy
George
но нарекания есть ко всем
Отделение Bereke Bank
Отделение Bereke Bank
точнее как
George
посмотри еще официальные - для эластика, nginx
Alex
Можете на наши роли посмотреть
с удовольствием, осталось только узнать что то за "наши" роли :)
George
У гирлинга тоже треш часто
я поэтому и говорю, что с осторожностью
George
Тимур, видимо, стесняется дать ссылочку
George
))))
Alex
спасибо
Отделение Bereke Bank
https://galaxy.ansible.com/lean_delivery
о збс. На досуге гляну как вы решили проблему в MySQL роли, когда на свежей инсталяции он генерит рандомный пароль 😡
Отделение Bereke Bank
Ато у меня это решено башсиблом
Max
Timur
он все еще лабает?
Да, вносит изменения в свои роли
George
еще вопрос
George
кто как делает
George
стандартный убунту - устанавливает пакет и сразу его стартует
George
следовательно, есть момент, когда nginx, mysql | anything else запущены с неверными настройками
Tadeusz
бугага
George
в центоси с этом попроще - там надо руками все стартовать )
Timur
следовательно, есть момент, когда nginx, mysql | anything else запущены с неверными настройками
А в чем проблема? Шаги с выставлением верных настроек и рестарт по хендлеру
Tadeusz
???
он хочет услышать "не юзай убунту"
George
типикал флоу 1. апт инсталл мускуль 2. здесь_где_то сам пакетный менеджер инсталлит дефолтные конфиги и стартует сервис 3. мы льем новый конфиг, устанавливаем пасс, 4. дергаем хендлер и рестартуем
George
между 2 и 4 у нас неконсистентное состояние системы
George
это ГОВНО
George
Сейчас кину обход
я догадываюсь, что ты флаги при установке выставляешь, да?
Timur
это ГОВНО
Нужное состояние достигается по завершении выполнения плейбука
George
япона мать
George
🤦‍♂️🤦‍♂️🤦‍♂️🤦‍♂️🤦‍♂️🤦‍♂️
Timur
В чем проблема того, что в ходе выполнения там какое-то не то состояние?
George
т.е. то что система может быть скомпрометирована в момент прогона плейбука (ибо сервис с дефолтами голой жопой в инет) или если он свалился с ошибкой - никого не волнует
George
ну, ок
George
тоже мне инженеры-разработчики
George
коллеги, поясните мою мысль @tgadiev
Tadeusz
тоже мне инженеры-разработчики
ну есть же RUNLEVEL=1 даже в модуле
Timur
И если можно, то больше деталей и сути, и поменьше эмоций
George
@aabramovich @ag0n1k вы же меня поняли?
checkdiff
я догадываюсь, что ты флаги при установке выставляешь, да?
Да: apt: name: "{{ __packages }}" state: present environment: RUNLEVEL: 1