Вы всё ещё устанавливаете ПО на Linux сервере вручную? Тогда эта статья для вас.
Идея, которой я здесь поделюсь, не имеет отношения к Jenkins и подобным системам. Целевая аудитория: обычный пользователь, не программист или системный администратор.
У идеи уже есть реализация, но главная ценность - именно идея.

Как было раньше
До появления современных ИИ обычно человеку, которому нужно было установить какое-то ПО на сервере, приходилось читать документацию по установке этого ПО. Хорошо, если разработчик сделал bash скрипт, но всё равно было много ручной работы:
Создание базы данных с пользователем;
Установка GUI для этой базы данных (PHPMyAdmin или подобных);
Создание конфигурации для Nginx (Apache);
Создание SSL сертификата;
и т.д.
Как теперь
Но теперь у нас есть ИИ.
https://github.com/andchir/install_scripts - Весь код в этом репозитории написал ИИ. Это набор bash скриптов для установки различного ПО на Ubuntu сервере. Эти скрипты можно запускать вручную на сервере, а можно даже не заходить на сервер и использовать API или готовое GUI. Для ИИ написан список требований, которым должны удовлетворять скрипты:
Список требований для bash скриптов
bash скрипт должен быть адаптирован под Ubuntu 24.04.
bash скрипт должен сам создавать пользователя installer_user и входить под ним.
Имя домена или другие необходимые данные должны задаваться через аргументы при запуске скрипта.
Скрипт должен создавать SSL сертификат для домена через certbot.
Не должно быть никаких дополнительных вопросов и подтверждений.
При необходимости клонируется git репозиторий, а если он уже есть в домашней директории, то нужно загрузить обновления (pull).
Перед pull всегда делать
git checkout ., чтобы отменить локальные изменения.Скрипты должны поддерживать идемпотентность.
Все действия должны иметь проверку, например, если нужно создать базу данных, то нужно проверить существует ли она, если существует, пропустить. Скрипт может быть запущен несколько раз, при повторном запуске должен обновляться код, но не база данных и т.п.
Если systemd service уже существует, нужно запустить restart для него.
Если используется python и директория виртуального окружения уже существует, не нужно создавать новую, а нужно только обновить зависимости в этом виртуальном окружении.
В конфигурации nginx всегда указывать, чтобы были созданы отдельные log файлы для домена.
Если SSL сертификат уже создан, не нужно его пересоздавать и обновлять конфигурацию nginx.
Все пароли, которые создает скрипт, должны быть безопасными. Нужно писать их в отчёте.
Информация при установке должна быть красиво оформлена с использованием цветов для текста.
Благодаря этим требованиям, скрипты полностью автономны (автоматизировано даже создание паролей) и их можно запускать повторно (идемпотентность).
Теперь, если вам нужно установить какое-то ПО на сервере, вы можете просто попросить ИИ написать bash скрипт, приложив список требований к нему.
Пример запуска скрипта на сервере вручную:
curl -fsSL -o- https://raw.githubusercontent.com/andchir/install_scripts/refs/heads/main/scripts/pocketbase.sh | bash -s -- example.comВ конце вы получите полный отчёт с паролями и т.п.
Как выглядит графический интерфейс:

Проект реализован очень быстро с помощью hive-mind от @Konard, за что ему отдельное спасибо!
