Автоматическая установка базы PostgreSQL на VPS
Данная статья предназначена для людей, с нулевым опытом в администрировании.
Здесь мы расскажем как запустить базу данных PostgreSQL на только что купленном VPS.
Скрипт из данной статьи устанавливает docker в режиме rootless и запускает в докере контейнер с образом PostgreSQL 15-й версии.
Важно: тут будет описан максимально простой способ запуска базы данных, без резервного копирования и тд.
- Базовые настройки по безопасности (отключить вход для root, использовать SSH и тд.) - Мониторинг работы сервера и сбор его метрик (Нагрузка ЦПУ, расход диска и тд.) - Ежедневное резервное копирование базы данных с отправкой копии например на почту или другой сервер.
Данные выше рекомендации не описаны в этой статье и для их применения незнающему человеку лучше обратиться к специалисту.
Как минимум нужно озаботиться резервным копированием.
Обычно при создании VPS выдают доступы от root аккаунта.
Открываем консоль в вашей ОС и вводим команду ssh root@{IP сервера} и нажимаем Enter. Пример команды: ssh [email protected]
При самом первом входе вы увидите вопрос: ECDSA key fingerprint is ....... Are you sure you want to continue connecting (yes/no/[fingerprint])?
Вводим "yes" и жмем Enter.
Далее вас попросит ввести пароль. Вводим пароль руками или копируем(ПКМ). При вводе пароль не будет отображаться, это нормально. После ввода пароля жмем Enter.
Выполняем команды:
Выполняем команду, указывая обязательно все аргументы, заменяя на свои значения:
где: db_name - Название для базы данных db_user - Пользователь базы данных db_pass - Пароль для входа db_port - Порт. Стандартный порт для postgres это 5432, но можете указать свое значение.
Эти данные, вы будете использовать для подключения к вашей базе.
Пример: bash /tmp/veeneo_init_pg.sh -n "test_database" -u "test_user" -s "1234pass" -p 5432
Важные правила:
- Название базы и имени пользователя не должны начинаться с "pg_".
- Все текстовые аргументы берем в двойные кавычки, как показано в примере.
- Запрещено использование символов внутри аргументов:
- `
- \
- "
В процессе установки может возникнуть необходимость в перезапуске некоторых сервисов. В случае как на скриншоте, мы вводим цифры от 1 и 7, и жмем Enter.
Чтобы повысить безопасность необходимо создать нового пользователя, который и будет запускать нашу базу данных. Для этого вас попросят ввести имя пользователя и потом ввести для него пароль(пароль не будет отображаться в при вводе).
Важно: логин и пароль нового юзера обязательно сохраните себе куда-нибудь, так как если понадобится войти на сервер снова, то лучше это делать не от root пользователя.
Какое-то время будет идти установка приложения docker в режиме rootless. По итогу, в конце вы должны увидеть смену контекста на rootless и ID запущенного контейнера с PostgreSQL.
Выполняем в консоли команду:
username меняем на имя пользователя, которого создали в процессе установки на шаге 4.2.
Вам должны показаться работающие контейнеры: