winebottle: Как я оживлял старый сервер с помощью ИИ
Как знают некоторые коллеги, я с самообучательными целями потихоньку пишу игру
Выше даже подкаст про это лежит
Ну, как пишу
Пишу инструкции в курсоре
потом нервничаю и иногда радуюсь, когда что-то у него получается
На удивление увлекательно
Особенно учитывая, что игры я люблю, но никогда их не писал и любая тривиальная ерунда - для меня новый опыт
Решил сегодняшней историей поделиться
Из-за моей профдеформации игра разрослась до 10 контейнеров. Ну да, ЭТО Ж ВАМ НЕ КАКАЯ-ТО ПОДЕЛКА НА КОЛЕНКЕ.
От такого великолепия макбук-ветеран начал приунывать, впадать в маразм и временами выдавать приколы с OOM в рандомных местах.
Понятно, надо куда-то переносить. И! Ровно в этот момент в рабочем чате коллега (Дима спасибо) написал "отдам какой-то непонятный старый комп за бутылку вина"
Так у меня дома появился хост наречённый winebottle
Серверной убунте не очень важно, насколько он свежий :)
Не без проблем, конечно. Во-первых, он зависал после первой же перезагрузки с чёрным экраном. Без post-писков, просто мёртвый. Диагностировали и разъясняли с chatgpt 5.1:
оказалось, дефолтные настройки оверклокинга не совместимы с воткнутой в комп памятью. Понял он это анализируя фотки железок и биоса на экране.
Сложно предположить, дошёл бы я до этого сам? Не знаю.
Сhatgpt дошёл и сказал где чего поменять кроме этого.
Жить эта железяка должна в кладовке рядом с роутером кладовке и под это есть патч-корд. А настраивать её мне хотелось в удобном кресле за столом. А вот для этого у меня длинного кабеля нет.
При этом я упёрся и не захотел тащить его настраивать в коридоре. Достал из той самой коробки старенький usb-wifi!
Это ископаемое разумеется ubuntu признавать не захотела.
Задача один: понять что нужны какие-то драйвера и где-то их найти. Задача два: скачать и установить их без интернета.
ChatGPT сказал что и откуда качать, анализируя телефонографии моего взаимодействия с логами dmesg и остальными.
Драйвер скачал, но выясняется, что теперь не хватает несколько маааленьких пакетов, типа gcc. У которых конечно тоже есть зависимости. К сожалению, apt install привередливый и ему тоже нужен интернет.
Можно в принципе ручками качать на макбуке на флешку по одному, выяснять чего им не хватает и бегать с флешкой туда-сюда.
Спойлер - пакетов потребовалось примерно штук 30, я думал будет больше.
Не настолько я упрямый. Кстати chatgpt тоже отговаривал, говорит блин, чувак, ну найди ты себе интернет нормальный на полчаса где-нибудь
NYET
cursor -> agent mode -> gemini 3 pro -> "мне нужен .deb пакет build-essential для amd64 и все его зависимости в папке debs"
Оказалось есть довольно изящный способ: докером с убунтой скачивать их тем же apt в отдельную папку, используя его же встроенное разрешение зависимостей
Тут признаюсь сам такое не придумал бы, пожалуй
Окей, поставил драйвера, но wifi не коннектится
ChatGPT продолжает уговаривать купить свисток на современном чипсете, ха-ха, но ещё каких-то полчаса-час разбора фотографий экрана и ввода команд от электронного сатрапа, и мы переключаем netplan с WPA3 на только WPA2 и всё наконец-то взлетает, время прыгает на десять лет вперёд, пакеты апдейтятся.
Последние штрихи - поднимаю ssh, закидываю публичный ключик, всё, монитор, клавиатура и мышка больше не нужны.
Только cursor.
Вот тебе, говорю, ssh доступ.
Настрой мне сам там wireguard, чтоб я не только из дома мог туда стучаться (понятия не имею как это делать)
А ещё - вот скрипт деплоя - распили его на инфраструктурное и локальное, инфраструктурное перенеси на отдельную машинку и конфиги сам придумай там какие потребуются.
А ещё не сломай продакшн (да, он есть в виде арендованного vds, хотя и гипотетический - там кончились диски и надо с этим тоже что-то придумывать)
И - справился
Далеко не всегда это бывает так вот успешно, но конкретно тут - консилиум из chatgpt 5.1, claude sonnet 4.5 и gemini 3 прям сиял
Сделал бы я это сам? Сделал бы конечно
Получил бы от этого какое-то удовольствие? Нет
Сделал бы это так же быстро? Тоже нет, вообще не моя область знаний
А тут и результат и удовольствие от процесса.