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