В нашей команде мы часто сталкиваемся с необходимостью развертывания новых серверов с одинаковой конфигурацией: nginx, docker, docker-compose и certbot. nginx используем для проксирования докера и назначения человеческого DNS. Для того чтобы не повторяться мы, мы разработали набор скриптов, которые позволяют быстро и легко устанавливать и настраивать эти компоненты на серверах с операционной системой Ubuntu 22 и выше. В этой статье мы поделимся этими скриптами и расскажем, как они помогают сократить время и избежать ошибок при создании нового окружения.
Скрипты
Репозиторий со скриптами доступен на GitHub: prepare-server. В него входят три основных скрипта:
install_docker.sh
— для установки docker.io и docker-compose.install_nginx.sh
— для установки nginx и certbot.add_proxy.sh
— для настройки nginx в качестве прокси для docker-контейнеров.
Установка Docker и Docker Compose
Скрипт install_docker.sh
выполняет установку docker.io и docker-compose, а также добавляет текущего пользователя в группу docker, чтобы можно было запускать docker-команды без sudo
.
Инструкция по использованию:
-
Клонируйте репозиторий:
git clone https://github.com/CloudLab-Studio/prepare-server.git cd prepare-server
-
Сделайте скрипт исполняемым:
chmod +x install_docker.sh
-
Запустите скрипт:
./install_docker.sh
Установка Nginx и Certbot
Скрипт install_nginx.sh
устанавливает nginx, certbot и настраивает файервол для разрешения http и https трафика.
Инструкция по использованию:
-
Сделайте скрипт исполняемым:
chmod +x install_nginx.sh
-
Запустите скрипт с указанием желаемой версии nginx:
./install_nginx.sh [stable|mainline]
Настройка Nginx в качестве прокси
Скрипт add_proxy.sh
настраивает конфигурацию прокси для nginx и получает SSL-сертификат с помощью certbot.
Инструкция по использованию:
-
Сделайте скрипт исполняемым:
chmod +x add_proxy.sh
-
Запустите скрипт и следуйте подсказкам:
./add_proxy.sh
-
Вам будет предложено ввести:
Доменное имя.
Номер порта для проксирования.
Адрес электронной почты для получения SSL-сертификата.
Вместо заключения
Безопасность: Скрипт не настраивает безопасность, вам нужно озаботиться об этом самим. Часто хостеры выдают VDS со всеми открытыми портами наружу и ваш сервис будет доступен как по доменному имени, так и по порту.
Почему скрипто только под Ubuntu: Я потратил много ночей на изучение дистрибутивов 20 лет назад и первый человеческий диутрибутив, который у меня завелся Ubuntu - с ним и живем для большинства проектов.
Если у вас есть похожие скрипты для быстрого поднятия сервисов на новых серверах, делитесь и контрибьютьте, велкам.
Комментарии (7)
Kahelman
24.06.2024 10:04+1Если вы под Ubuntu/ Debian то смотрите уж в сторону создания пакетов. Чтобы все поднималось из своего репозитарий командой apt install :)
Докер убрав то у вас откуда качается? Из заблокированного/разблокированного dickerhub?
WondeRu Автор
24.06.2024 10:04Через apt install вы поднимаете старые версии по-умолчанию. Обратите внимание, что nginx здесь ставится тоже через apt-get install, но предварительно проводятся манипуляции со ссылками на репозитории.
Desert-Eagle
Статья с 3-мя ссылками на скрипты и командой как запустить скрипт. Очень познавательно, спасибо.
WondeRu Автор
Подскажите, как должна была выглядеть статья с 3 скриптами? Самый простой вариант: можно было её не писать, но уже больше 20 человек добавили ее в закладки, видимо, кому-то она оказалась полезной.