Возник у меня такой вопрос пару недель назад, потому что не хотелось сразу заморачиваться с k8s, а облака не подходят для моей архитектуры.
Спасибо Роману — он сразу поделился своим подходом и скриптами, и с его же разрешения буду публиковать их здесь. Это доработанные мною его скрипты и мои собственные, их я дописал, вдохновившись скриптами Ромы.
Я сам сейчас юзаю CentOS 9 Stream, поэтому писал всё под него, но если шарите, несложно будет адаптировать под любую другую *nix. Для CentOS 8 кажется тоже должно подойти сразу, без правок 🤔 После выполнения скриптов VPS будет настроен согласно этому мануалу, также будет установлен и запущен Docker.
В общем, схема такая:
1️⃣ Арендуем VPS (про shared хостинг не пишу, т.к. там часто бывают ограничения по настройке системы)
2️⃣ Генерируем публичный и приватный ключ. Если вы на Mac/Linux, то OpenSSH, если Windows — то PuTTYgen. Размер можно сделать 2048, остальное — как хотите.
Если юзаете PuTTYgen, то после генерации и сохранения ключа нужно из поля «Public key for pasting into OpenSSH» скопировать всё, что там есть, и вставить в новый файл - этот файл надо будет указывать на следующем шаге.
3️⃣ Запускаем у себя на ПК скрипт для создания юзера, из-под которого будем всё устанавливать и запускать (для безопасности):
./setup_auth.sh -h <host> -u <username> -p <password> -k <keyfile>
Где:
<host> — IP-адрес вашего VPS<username> — имя пользователя, которого мы создадим<password> — его пароль<keyfile> — это путь до файла с публичным ключомПри запуске скрипт попросит ввести пароль root-пользователя для подключения. С винды можно через git bash запускать.
Когда он завершится, можно будет подключаться к VPS под новым юзером и с приватным ключом, без ввода пароля. Скрипт добавит этого пользователя в sudoers, Но не запретит вход по паролю. Если нужно, можно это сделать уже потом.
4️⃣ Логинимся в VPS обязательно под новым пользователем, загружаем туда скрипт setup_centos9.sh для дальнейшей настройки. Да, может стоило заморочиться и сделать всё в одном скрипте, но я с ходу не разобрался, как запустить все команды через SSH с sudo 😅
5️⃣ Запускаем скрипт (понадобится ввести пароль нового пользователя):
sudo bash ./setup_centos9.sh
Он установит firewalld, удалит ненужные пакеты и установит докер.
Всё, теперь ваш VPS настроен. В следующей части напишу про изи-запуск приложений на нём❤️
P.S. Если есть критика, пожелания, предложения по скриптам, пишите 🙌