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

Как было раньше
До появления современных ИИ обычно человеку, которому нужно было установить какое-то ПО на сервере, приходилось читать документацию по установке этого ПО. Хорошо, если разработчик сделал bash скрипт, но всё равно было много ручной работы:
Установка веб-сервера и сервера базы данных.
Создание базы данных с пользователем;
Установка GUI для этой базы данных (PHPMyAdmin или подобных);
Создание конфигурации для веб-сервера;
Создание 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-сервис уже существует, необходимо выполнить для него команду restart.
Если используется Python и директория виртуального окружения уже существует, не следует создавать новую, достаточно обновить зависимости в существующем виртуальном окружении.
При необходимости создания базы данных для конкретного ПО никогда не следует использовать root-пароль и root-пользователя. Необходимо создать нового пользователя с новым паролем и правами доступа только к одной базе данных.
В конфигурации Nginx необходимо всегда указывать создание отдельных лог-файлов для домена.
Если SSL-сертификат уже создан, не следует его пересоздавать и обновлять конфигурацию Nginx.
Все пароли, которые создаёт скрипт, должны быть безопасными и записываться в отчёт.
Информация при установке должна быть красиво оформлена с использованием цветов для текста.
Благодаря этим требованиям, скрипты полностью автономны (автоматизировано даже создание безопасных паролей) и их можно запускать повторно (идемпотентность).
Теперь, если вам нужно установить какое-то ПО на сервере (читайте ниже конкретные примеры), вы можете просто попросить ИИ написать bash-скрипт, приложив список требований к нему. ИИ уже пишут такие скрипты очень хорошо - проверено!
Пример запуска скрипта на сервере вручную:
curl -fsSL -o- https://raw.githubusercontent.com/andchir/install_scripts/refs/heads/main/scripts/pocketbase.sh | bash -s -- example.comВ конце вы получите полный отчёт с паролями и т.п.
Как выглядит графический интерфейс:

Скачать: https://github.com/andchir/install_scripts/releases
Для каких случаев подходит этот метод
(этот раздел добавлен позже, после ада в комментариях)
Для простого пользователя, который хочет сэкономить и скрипт уже есть в списке. Ниже есть пример с WordPress.
В самом начале статьи я писал, что целевая аудитория - не программисты и системные администраторы, но это не совсем так. Сам я себя считаю про��раммистом, но я тоже использую этот метод. Его вполне можно использовать для создания микросервисной архитектуры приложения. К примеру, вам нужен отдельный сервер с базой данных для какого-то одного участка вашего приложения. Вы просто нажимаете кнопку и база данных с GUI установлена и настроена. Или, к примеру, вам нужен свой API с переводчиком - устанавливаете LibreTranslate через скрипт. У вас будет только один сервер для одной функции.
Или вам нужно просто установить n8n на отдельном VDS. Зачем делать это вручную?
Проект реализован очень быстро с помощью hive-mind от @Konard, за что ему отдельное спасибо!
Обновление 1
В комментариях сплошные критики, но большинство из них, не могут нормально обосновать свою точку зрения, а некоторые, похоже, даже не смогли осилить текст такой маленькой статьи.
Ещё раз попробую на конкретном примере объяснить в чём состоит идея:
Предположим, мне нужно установить WordPress на VDS сервер, делаю я это периодически и я даже не программист, не системный администратор, я спец по WordPress. Какие у меня есть пути:
1. Установить всё вручную (nginx, mysql, php, ssl, wordpress).
2. Использовать WordPress через wordpress.com и иметь ограничения и немалые платежи.
3. Адепты Ansible предлагают мне установить Ansible и изучить как он работает. По-моему это странный путь. Для профессионального использования Ansible подходит очень хорошо, но я не хочу быть профессионалом в этой области, я просто человек, который работает с WordPress (как пример).
4. Этот способ я предлагаю. Просто дай задачу ИИ написать тебе bash-скрипт, который всё сделает за тебя, приложив список требований, который позволит написать этот скрипт качественно. Потом остается только зайти на сервер и использовать одну команду.
Чем плох 4-й способ комментаторы конкретно не могут ответить, но, похоже, их очень триггерит упоминание ИИ. Я не предлагаю использовать этот способ в профессиональных целях, в статье обозначена целевая аудитория (точнее случаи, в которых можно использовать).
Обновление 2
Добавил здесь бинарники GUI для Linux и Windows:
https://github.com/andchir/install_scripts/releases
Обновление 3
Эта статья выявила новую болезнь - ИИ-фобия. Люди даже не смотрят, не пробуют результат, но осуждают его.
Сравнение подходов здесь (делал ИИ):
https://github.com/andchir/install_scripts/blob/main/comparison_ru.md
Обновление 4
Один комментатор даже предложил мне самому обосновать его "фи" :)
Цитата:
Вы можете ответить на какие компромиссы по шел ИИ при установки ПО? Надежен ли сгенерированный пароль?
В чём проблема самостоятельно пойти и посмотреть код - загадка.
После дополнительной доработки вернул статью из черновиков.
