One place for hosting & domains

      Установка MongoDB в Ubuntu 20.04


      Предыдущая версия данного руководства была написана Мелиссой Андерсон.

      Введение

      MongoDB (или Mongo) — это документоориентированная база данных с открытым исходным кодом, используемая во многих современных веб-приложениях. Она относится к базам данных типа NoSQL, поскольку не опирается на традиционную табличную структуру реляционных баз данных.

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

      В этом руководстве мы установим MongoDB на сервере Ubuntu 20.04, протестируем ее и узнаем, как управлять ею как службой systemd.

      Предварительные требования

      Для данного обучающего модуля вам потребуется следующее:

      • Один сервер Ubuntu 20.04. На сервере должен быть пользователь без привилегий root с правами администратора и брандмауэр, настроенный с помощью UFW. Вы можете выполнить настройку, следуя указаниям руководства Начальная настройка сервера для Ubuntu 20.04.

      Шаг 1 — Установка MongoDB

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

      Чтобы получить самую последнюю версию этого программного обеспечения, вам нужно добавить выделенный репозиторий пакетов MongoDB в ваши источники APT. Теперь вы сможете установить mongodb-org, метапакет, который всегда указывает на последнюю версию MongoDB.

      Для начала импортируйте публичный ключ GPG для последней стабильной версии MongoDB. Вы можете найти соответствующий файл ключа на сервере ключей MongoDB. Вам нужно найти файл, который включает номер последней стабильной версии и заканчивается на .asc. Например, если вы хотите установить MongoDB версии 4.4, необходимо искать файл с именем server-4.4.asc.

      Нажмите правой кнопкой мыши на файл и выберите опцию Copy link address (Скопировать адрес ссылки). Затем вставьте эту ссылку в следующую команду curl, заменив выделенный URL:

      • curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

      cURL — это инструмент командной строки, который доступен во многих операционных системах и используется для передачи данных. Он читает все данные, хранящиеся в переданном URL, и выводит содержание в вывод системы. В следующем примере cURL выводит содержание файла ключа GPG, а затем вводит его в команду sudo apt-key add -, добавляя ключ GPG в ваш список доверенных ключей.

      Также обратите внимание, что команда curl использует опции -fsSL, которые вместе указывают cURL не выполнять скрипт без каких-либо обязательств. Это означает, что, если по какой-либо причине cURL не может связаться с сервером GPG, либо сервер GPG не работает, он не добавит полученный код ошибки к вашему списку доверенных ключей случайно.

      Эта команда покажет вывод OK, если ключ добавлен успешно:

      Output

      OK

      Если вы хотите еще раз убедиться, что ключ добавлен корректно, вы можете сделать это, выполнив следующую команду:

      Эта команда возвращает ключ MongoDB в выводе:

      Output

      /etc/apt/trusted.gpg -------------------- pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26] 2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5 uid [ unknown] MongoDB 4.4 Release Signing Key <packaging@mongodb.com> . . .

      На этом этапе ваша система APT все еще не знает, где искать пакет mongodb-org, который необходим для установки последней версии MongoDB.

      На вашем сервере есть два места, где APT ищет онлайн-источники пакетов для загрузки и установки: файл sources.list и каталог sources.list.d. sources.list — это файл, который перечисляет активные источники данных APT (по одному источнику в строке, наиболее предпочтительные указываются первыми). Каталог sources.list.d позволяет добавлять такие записи sources.list в качестве отдельных файлов.

      Запустите следующую команду, которая создает файл в каталоге sources.list.d под именем mongodb-org-4.4.list. В этом файле содержится только одна строка: deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse:

      • echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

      Эта единственная строка указывает APT все, что необходимо знать об источнике, и где его найти:

      • deb: означает, что источник ссылается на обычную архитектуру Debian. В других случаях эта часть строки может выглядеть как deb-src. Это означает, что источник представляет исходный код дистрибутива Debian.
      • [ arch=amd64,arm64 ]: указывает, в какие архитектуры загружать данные APT. В данном случае это архитектуры amd64 и arm64.
      • https://repo.mongodb.org/apt/ubuntu: это URI, представляющий местоположение данных APT. В данном случае URI указывает на адрес HTTPS, где находится официальный репозиторий MongoDB.
      • focal/mongodb-org/4.4: репозитории Ubuntu могут содержать несколько разных выпусков. Это означает, что вам нужна только версия 4.4 пакета mongodb-org, доступная для выпуска Ubuntu focal («Focal Fossa» — это кодовое название Ubuntu 20.04).
      • multiverse: эта часть указывает APT на один из четырех основных репозиториев Ubuntu. В данном случае — на репозиторий multiverse.

      После запуска этой команды обновите локальный индекс пакетов вашего сервера, чтобы APT знал, где найти пакет mongodb-org:

      После этого вы можете установить MongoDB:

      • sudo apt install mongodb-org

      При появлении запроса нажмите Y, а затем ENTER, чтобы подтвердить, что вы хотите установить пакет.

      После завершения выполнения команды MongoDB будет установлена на вашей системе. Однако она еще не готова к использованию. На следующем шаге мы запустим MongoDB и убедимся, что она работает корректно.

      Шаг 2 — Начало работы службы MongoDB и тестирование базы данных

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

      Выполните следующую команду systemctl, чтобы запустить службу MongoDB:

      • sudo systemctl start mongod.service

      Затем проверьте статус службы. Обратите внимание, что эта команда не включает .service в определение служебного файла. systemctl будет автоматически добавлять этот суффикс для любого аргумента, который вы передаете, если он еще не присутствует, поэтому нет необходимости включать его:

      • sudo systemctl status mongod

      Эта команда возвращает вывод, аналогичный следующему, указывая на то, что служба запущена и работает:

      Output

      ● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2020-06-09 12:57:06 UTC; 2s ago Docs: https://docs.mongodb.org/manual Main PID: 37128 (mongod) Memory: 64.8M CGroup: /system.slice/mongod.service └─37128 /usr/bin/mongod --config /etc/mongod.conf

      После подтверждения того, что служба работает нормально, установите активацию службы MongoDB при загрузке:

      • sudo systemctl enable mongod

      Теперь вы можете убедиться, что база данных работает, подключившись к серверу базы данных и выполнив диагностическую команду. Следующая команда подключает к базе данных и выводит текущую версию, адрес сервера и порт. Также она выводит результат внутренней команды MongoDB connectionStatus:

      • mongo --eval 'db.runCommand({ connectionStatus: 1 })'

      connectionStatus проверяет и возвращает статус подключения базы данных. Значение 1 поля ok в ответе означает, что сервер работает нормально:

      Output

      MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("1dc7d67a-0af5-4394-b9c4-8a6db3ff7e64") } MongoDB server version: 4.4.0 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

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

      На следующем шаге мы рассмотрим, как управлять экземпляром сервера MongoDB с помощью systemd.

      Шаг 3 — Управление службой MongoDB

      Как уже упоминалось ранее, процесс установки, описанный в шаге 1, настраивает MongoDB для работы в качестве службы systemd. Это означает, что вы можете управлять ею, используя стандартные команды systemctl, используемые для работы с другими службами системы Ubuntu.

      Как уже упоминалось ранее, команда systemctl status проверяет статус службы MongoDB:

      • sudo systemctl status mongod

      Вы можете остановить работу службы в любое время с помощью следующей команды:

      • sudo systemctl stop mongod

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

      • sudo systemctl start mongod

      Также вы можете перезапустить сервер, когда он уже работает:

      • sudo systemctl restart mongod

      На шаге 2 вы установили активацию MongoDB автоматически при загрузке сервера. Если вы хотите отключить автоматический запуск, введите:

      • sudo systemctl disable mongod

      Для повторной установки активации при загрузке запустите команду enable снова:

      • sudo systemctl enable mongod

      Дополнительную информацию о том, как управлять службами systemd, можно найти в статье Основы работы с Systemd: работа со службами, блоками и журналом.

      Заключение

      В ходе выполнения этого обучающего руководства вы добавили официальный репозиторий MongoDB в ваш экземпляр APT и установили последнюю версию MongoDB. Затем вы протестировали функциональность Mongo и попробовали использовать некоторые команды systemctl.

      В качестве непосредственного следующего шага мы настоятельно рекомендуем вам усилить защиту системы MongoDB с помощью нашего руководства Обеспечение безопасности MongoDB в Ubuntu 20.04. После того как вы обеспечили безопасность системы, вы можете настраивать MongoDB для удаленного подключения.

      Больше обучающих модулей по настройке и использованию MongoDB можно найти в этих статьях сообщества DigitalOcean. Также мы рекомендуем вам ознакомиться с официальной документацией MongoDB, так как это большой ресурс, описывающий все возможности MongoDB.



      Source link