Pavel
Chef — система управления конфигурациями, написанная на Ruby и Erlang, но вот это убивает конечно
Dmitrii
?
nvkv
не на эрланге
Pavel
использую его около трех лет — отличная штука
Вот хороший отзыв о Chef :) Может стоит его попробовать
Dmitrii
Надо попросить моего менеджера нанять джуниора, и заставить его переписать плейбки на шеф
nvkv
Вот хороший отзыв о Chef :) Может стоит его попробовать
Мне начальник отдела системзов Wix.com его нахваливал очень
nvkv
но он старый волосатый рубист :)
g
Да оба хороши для определенных задач.
Anonymous
Chef — система управления конфигурациями, написанная на Ruby и Erlang, но вот это убивает конечно
не очень важно, на чем написан chef (на самом деле все интересные части в ruby)
Anonymous
cookbooks пишутся, в общем-то, на руби
Pavel
Существуют же рубифобы
Pavel
И тому есть причина - поддерживать все это небольшой командой весьма нелегко, на всех нагрузка большая, надо держать в голове много деталей.
Sergey
ну, когда система написана на языке, который знаешь, можно посмотреть исходники или что-то пофиксить, это плюс
Dmitrii
Ага, а когда ты зассаленный пхпшнег, то нет пути.
Sergey
написать phansible =)
Pavel
Когда проект на одном языке, управление конфигурацией на втором, провижининг софта на третьем, пару сервисов на четвертом
nvkv
ну, когда система написана на языке, который знаешь, можно посмотреть исходники или что-то пофиксить, это плюс
не, ну камон, как правило чтобы "что-то пофиксить" язык знать не обязательно, можно Learn in Y minutes прочитать и пойти фиксить почти на любом языке
Pavel
А кто говорит про пофиксить? Команда должна полностью с нуля все эти решения спроектировать и разработать и поддерживать постоянно
nvkv
вот подобное от языка почти никогда не зависит
nvkv
скорее всего если ты пофиксил и сломалось — ты плохо знаешь софтину, которую полез фиксить
Sergey
знать софтину и знать как она написана - это все-таки разные вещи
Pavel
в случае с chef знать софтину подразумевает знать ruby
Pavel
с ansible тоже есть такая штука, основы питона знать необходимо. Но в примитивных случаях можно обойтись только yml
nvkv
А можно primerchique?
nvkv
где надо петон там знать?
Anonymous
Ну для ансибла, мне кажется, знать пайтон необходимо
Anonymous
Без написания своих модулей явно не обойдется
Pavel
где надо петон там знать?
Там словари и коллекции по питоновским правилам, шаблонизатор питонячий
Pavel
работа со строками питонная
Sergey
где надо петон там знать?
я недавно ансибл использую, но уже понимаю, что местами приходится в исходниках смотреть как работает конкретный модуль, потому что в доке описание слишком поверхностное
Pavel
Да, стектрейсы питонистические вываливаются
nvkv
ну шаблонизатор там jinja2
nvkv
то, что он похож на петон ещё не значит, что он петон
nvkv
стектрейсы да, принимается
Pavel
Впрочем питон это еще куда ни шло, язык достаточно очевидный, к нему легко привыкнуть.
Pavel
Но как бы когда надо прыгать python <-> ruby <-> php <-> java <-> js <-> go то моск немного закипает. А в девопсах сейчас в тренде инструменты на всех языках
Dmitrii
Лохи не пройдут
Maxim
все таки читать доки полезно.. некоторые таски не работают в dry-run режиме, убил 2 часа на это - думал может проблемы с интерпретатором в контейнере, или еще что
Maxim
Причем дебаг ансибла недостаточно понятны - стандартная отписка, что надо использовать кавычки для передачи переменных
Maxim
Интерпретатор в контейнере?
Контейнер живёт минуту, его CI поднимает, выполняет плейбук и тут же удаляет
Oleksandr
Типа плейбуки тестируются?
Maxim
Типа плейбуки тестируются?
Там деплой продукта идёт, перед этим делается --check
Maxim
Так вот если выполнить что то через command или shell и к этому сделать register, чтобы потом. Превратить в переменную, то при --check - будет ошибки
Maxim
Добрый день всем!
Aleksey
понедельник же
Aleksey
чоты
Maxim
подскажите как бы мне в файлик на хосте засунуть текст {{ DB_USER }} ? Я с помощью модуля replace в файле меняю строки, он все время хочет прочитать как переменную
Sergei
может кто-нибудь подсказать, как в темплейте сделать примерно такую конструкцию: {% for host in groups.all %} {{ host }} {{ hostvars.['{{ host }}'] }} {% endfor %}
Maxim
в такой таске - name: create variables in sql file replace: dest={{ item }} regexp='TO\sauth;' replace="TO {{DB_USER}};" with_items: - "{{ service_root }}/{{ service_migration }}"
Dmitry
а хотя нет, я невнимательно прочел. у тебя это вообще не впишется, если закомментировать :)
Maxim
{% raw %}{{ DB_USER }}{% endraw %} вот так
спасибо! именно то, что нужно!
Dmitry
в принципе, думаю, что и вот так сработает '{{' DB_USER '}}' (ничем другим вокруг необорачивать, то есть НЕ окружать двойными кавычками например " '{{' DB_USER '}}' " ^^^ нет
Dmitry
я экранировал каждую скобочку, типа так "\{\{ DB_USER \}\}", но тогда он прям со слешами и вставляет
думаю, что и вот тут слэши повставлялись как раз из-за ненужных и лишних двойных
Dmitry
но вообще в jinja2 железобетонно {% raw %} отключает все мозги и шпарит как есть, так что можно помнить просто его, не запоминая все эти экранирования
Dmitry
для порядка http://jinja.pocoo.org/docs/dev/templates/#escaping
Denis
replace="TO \"{{DB_USER}}\";"
Denis
Как-то так по идее должно работать.
Maxim
мне больше с raw понравился вариант - простой и понятный )
Sergei
Ну как-то так и сделай {{ hostvars[host] }}
Спасибо, уже разобрался, действительно, просто убрал лишние скобки
Dmitrii
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 57: ordinal not in range(128)
Dmitrii
Внезапно начало падать с таким сообщением. Может кто сталкивался?
Aleksandr
на 2.2 обновился?
Dmitrii
Нет
nvkv
2.2 вышел что ли?
Dmitrii
Бля, косячный ансибл
Dmitrii
Он обосрался на — в файле.
Bogdan (SirEdvin)
Потому что python 2.7
Sergey
и хорошо бы полностью трейс увидеть