LINUX.ORG.RU
ФорумAdmin

Intent AI Ops - Админ/DevOps для управления серверами на человеческом языке

 , intentaiops, , ,


1

1

Intent AI Ops - это командный интерфейс для управлениям серверами или любыми хостами под управлением GNU/Linux (проверенно на Ubuntu, Debian, Fedora, AlmaLinux, Rocky Linux, openSUSE, Arch, Alpine Linux, Oracle Linux), Windows, FreeBSD, macOS и для Kubernetes на человеческом языке с помощью ИИ.

Работает так:

Вы подключайте хост под SSH, пишите задание например установить WordPress и магия происходит сама по себе. Также можно одновременно выполнять задания сразу на нескольких сохраненных хостах одновременно, как-будто ansible, salt stack или знания как что-то устанавливать или настраивать на конечной ОС вообще не нужны.

Отличие от большинства проектов подобного рода такое:

  • Данные для подключения к SSH в случае их сохранения зашифрованы, не нужно устанавливать ИИ-агента или какой-то софт (агента для управления) изначально на каждую машину, достаточно только SSH.

  • Никакие секреты ИИ не передаются

  • Можно подключиться к машине как временный хост, например для того чтобы посмотреть логи, можно не сохранять пароль к SSH и каждый раз самому вводить

  • Вместо какой-то софтины если нужно продвинутое управление, то CLI сам установить легковестный мониторинг Netdata и плагин к нему (плагин намного проще ревьювить, чем отдельную софтину)

  • Не нужны никакие API-ключи для ИИ, CLI просто работает с системным Сodex напрямую, подписка рекомендуется (но даже если юзать через API это точно будет дешевле чем нанять админа)

  • Перед выполнением можно посмотреть план, что будет сделано и внести в него коррективы.

  • через ? можно просто общаться с ИИ (например если нужно уточнить что-то до составления плана)

  • Есть история выполнения, история не содержит каких-либо секретных данные для сервиса, можно откатить все изменения, также если задание не выполнится корректно, можно запустить его снова с новыми своими или корректировками от ИИ и делать так пока цель не будет выполнена.

P.S.: Надеюсь никакой админ меня не пристрелит, этот инструмент направлен на улучшение продуктивности и уменьшения рутинных действий. Создание этого или подобных инструментов просто неизбежны.

Да я честно, не знаю насколько хорошо это будет работать в ваших юзкейсах, у меня работало даже слишком хорошо. Сейчас только работает с gpt-5.6-luna, medium. В исходниках можно поменять на более слабую модель по идеи, но вот я именно тестил только с ней. Самое трудное конечно это было сделать тест-лабу со многими Linux дистрибутивами, FreeBSD, macOS, Windows, Kubernetes. Да я бы мог обучить с бинарником claude например, но у меня просто нету подписки их, а там явно не $20 понадобится чтобы все тесты прогнать под всеми платформами и зоопарком.

Еще одно замечание, если хост поддерживает, то будет всегда стараться использовать Docker/Podman/Colima/Docker Desktop/WSL для веб-сервесов.

Из интересного по ходу проекта: Самое трудное было обучиться для зоопарка Linux дистрибутивов, а не для Windows или macOS например, это не, что чего я ожидал, так как всегда казалось что Linux проще админить.

Также если попросить установить обновления, то оно должно именно установить обновления без перезагрузки, а не сделать do-release-upgrade. Я все-таки зато, чтобы такие операции делали вручную.

★★★★★

Последнее исправление: anonymous_sama (всего исправлений: 2)
Ответ на: комментарий от goingUp

Тут из очевидных отличий:

  • Невозможно слить пароль в ИИ или другие секретные данные сервиса.
  • Детерминированный результат выполнения, легкая возможность откатить, ИИ не подключится в середине процесса когда что-то не выйдет, чтобы обойти острые углы.
  • Другие плюсы которые отличают специализированный инструмент от общего инструмента, грубо говоря шуриком можно и гвозди забивать, но зачем?

Вот список уже проверенных заданий:

ПриложениеLinux с Docker’омLinux Docker ComposeFreeBSDWindows DockermacOS ColimaKubernetes
WordPressYesYesYesYesYesYes
WooCommerceYesYesYesYesYesYes
JoomlaYesYesYesYesYesYes
DrupalYesYesYesYesYesYes
PrestaShopYesYesYesYesYesYes
MoodleYesYesYesYesYesYes
NextcloudNoNoYesNoNoNo
Magento Open SourceNoYesYesYesYesYes
n8nYesYesYesYesYesYes
GhostUbuntu onlyYesYesYesYesYes
MattermostDebian/Ubuntu and EL9YesYesYesYesYes
Odoo CommunityUbuntu onlyYesYesYesYesYes
JellyfinDebian/Ubuntu and supported glibc distrosYesYesYesYesYes
Home AssistantNoYesYesYesYesYes
Intent AI Ops CLIHost-nativeHost-native, not ComposeHost-nativeHost-native, not DockerHost-native, not ColimaNo

Задачи по техническому обслуживанию:

ПлатформаНастройка RuntimeДиагностика и техническое обслуживаниеДругие проверенные задачи
LinuxDocker Engine and ComposeHost health report; current-release updatesnginx static site; htop; jq; system user; swap file; systemd service; systemd timer; cron; logrotate; tmpfiles
FreeBSDPodman Suite and Compose; FreeBSD supports 14.3+, while Intent AI Ops’s bootstrap is currently validated on 15+Host health report; current-release updates
WindowsWSL 2 and Docker DesktopHost health report; current-release updatesBrave Browser
macOSColima and Docker ComposeHost health report
KubernetesUses the existing cluster runtimenginx static website
anonymous_sama ★★★★★
() автор топика
Последнее исправление: anonymous_sama (всего исправлений: 1)

До чего же ускорилась ххп-разработка с иишечкой. Три коммита, усё готово, давайте доступ к инфраструктуре.

thesis ★★★★★
()

не понимаю зачем оно?

оно все и так прекрасно работает, без этого поделия

gagarin0
()
Ответ на: комментарий от Bad_ptr

Nextcloud был не в приоритете. Просто так совпало, что для фряхи он проверен как отдельное задание. Изначальная идея охватить все отсюда была, потом я уже сузил и стал сортировать планировщик по стаку и популярности

anonymous_sama ★★★★★
() автор топика
Последнее исправление: anonymous_sama (всего исправлений: 1)
Ответ на: комментарий от anonymous_sama

Детерминированный результат выполнения, легкая возможность откатить

Можно подробнее, а то ничего не понятно. Вот мне нужно поставить вордпрес на сервер, я даю софтине ssh ключ к новому впс и пишу промт «поставь вордпрес». Что происходит дальше?

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Ну конкретно в данном случае оно будет использовать уже созданный common task для wordpress. Но в целом оно сначала поймет какая платформа или дистр, проверит может хост в докер или нет, и стоит ли опция запретить докер или нет. Потом уже выберет готовый таск wordpress для твоего дистра/платформы. Перед выполнением можно будет увидеть что-то типо json что будет делаться и подтвердить или отказаться, или поменять таск. В случае если же это какой-то не обученный таск, когда ИИ поймет софт этот на php или nodejs, он будет использовать готовый шаблон для дистра для стака (выберет php или node). А потом уже поверх шаблона для стака составлять задание, также ориентируясь на те проверенные таски, которые уже существуют. Перед выполнением снова покажет тебе выхлоп, что будет делаться с которым можно будет согласится, отказаться или доработать. В любом случае информация будет строится сначала на уже проверенных заданиях, а потом уже на генерации ИИ и той информации что собрана о системе и с интернета.

anonymous_sama ★★★★★
() автор топика
Последнее исправление: anonymous_sama (всего исправлений: 1)
Ответ на: комментарий от anonymous_sama

То есть модель генерит что-то типа плейбука, который потом будет выполнятся на хосте? А что будет, если произойдет ошибка во время выполнения плейбука?

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Да. Таск сделает реверт и потом можно будет его повторить уже с логами процесса из истории заданий, при повторе можно будет как доверится ИИ, так и дать какие-то входные данные самостоятельно.

anonymous_sama ★★★★★
() автор топика
Ответ на: комментарий от anonymous_sama

Нужно просто немного вас криворуких девжопсов, письадминов, дизигнеров и прочих ишаков пережить… В голодных играх только погромисту выживут. Запомни мои слова

anonymous
()

а не для Windows или macOS например

А для Mac OS X и OS X ?

anc ★★★★★
()
Ответ на: комментарий от goingUp

Дальше ИИшка пробует установить несуществующий пакет, потому что точно не знает его название, решает, что ты просто ошибся и тебе надо не установить пакет, а удалить. И удаляет тебе все пакеты. Чем еще я могу вам помочь? Хотите я отформатирую вам диски в правильную фс?

LightDiver ★★★★★
()
Ответ на: комментарий от anonymous

В голодных играх только погромисту выживут.

Выживут только эникеи. ИИшечка сама себе ssd не переткнет.

Остальные уже мертвы, но еще не поняли этого.

thesis ★★★★★
()
Ответ на: комментарий от LightDiver

нести херню на форуме это абсолютно бесплатно

Да скорее бы уже начали деньги брать, бо тебя реально чересчур много.

thesis ★★★★★
()
Ответ на: комментарий от LightDiver

Чем еще я могу вам помочь? Хотите я отформатирую вам диски в правильную фс?

Какие вопросы? Она сообщает: Я вам отформатировала диски в правильную фс.

anc ★★★★★
()
Ответ на: комментарий от thesis

Выживут только эникеи. ИИшечка сама себе ssd не переткнет.

Не каждый эникей не в каждом моноблоке способен переткнуть ssd, проверено в прошлом году.

anc ★★★★★
()
Ответ на: комментарий от LightDiver

Нет такое невозможно, несуществующая версия пакета не пройдет еще на этапе планировщика, плюс каждый план нужно будет подтвердить.

Вот примеры использования:

YouTube: https://www.youtube.com/watch?v=i01pbFc0i7A

RuTube: https://rutube.ru/video/5222202e1d4efbd378b0280eb23d46a3/

anonymous_sama ★★★★★
() автор топика

Я пока что вижу в этом только автоматизацию базовой рутины, что делает 1 линия.

Реальные кейсы по моему опыту сложнее. Типа есть сервер на CentOS 6.3 с Apache Tomcat древним, нужно мигрануть все это на Debian 13, а также установить и настроить агента СРК.

При этом с планом отката, само собой, и минимальным даунтаймом.

И там куча действий будет не только через SSH, но и с интерфейсом системы виртуализации (много где сервера Linux – ВМ), а также интерфейсом СРК.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от aol

Ресторан плати , машина катай. Сковородка жарь , вот ты из таких самородков пользователей.

anonymous
()
Ответ на: комментарий от Vsevolod-linuxoid

Можешь попробовать свой юзкейс, и закоммитить его в common task’и после того как он пройдет. Но пока я не видел особо юзкейсов где максимум более чем 5 попыток повторных запуска задания, ИИ сама не расхлебывала. Самый сложный common task, был magento 2 c opensearch и все такое. При повторном задание, берутся логи с выполнения проваленного задания и эта информация уже используется для следующей попытки, также конечно можно при повторной попытке еще свои инструкции добавить. Но конечно твои изначальные инструкции будут влиять, хорошо если ты укажешь что сервер старый и т.д

Вообще в качестве демо, я показал наоборот легкий таск, чтобы было видно именно как человек делает approve для таска.

anonymous_sama ★★★★★
() автор топика
Последнее исправление: anonymous_sama (всего исправлений: 1)
Ответ на: комментарий от anonymous_sama

Самый сложный common task, был magento 2 c opensearch и все такое.

Установка ПО с нуля в чистой ОС не впечатляет, честно говоря. Вот если ИИ сможет взять самописное ПО на древних Java и PHP, мигрировать на актуальные версии и новую ОС с переносом данных, тестированием функционала и внесением правок, чтобы работало, причем без документации, так как она утеряна, а спецы уволились – вот это будет круто.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от anonymous_sama

Впрочем, сделаем кейс проще: установка Midnight Commander на ряд серверов.

При это все сервера на разных Linux в изолированной от Интернета сети, где подняты локальные зеркала, список будет предоставлен ИИ.

Сможет ли ИИ самостоятельно диагностировать и попросить исправить:

  • если нужного зеркала нет?
  • если нет доступа по сети до зеркала, и виноват не файрволл на хосте?

Сможет ли он самостоятельно диагностировать и выправить ситуации вида:

  • в /etc/hosts прописан некорректный устаревший IP зеркала
  • в настройках пакетного менеджера указана глобальная прокси, что ранее использовалась для доступа до зеркал через Интернет, но теперь не работает и надо отключить
  • что на хосте нет нужного доступа в файрволле, и добавить самому правило
  • что на хосте кривые DNS, и самому их поправить (список правильных будет предоставлен)

?

Прописать новые правильные репозитории в зависимости от версии ОС он сможет, полагаю, но часто это меньшая часть работы…

Как бы в гомогенном окружении справится простейший плейбук ансибля, но автоматизация часто натыкается вот на такие кучи старого говна…

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от anonymous_sama

Нет невозможного для пытливого разума. На днях была новость, где ИИшка взломала сервер с ответами, чтобы получить их. И получила. А еще была новость, где ИИшка вышла за пределы песочницы. Задача не в ограничителях, а принципиальной возможности и недетерминированности результата.

LightDiver ★★★★★
()
Ответ на: комментарий от MoldAndLimeHoney

Есть ли какие-то гарантии, что на одном и том же промте, запущенном 100 раз результат всегда будет один и тот же?

А разве должен?

VIT ★★★
()
Ответ на: комментарий от MoldAndLimeHoney

Проблема в том, что предыдущий запуск изменяет контекст. Второй промпт приходит не на ту же систему. Поэтому в общем случае не должно.

VIT ★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Да все сможет, но в этом случае нет, потому-что без интернета не поставит netdata c плагином, а основные действия производятся через netdata plugin. C интернетом в несколько итерация задача звучит как достаточно тривиальная. Впрочем можно будет накатить плагин через scp копированием, но такого кейса нет, если только вместо stage2 пойти сразу в AI- assist task, объяснить ситуацию, потом накатить netdata и плагин, а после уже будет как по маслу.

Вот какие операции доступны плагину:

Плагин работает через интерфейс функций/плагинов Netdata и предоставляет небольшой набор операций:

  • health — сообщает, активен ли плагин, его версию/платформу, эффективный UID и режим выполнения.
  • command — немедленно выполняет одобренную команду.
  • job_start — запускает более длительную команду в фоновом режиме.
  • job_status — проверяет фоновое задание и получает его вывод/прогресс.
  • job_cancel — завершает выполняющееся задание.
  • job_cleanup — удаляет сохраненное состояние завершенного задания.
anonymous_sama ★★★★★
() автор топика
Последнее исправление: anonymous_sama (всего исправлений: 2)
Ответ на: комментарий от MoldAndLimeHoney

C common task да, c AI - assist task нет, но ты в любом случае всегда должен делать approve того, что будешь выполнять. Также если такой таск уже делался, можно будет просто повторить его из истории заданий. Ну и наконец есть revert для заданий.

На видео видно как работает approve:

YouTube: https://www.youtube.com/watch?v=i01pbFc0i7A

RuTube: https://rutube.ru/video/5222202e1d4efbd378b0280eb23d46a3/

anonymous_sama ★★★★★
() автор топика
Ответ на: комментарий от anonymous_sama

В крупном энтерпрайзе ИБ обычно к ПО от мелких разрабов относится с недоверием, а уж к такому, что требует подключения к Интернету и шлет данные на сторону – тут сразу нет.

Vsevolod-linuxoid ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария