Быстро разворачиваем docker, nginx и certbot

4703bb2ac9bbefb91f52bac67f820295.png

В нашей команде мы часто сталкиваемся с необходимостью развертывания новых серверов с одинаковой конфигурацией: nginx, docker, docker-compose и certbot. nginx используем для проксирования докера и назначения человеческого DNS. Для того чтобы не повторяться мы, мы разработали набор скриптов, которые позволяют быстро и легко устанавливать и настраивать эти компоненты на серверах с операционной системой Ubuntu 22 и выше. В этой статье мы поделимся этими скриптами и расскажем, как они помогают сократить время и избежать ошибок при создании нового окружения.

Скрипты

Репозиторий со скриптами доступен на GitHub: prepare-server. В него входят три основных скрипта:

  1. install_docker.sh — для установки docker.io и docker-compose.

  2. install_nginx.sh — для установки nginx и certbot.

  3. add_proxy.sh — для настройки nginx в качестве прокси для docker-контейнеров.

Установка Docker и Docker Compose

Скрипт install_docker.sh выполняет установку docker.io и docker-compose, а также добавляет текущего пользователя в группу docker, чтобы можно было запускать docker-команды без sudo.

Инструкция по использованию:

  1. Клонируйте репозиторий:

    git clone https://github.com/CloudLab-Studio/prepare-server.git
    cd prepare-server
  2. Сделайте скрипт исполняемым:

    chmod +x install_docker.sh
  3. Запустите скрипт:

    ./install_docker.sh

Установка Nginx и Certbot

Скрипт install_nginx.sh устанавливает nginx, certbot и настраивает файервол для разрешения http и https трафика.

Инструкция по использованию:

  1. Сделайте скрипт исполняемым:

    chmod +x install_nginx.sh
  2. Запустите скрипт с указанием желаемой версии nginx:

    ./install_nginx.sh [stable|mainline]

Настройка Nginx в качестве прокси

Скрипт add_proxy.sh настраивает конфигурацию прокси для nginx и получает SSL-сертификат с помощью certbot.

Инструкция по использованию:

  1. Сделайте скрипт исполняемым:

    chmod +x add_proxy.sh
  2. Запустите скрипт и следуйте подсказкам:

    ./add_proxy.sh
  3. Вам будет предложено ввести:

Вместо заключения

  1. Безопасность: Скрипт не настраивает безопасность, вам нужно озаботиться об этом самим. Часто хостеры выдают VDS со всеми открытыми портами наружу и ваш сервис будет доступен как по доменному имени, так и по порту.

  2. Почему скрипто только под Ubuntu: Я потратил много ночей на изучение дистрибутивов 20 лет назад и первый человеческий диутрибутив, который у меня завелся Ubuntu — с ним и живем для большинства проектов.

  3. Если у вас есть похожие скрипты для быстрого поднятия сервисов на новых серверах, делитесь и контрибьютьте, велкам.

Habrahabr.ru прочитано 2002 раза