One place for hosting & domains

      Установка

      Установка MongoDB из репозиториев APT по умолчанию в Ubuntu 20.04


      Введение

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

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

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

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

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

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

      MongoDB входит в официальные репозитории пакетов Ubuntu, т. е. мы можем устанавливать необходимые пакеты с помощью apt. Как уже было отмечено во введении, по умолчанию в репозиториях доступна не самая последняя версия. Чтобы установить последнюю версию Mongo, воспользуйтесь этим учебным модулем.

      Вначале следует обновить пакеты, чтобы получить последнюю версию списков репозитория:

      Затем необходимо установить сам пакет MongoDB:

      Эта команда попросит подтвердить, что вы хотите установить пакет mongodb и его зависимости. Чтобы это сделать, нажмите Y, а затем ENTER.

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

      Затем нужно убедиться, что сервер запущен и работает корректно.

      Шаг 2 — Проверка службы и базы данных

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

      Вначале проверим состояние службы:

      • sudo systemctl status mongodb

      Вы увидите следующий результат:

      Output

      ● mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-08 14:23:22 UTC; 49s ago Docs: man:mongod(1) Main PID: 2790 (mongod) Tasks: 23 (limit: 2344) Memory: 42.2M CGroup: /system.slice/mongodb.service └─2790 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

      Согласно данному выводу, сервер MongoDB запущен и работает.

      Мы можем дополнительно подтвердить это, фактически подключившись к серверу базы данных и запустив следующую диагностическую команду. Команда выведет текущую версию базы данных, адрес и порт сервера, а также результаты выполнения команды status:

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

      Output

      MongoDB shell version v3.6.8 connecting to: mongodb://127.0.0.1:27017 Implicit session: session { "id" : UUID("e3c1f2a1-a426-4366-b5f8-c8b8e7813135") } MongoDB server version: 3.6.8 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

      Значение 1 поля ok в ответе означает, что сервер работает нормально.

      Теперь мы рассмотрим, как управлять экземпляром сервера.

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

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

      Чтобы проверить состояние службы, введите:

      • sudo systemctl status mongodb

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

      • sudo systemctl stop mongodb

      Чтобы запустить остановленный сервер, введите:

      • sudo systemctl start mongodb

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

      • sudo systemctl restart mongodb

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

      • sudo systemctl disable mongodb

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

      • sudo systemctl enable mongodb

      Теперь изменим настройки параметров брандмауэра для нашей системы MongoDB.

      Шаг 4 — Настройка брандмауэра (необязательно)

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

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

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

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

      • sudo ufw allow from trusted_server_ip/32 to any port 27017

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

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

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 27017 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 27017 (v6) ALLOW Anywhere (v6)

      Дополнительные настройки брандмауэра для ограничения доступа к службам можно найти в разделе Основы UFW: распространенные правила и команды брандмауэра.

      Хотя порт и открыт, MongoDB все равно будет прослушивать только локальный адрес 127.0.0.1. Чтобы разрешить удаленные подключения, добавьте публичный маршрутизируемый IP-адрес вашего сервера в файл mongodb.conf.

      Откройте файл конфигурации MongoDB в предпочитаемом текстовом редакторе. Команда в этом примере использует nano:

      • sudo nano /etc/mongodb.conf

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

      /etc/mongodb.conf

      ...
      logappend=true
      
      bind_ip = 127.0.0.1,your_server_ip
      #port = 27017
      
      ...
      

      Сохраните файл и выйдите из редактора. Если вы использовали nano для редактирования файла, нажмите CTRL + X, Y, а затем ENTER.

      Затем перезапустите службу MongoDB:

      • sudo systemctl restart mongodb

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

      Заключение

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



      Source link

      Установка и настройка Postfix в качестве сервера SMTP только для отправки в Ubuntu 20.04


      Автор выбрал фонд Free and Open Source Fund для получения пожертвования в рамках программы Write for DOnations.

      Введение

      Postfix — это агент передачи почты (MTA), т. е. приложение для отправки и приема электронной почты. Его можно настроить так, чтобы только локальные приложения могли использовать его для отправки электронной почты. Это может быть полезно, если вам нужно регулярно рассылать по электронной почте уведомления от ваших приложений или у вас много исходящего трафика, а сторонний поставщик услуг электронной почты не разрешает такие объемы. Это облегченная альтернатива развертыванию полноценного сервера SMTP, позволяющая сохранить требуемые функции.

      В этом обучающем модуле мы установим и настроим Postfix как сервер SMTP, доступный только для отправки. Также мы запросим бесплатные сертификаты TLS от Let’s Encrypt для вашего домена и настроим их использование для шифрования исходящей электронной почты.

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

      • Один сервер Ubuntu 20.04, настроенный в соответствии с инструкциями по начальной настройке сервера с Ubuntu 20.04, а также пользователь без привилегий root с привилегиями sudo.
      • Зарегистрированное полное доменное имя. В этом обучающем руководстве мы будем использовать your_domain. Вы можете купить доменное имя на Namecheap, получить его бесплатно на Freenom или воспользоваться услугами любого предпочитаемого регистратора доменных имен.
      • Запись DNS A с your_domain​​​, указывающая на публичный IP-адрес вашего сервера. В руководстве Введение в DigitalOcean DNS содержится подробная информация по их добавлению.

      Примечание. Имя хоста вашего сервера и имя вашего дроплета должны соответствовать your_domain, т. к. DigitalOcean автоматически задает записи PTR для IP-адреса дроплета по его имени.

      Для проверки имени хоста сервера можно ввести hostname в командной строке. Вывод должен соответствовать имени, которое вы присвоили дроплету при его создании.

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

      На этом шаге мы выполним установку Postfix. Быстрее всего будет установить пакет mailutils, включающий Postfix и несколько дополнительных программ, которые можно использовать для тестирования отправки электронной почты.

      Вначале обновите базу данных пакетов:

      Затем выполните установку Postfix, запустив следующую команду:

      • sudo apt install mailutils

      Перед окончанием установки вы увидите окно настройки конфигурации Postfix:

      Выберите в меню пункт Internet Site (Сайт), нажмите TAB для выбора<Ok>, а затем нажмите ENTER

      По умолчанию используется опция Internet Site (Сайт). Это наиболее подходящая опция для нашего случая, поэтому нажмите TAB, а затем нажмите ENTER. Если вы увидите только текст описания, нажмите TAB для выбора пункта OK, а затем нажмите ENTER.

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

      • sudo dpkg-reconfigure postfix

      После этого откроется еще один диалог настройки конфигурации System mail name (имя системной почты):

      Введите свое доменное имя, а затем нажмите TAB для выбора<Ok>, ENTER

      Имя системной почты System mail name должно совпадать с именем, которое вы присвоили своему серверу при его создании. После завершения настройки нажмите TAB, а затем нажмите ENTER.

      Мы установили Postfix и готовы приступить к настройке.

      Шаг 2 — Настройка Postfix

      На этом шаге мы настроим Postfix для отправки и приема электронных писем только с сервера, на котором он запущен, т. е. с localhost.

      Для этого нужно настроить Postfix для прослушивания только интерфейса виртуальной сети loopback, который сервер использует для внутренней связи. Для внесения изменений потребуется отредактировать главный файл конфигурации Postfix с именем main.cf, хранящийся в каталоге etc/postfix.

      Откройте его для редактирования в предпочитаемом текстовом редакторе:

      • sudo nano /etc/postfix/main.cf

      Найдите следующие строки:

      /etc/postfix/main.cf

      . . .
      mailbox_size_limit = 0
      recipient_delimiter = +
      inet_interfaces = all
      . . .
      

      Задайте для параметра inet_interfaces значение loopback-only:

      /etc/postfix/main.cf

      . . .
      mailbox_size_limit = 0
      recipient_delimiter = +
      inet_interfaces = loopback-only
      . . .
      

      Также необходимо изменить директиву mydestination, которая указывает список доменов, почта с которых доставляется через транспорт local_transport. По умолчанию значения выглядят примерно так:

      /etc/postfix/main.cf

      . . .
      mydestination = $myhostname, your_domain, localhost.com, , localhost
      . . .
      

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

      /etc/postfix/main.cf

      . . .
      mydestination = localhost.$mydomain, localhost, $myhostname
      . . .
      

      Если ваш домен фактически является субдоменом, и вы хотите, чтобы сообщения электронной почты выглядели отправленными с главного домена, вы можете добавить следующую строку в конец файла main.cf:

      /etc/postfix/main.cf

      ...
      masquerade_domains = your_main_domain
      

      Необязательный параметр masquerade_domains указывает, для каких доменов в адресе электронной почты будут урезаться субдомены.

      После внесения изменений сохраните и закройте файл.

      Примечание. В случае хостинга нескольких доменов на одном сервере другие домены также можно передать Postfix с помощью директивы mydestination.

      Затем перезапустите Postfix, выполнив следующую команду:

      • sudo systemctl restart postfix

      Вы настроили Postfix только для отправки почты с вашего сервера. Теперь протестируем настройку, отправив тестовое сообщение на адрес электронной почты.

      Шаг 3 — Тестирование сервера SMTP

      На этом шаге мы проверим, может ли Postfix отправлять электронные сообщения на внешний адрес электронной почты, используя команду mail, которая входит в пакет mailutils, установленный на первом шаге.

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

      • echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

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

      Проверьте почтовый ящик, на адрес которого вы отправили сообщение. Вы должны увидеть это сообщение в папке «Входящие». Если его там нет, проверьте папку «Нежелательная почта». Сейчас все электронные письма отправляются без шифрования, и поэтому провайдеры могут посчитать их спамом. Шифрование мы настроим немного позднее, на шаге 5.

      Если при выполнении команды mail появится сообщение об ошибке, или вы не получите письмо в течение длительного времени, проверьте правильность измененной вами конфигурации Postfix и соответствие имени сервера и имени хоста вашему домену.

      С этой конфигурацией адрес в поле «От» в отправляемых тестовых письмах будет иметь вид your_user_name@your_domain, где your_user_name — имя пользователя сервера, от лица которого вы запустили команду.

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

      Шаг 4 — Переадресация системной почты

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

      Файл /etc/aliases содержит список альтернативных имен получателей электронных писем. Откройте его для редактирования:

      По умолчанию он выглядит так:

      /etc/aliases

      # See man 5 aliases for format
      postmaster:    root
      

      Единственная содержащаяся в нем директива предписывает пересылать сгенерированные системой электронные сообщения пользователю root.

      Добавьте в конец файла следующую строку:

      /etc/aliases

      ...
      root:          your_email_address
      

      Эта строка предписывает пересылать электронные письма, отправленные пользователю root, на указанный адрес электронной почты. Обязательно замените your_email_address своим личным адресом электронной почты. После внесения изменений сохраните и закройте файл.

      Для вступления изменений в силу выполните следующую команду:

      При запуске команды newaliases будет построена база данных псевдонимов, используемых командой mail. Эти псевдонимы берутся из файла конфигурации, который вы только что отредактировали.

      Протестируйте отправку электронных писем пользователю root с помощью следующей команды:

      • echo "This is the body of the email" | mail -s "This is the subject line" root

      Письмо должно прийти на указанный вами почтовый ящик. Если его там нет, проверьте папку «Нежелательная почта».

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

      Шаг 5 — Включение шифрования SMTP

      Теперь вы можете включить шифрование SMTP, запросив бесплатный сертификат TLS от Let’s Encrypt для вашего домена (с помощью Certbot) и настроив Postfix для использования этого сертификата при отправке сообщений.

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

      В диалоге подтверждения введите Y и нажмите ENTER.

      При начальной настройке сервера вы установили простой брандмауэр ufw. Вам нужно настроить его, чтобы разрешить трафик через порт HTTP 80, и тем самым завершить подтверждение вашего домена. Запустите следующую команду для его активации:

      Итоговый результат будет выглядеть следующим образом:

      Output

      Rule added Rule added (v6)

      Теперь порт открыт, и мы можем запустить Certbot для получения сертификата:

      • sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain

      Эта команда предписывает Certbot выдавать сертификаты с размером ключа RSA 4096 бит, запустить временный отдельный веб-сервер (--standalone) для проверки и выполнить проверку через порт 80 (--preferred-challenges http). Перед запуском команды обязательно замените your_domain именем вашего домена и введите свой адрес электронной почты, когда система его запросит.

      Результат будет выглядеть примерно следующим образом:

      Output

      Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Obtaining a new certificate Performing the following challenges: http-01 challenge for `your_domain` Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

      Как указано в примечаниях, ваши сертификат и файл закрытого ключа сохранены в каталоге /etc/letsencrypt/live/your_domain.

      Получив сертификат, откройте файл main.cf для редактирования:

      • sudo nano /etc/postfix/main.cf

      Найдите следующий раздел:

      /etc/postfix/main.cf

      # TLS parameters
      smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
      smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
      smtpd_tls_security_level=may
      
      smtp_tls_CApath=/etc/ssl/certs
      smtp_tls_security_level=may
      smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
      

      Замените your_domain именем вашего домена, где это необходимо. Ваши настройки TLS для Postfix будут обновлены:

      /etc/postfix/main.cf

      # TLS parameters
      smtpd_tls_cert_file=/etc/letsencrypt/live/your_domain/fullchain.pem
      smtpd_tls_key_file=/etc/letsencrypt/live/your_domain/privkey.pem
      smtpd_tls_security_level=may
      
      smtp_tls_CApath=/etc/ssl/certs
      smtp_tls_security_level=may
      smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
      

      Закончив, сохраните и закройте файл.

      Перезапустите Postfix, чтобы применить изменения:

      • sudo systemctl restart postfix

      Попробуйте отправить электронное письмо еще раз:

      • echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address

      Проверьте указанный вами адрес электронной почты. Возможно вы сразу же увидите сообщение в папке «Входящие», поскольку провайдеры с меньшей вероятностью помечают шифрованные сообщения как спам.

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

      Заключение

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

      Если вы намереваетесь отправлять электронные письма потенциальным пользователям сайта (например, письма для подтверждения регистрации на форуме), попробуйте настроить записи SPF, чтобы электронные письма с вашего сервера выглядели еще более легитимными.



      Source link

      Установка 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