Как стать автором
Поиск
Написать публикацию
Обновить

Как я рефакторила Ansible-плейбуки с помощью нейросети. Плюсы и минусы ChatGPT

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров9K
Всего голосов 26: ↑25 и ↓1+30
Комментарии6

Комментарии 6

ChatGPT подходит для генерации чего-то с нуля, а не исправления мелких ошибок. Ошибки проще по старинке загуглить и получить ответ от "кожаных мешков" на stackoverflow.

Описываем ChatGPT задачу, он генерирует playbook, просим его исправить крупные проблемы, а по мелким проблемам гуглим сами. Так будет намного быстрее.

tl;dr Вместо решения проблемы за 5 минут, мы потратили полчаса на объяснения задачи для ЧатГПТ

Соглашусь с предыдущими комментаторами - ChatGPT для таких задач мне кажется утомительным, быстрее самому. Вот написать "рыбу" для последующей вдумчивой (!) доработки - это он замечательно справляется.

Но вот Copilot при написании плейбуков - просто спасение. Ansible многословен, куча бойлерплейта, вынужденных повторов, - всё это Copilot очень бодро предлагает дозаполнить, кучу времени экономит. Не без глюков иногда, ну так голову в добавок к AI-помощнику никто не отменял :)

Ох, блин...

Про ансибл можно говорить очень долго, как и про ЧатГПТ, но, как сказал комментатор выше, с "AI" Вы тут потратили намного больше времени, нежели разобрались сами. Заодно и поняли бы большинство из ругательств линтера и формат его вывода.

У нас Ansible обернут в Линтер

Обёрнут, только что там поставлено на игнор - автор не говорит. Например jinja spacing вывалился бы в месте disks_amount|string.

Момент с

> roles/cops/checklist/tasks/hardware/disks.yaml:166 Task/Handler: Check disks amount package-latest: Package installs should not use latest.

я не понял, ибо тут автор явно пропустил truncated output, ибо ошибки линтер пишет ПЕРЕД указанием места возникновения, а не после

Кстати, обновите у себя линтер что ли - no-jinja-nesting правило уже полтора года как убрано из линтера.

Кстати, обновите у себя линтер что ли

На меня по очереди матерятся три ansible линтера. Один в Visual Studio Code подсвечивает, что ему не нравится. Второй - пакет ansible-lint, установленный в Ubuntu, который я изредка запускаю вручную. Третий запускается через Github Actions, когда я туда пушу новую версию своих плейбуков. Так вот - все они, заразы, ругаются на разное! То ли разные версии, то ли вообще разные линтеры - честно говоря, руки разобраться с этим цирком никак не доходят и вряд ли когда-то дойдут, проще просто игнорировать избыточные проявления перфекционизма :)

Какой-то откровенный детский сад в примерах, если честно. Начиная с откровенных антипаттернов вроде

  when:
    - "'device_roles_ss' in group_names"

или ignore_errors, и заканчивая непониманием базовых сообщений ansible-lint, при том, что линтер в полном выводе показывает даже ссылки на сами правила, на которых он триггернулся. Ну, и вообще... Текст ошибки "truthy value should be one of [false, true]" что, реально никак не понять без помощи нейросети? Серьезно?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий