Как установить MongoDB на Ubuntu 16.04

Вступление

MongoDB - это бесплатная база данных документов NoSQL с открытым исходным кодом, широко используемая в современных веб-приложениях. Этот учебник поможет вам настроить MongoDB на вашем сервере для среды производственных приложений.

Предпосылки

Чтобы следовать этому уроку, вам понадобится:

  • Один сервер Ubuntu 16.04, настроенный в соответствии с этимinitial server setup tutorial, включая пользователя sudo без полномочий root и брандмауэр.

[[step-1 -—- add-the-mongodb-repository]] == Шаг 1. Добавление репозитория MongoDB

MongoDB уже включен в репозитории пакетов Ubuntu, но официальный репозиторий MongoDB предоставляет самую последнюю версию и является рекомендуемым способом установки программного обеспечения. На этом этапе мы добавим этот официальный репозиторий на наш сервер.

Ubuntu гарантирует подлинность пакетов программного обеспечения, проверяя, что они подписаны ключами GPG, поэтому сначала нам нужно импортировать их ключ для официального репозитория MongoDB.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

После успешного импорта ключа вы увидите:

Выход

gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

Затем мы должны добавить детали репозитория MongoDB, чтобыapt знал, откуда загружать пакеты.

Выполните следующую команду, чтобы создать файл списка для MongoDB.

echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

После добавления сведений о репозитории нам необходимо обновить список пакетов.

sudo apt-get update

[[step-2 -—- install-and-verifying-mongodb]] == Шаг 2 - Установка и проверка MongoDB

Теперь мы можем установить сам пакет MongoDB.

sudo apt-get install -y mongodb-org

Эта команда установит несколько пакетов, содержащих последнюю стабильную версию MongoDB, а также полезные инструменты управления для сервера MongoDB.

Затем запустите MongoDB сsystemctl.

sudo systemctl start mongod

Вы также можете использоватьsystemctl, чтобы проверить правильность запуска службы.

sudo systemctl status mongod

Выход

● mongodb.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2016-04-25 14:57:20 EDT; 1min 30s ago
 Main PID: 4093 (mongod)
    Tasks: 16 (limit: 512)
   Memory: 47.1M
      CPU: 1.224s
   CGroup: /system.slice/mongodb.service
           └─4093 /usr/bin/mongod --quiet --config /etc/mongod.conf

Последний шаг - включить автоматический запуск MongoDB при запуске системы.

sudo systemctl enable mongod

Теперь сервер MongoDB настроен и работает, и вы можете управлять службой MongoDB с помощью командыsystemctl (например, sudo systemctl stop mongod,sudo systemctl start mongod).

[[step-3 -—- adjusting-the-firewall-optional]] == Шаг 3 - Настройка брандмауэра (необязательно)

Предполагая, что вы выполнили инструкцииinitial server setup tutorial, чтобы включить брандмауэр на своем сервере, сервер MongoDB будет недоступен из Интернета.

Если вы планируете использовать сервер MongoDB только локально с приложениями, работающими на том же сервере, это рекомендуемый и безопасный параметр. Однако, если вы хотите иметь возможность подключаться к своему серверу MongoDB из Интернета, мы должны разрешить входящие подключения вufw.

Чтобы разрешить доступ к MongoDB через порт по умолчанию27017 отовсюду, вы можете использоватьsudo ufw allow 27017. Однако включение доступа в Интернет к серверу MongoDB при установке по умолчанию дает неограниченный доступ ко всему серверу базы данных.

в большинстве случаев доступ к MongoDB следует осуществлять только из определенных надежных расположений, например с другого сервера, на котором размещено приложение. Для выполнения этой задачи вы можете разрешить доступ к порту MongoDB по умолчанию, указав IP-адрес другого сервера, которому будет разрешено подключаться.

sudo ufw allow from your_other_server_ip/32 to any port 27017

Вы можете проверить изменение настроек брандмауэра с помощьюufw.

sudo ufw status

Вы должны увидеть трафик на разрешенный порт27017 в выводе. Если вы решили разрешить только определенному IP-адресу для подключения к серверу MongoDB, IP-адрес разрешенного местоположения будет указан вместоAnywhere на выходе.

Выход

Status: active

To                         Action      From
--                         ------      ----
27017                      ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
27017 (v6)                 ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)

Дополнительные настройки брандмауэра для ограничения доступа к службам описаны вUFW Essentials: Common Firewall Rules and Commands.

Заключение

Вы можете найти более подробные инструкции по установке и настройке MongoDB вthese DigitalOcean community articles.

Related