Марат
и причем тут raw? казалось бы
Sergey
Самый элегантный вариант - генерировать скобки с помощью той же Jinja2.
Alexander 🐕
Sergey
https://groups.google.com/forum/#!topic/ansible-project/zqE8ylfHaIw
Sergey
Ниет.
Alexander 🐕
А unsafe работает, спасибо!
Sergey
you're welcome 😊
Alexander 🐕
https://groups.google.com/forum/#!topic/ansible-project/zqE8ylfHaIw
Еееее, так вот он какой, северный олень! Я пробовал "{{ '{{' }}....." - и вот оно так себе
Timur
Timur
{% raw %}...{% endraw %}
Джинджи в плейбуке быть не должно
Dmitry
Я то ли его готовить не умею, то мы слишком хорошо пишем плейбуки, но недавно руками запущенный ansible-lint нашёл только несколько использований чего-то там sudo вместо become, и те в плейбуках, подключённых из ansible galaxy. Видимо, это ответ "иногда"
Ivan
Связка YamlLint + AnsibleLint + ansibple-playbook --syntax-check вообще обязательна
Ivan
другое дело, что-то из их "находок" можно осознанно игнорить
Vladislav 👻
Джинджи в плейбуке быть не должно
она там есть по определению ввиде присваения из одной переменной в другую...
Dmitry
Связка YamlLint + AnsibleLint + ansibple-playbook --syntax-check вообще обязательна
Вот кстати очень печалит, что для vscode и atom никто не запилил расширение для yamllint. Только sublimetext умеет. Хоть javascript учи
Ждун
в саблайме питон
Timur
vscode-ansible-linter
Dmitry
ansible-lint там есть, кстати
Ага. Но yamllint это скорее про стайлинг, а не про валидность (хотя может и про валидность тоже, не помню), так что оба полезны)
Timur
Если юзать молекулу как фреймворк для тестов ролей и плейбук, то там в сценариях сразу и yamllint и ansible-lint включены по дефолту
Dmitry
Да вот что-то пока удобнее прям во время написания ролей видеть все придирки к коду, а не искать потом недочёты по отчётам из консоли или CI
Nklya
А что религия мешает запускать молекулу локально?
Александр
АЧИЛАВЕКМОЛЕКУЛА
Timur
Делаете molecule lint -s <имя_сценария>
Timur
И смотрите все линты, что она прогоняет
Timur
К сожалению, в молекулу встроен не самый новый линт
Dmitry
Я понимаю что всё можно запускать локально и отдельно, а ещё можно встроить в CI. Мне правда нужно рассказывать что есть люди, которым удобнее видеть ошибки прямо в редакторе на нужных строках, а не парсить глазами вывод разных консольных утилит и идти править?)
Dmitry
Там и для ансибла есть модуль
Dmitry
https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml
Ага, но он только схему проверяет. Если файл невалидный или переменная задублирована - подскажет. yamllint (который py-yamllint) ещё умеет заставлять держать общий стиль. Ну там количество отптупов something: - item: 123 или something: - item: 123 бить по рукам за yes/no вместо true/false. Правила можно отключать/включать/модифицировать и конфиг линтера хранить в корне репозитория. Что-то вроде rubocop, но для yaml. И вот этого вроде в этом расширении нет, или я слепой
Dmitry
Хотя там есть formatter. Наверное тоже сойдёт. Но всё-таки yamllint гибче
Victor
Вот кстати по отступам хотел спросить. Это просто вкусовщина или есть какой-то тайный смысл сколько отступов делать в списках? Одинаково ли хорошо разные приложения воспринимают ямл с разными отступами?
Timur
Судя по ответам, многие даже не знают о существовании ansible-lint. Может, есть смысл статью запилить с описанием возможностей и кратким юзергайдом?
Павел П.
дадада
Victor
Судя по ответам, многие даже не знают о существовании ansible-lint. Может, есть смысл статью запилить с описанием возможностей и кратким юзергайдом?
Не уверен, я вот написал что не знал. Вот теперь знаю. Единственный кейс которые я вижу это натравливать его в CI. Иначе, мне кажется, все будут забивать в т.ч. и я сам. А случаи с настроением "а давайте все сделаем красиво" бывают не часто.
Александр
релиз из голых сырцов? а нельзя в rpm упаковать? :D
Egor
Мне больше кажется, что это вопрос лично для каждого - есть ли у человека время писать и тестировать свой код.
Nklya
Мне больше кажется, что это вопрос лично для каждого - есть ли у человека время писать и тестировать свой код.
Есть просто человеки которые любят гавнякать и обмазываться. И ноют типа это у ансибл линт неправильные правила
Timur
Ну, там в старых версиях действительно дурацкие правила были местами
Timur
И в 4 релизе линт не все файлы с тасками подхватывал, особенно при динамических инклудах
Timur
Все роли, которые загружаются в Galaxy, автоматически проходят проверку через Yamllint и Ansible-lint
Timur
Насколько код соответствует Best Practice и правильному стилю, можно судить по показателю Score роли
Timur
Правда, там есть простор для читерства. Некоторые одаренные товарищи любят обвешивать свои таски тегами вида skip_ansible_lint
MRY
всем привет. При использовании команды - copy я должен указать обсолютный путь до файла на ansible хосте в виде /home/user/ansible/roles/test/files/file.txt или же просто ./file.txt ????
MRY
я же написал
MRY
ansible/roles/rolename/files/***
Timur
Если в каталоге files роли, то можно полный путь не указывать
MRY
./filename.txt достаточно ?
Timur
./ - лишние
Timur
Просто filename.txt
Dmitry
кто-то заморачивался нацеливанием ролей по переменным на хостах?
Dmitry
чтобы в зависимости от host_vars ехали роли
Timur
Timur
Можно подробнее задачу описать?
Victor
Хотел заморочиться. Но чет както оочень мутно получается.
Dmitry
Можно подробнее задачу описать?
я хочу из энсибла солт сделать )
Dmitry
короче, задача такая - цепляю на хост список сервисов в инвентори
Victor
я хочу из энсибла солт сделать )
Не проще использовать солт?
Dmitry
а в зависимости от этого едут роли
Dmitry
Не проще использовать солт?
вообще да, но в данный момент нет
Timur
Не проще плейбуку сделать нормальную?
Victor
а в зависимости от этого едут роли
Добавляешь хост в нужные группы. Пускаешь все плейбуки по этому хосту
Timur
Разбив роли по группам
Dmitry
Nklya
Это ансибл вей, ифы в ролях плохо пахнут
Dmitry
блин, мне чет хочется один плейбук и один инвентори
Dmitry
а руление через хостс варс
Dmitry
это странно?
Dmitry
ролей много, да
Nklya
Я пытался тут недавно натянуть на ансибл шеф идеологию, получается странновато
Timur
это странно?
Нет, не странно