Udostępnij przez


Jak zainstalować i skonfigurować bazę danych MongoDB na maszynie wirtualnej z systemem Linux

MongoDB to popularna baza danych NoSQL typu open source o wysokiej wydajności. W tym artykule pokazano, jak zainstalować i skonfigurować bazę danych MongoDB na maszynie wirtualnej z systemem Linux przy użyciu interfejsu wiersza polecenia platformy Azure. Poniżej przedstawiono przykłady, w których przedstawiono szczegółowe instrukcje:

Ręczne instalowanie i konfigurowanie bazy danych MongoDB na maszynie wirtualnej

Baza MongoDB udostępnia instrukcje instalacji dystrybucji systemu Linux, w tym Red Hat / CentOS, SUSE, Ubuntu i Debian. Poniższy przykład tworzy maszynę wirtualną z systemem CentOS . Aby utworzyć to środowisko, musisz zainstalować najnowszy interfejs wiersza polecenia platformy Azure i zalogować się na koncie platformy Azure przy użyciu polecenia az login.

Utwórz grupę zasobów za pomocą az group create. W poniższym przykładzie pokazano tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji eastus:

az group create --name myResourceGroup --location eastus

Utwórz maszynę wirtualną za pomocą polecenia az vm create. Poniższy przykład tworzy maszynę wirtualną o nazwie myVM z użytkownikiem o nazwie azureuser przy użyciu uwierzytelniania za pomocą klucza publicznego SSH

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image CentOS \
    --admin-username azureuser \
    --generate-ssh-keys

Połącz się z maszyną wirtualną za pomocą SSH, używając własnej nazwy użytkownika i publicIpAddress wymienionej w danych wyjściowych z poprzedniego kroku.

ssh azureuser@<publicIpAddress>

Aby dodać źródła instalacji dla bazy danych MongoDB, utwórz plik repozytorium yum w następujący sposób:

sudo touch /etc/yum.repos.d/mongodb-org-3.6.repo

Otwórz plik repozytorium MongoDB do edycji, na przykład za pomocą vi lub nano. Dodaj następujące wiersze:

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

Zainstaluj bazę danych MongoDB przy użyciu narzędzia yum w następujący sposób:

sudo yum install -y mongodb-org

Domyślnie środowisko SELinux jest wymuszane na obrazach systemu CentOS, które uniemożliwiają uzyskiwanie dostępu do bazy danych MongoDB. Zainstaluj narzędzia do zarządzania zasadami i skonfiguruj narzędzie SELinux, aby umożliwić usłudze MongoDB działanie na domyślnym porcie TCP 27017 w następujący sposób:

sudo yum install -y policycoreutils-python
sudo semanage port -a -t mongod_port_t -p tcp 27017

Uruchom usługę MongoDB w następujący sposób:

sudo service mongod start

Zweryfikuj instalację bazy danych MongoDB, nawiązując połączenie przy użyciu klienta lokalnego mongo :

mongo

Teraz przetestuj instancję MongoDB, dodając trochę danych, a następnie wyszukując:

> db
test
> db.foo.insert( { a : 1 } )  
> db.foo.find()  
{ "_id" : ObjectId("57ec477cd639891710b90727"), "a" : 1 }
> exit

W razie potrzeby skonfiguruj bazę danych MongoDB do automatycznego uruchamiania podczas ponownego uruchamiania systemu:

sudo chkconfig mongod on

Tworzenie podstawowego wystąpienia bazy danych MongoDB w systemie CentOS przy użyciu szablonu

Możesz utworzyć podstawowe wystąpienie bazy danych MongoDB na jednej maszynie wirtualnej z systemem CentOS przy użyciu następującego szablonu szybkiego startu platformy Azure z usługi GitHub. Ten szablon używa rozszerzenia niestandardowego skryptu dla systemu Linux, aby dodać repozytorium yum do nowo utworzonej maszyny wirtualnej z systemem CentOS, a następnie zainstalować MongoDB.

Aby utworzyć to środowisko, musisz zainstalować najnowszy interfejs wiersza polecenia platformy Azure i zalogować się na koncie platformy Azure przy użyciu polecenia az login. Najpierw utwórz grupę zasobów za pomocą polecenia az group create. W poniższym przykładzie pokazano tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji eastus:

az group create --name myResourceGroup --location eastus

Następnie wdróż szablon bazy danych MongoDB za pomocą polecenia az deployment group create. Po wyświetleniu monitu wprowadź własne unikatowe wartości dla newStorageAccountName, dnsNameForPublicIP oraz nazwę użytkownika i hasło administratora:

az deployment group create --resource-group myResourceGroup \
  --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-centos/azuredeploy.json

Zaloguj się do maszyny wirtualnej przy użyciu publicznego adresu DNS maszyny wirtualnej. Publiczny adres DNS można wyświetlić za pomocą az vm show:

az vm show -g myResourceGroup -n myLinuxVM -d --query [fqdns] -o tsv

Połączenie SSH z maszyną wirtualną przy użyciu własnej nazwy użytkownika i publicznego adresu DNS:

ssh azureuser@mypublicdns.eastus.cloudapp.azure.com

Zweryfikuj instalację bazy danych MongoDB, łącząc się przy użyciu klienta lokalnego mongo w następujący sposób:

mongo

Teraz przetestuj wystąpienie, dodając dane i wyszukując w następujący sposób:

> db
test
> db.foo.insert( { a : 1 } )  
> db.foo.find()  
{ "_id" : ObjectId("57ec477cd639891710b90727"), "a" : 1 }
> exit

Tworzenie złożonego klastra podzielonego na fragmenty bazy danych MongoDB w systemie CentOS przy użyciu szablonu

Możesz utworzyć złożony klaster podzielony na fragmenty bazy danych MongoDB przy użyciu następującego szablonu szybkiego startu platformy Azure z usługi GitHub. Ten szablon jest zgodny z najlepszymi rozwiązaniami dotyczącymi klastra podzielonego na fragmenty bazy danych MongoDB w celu zapewnienia nadmiarowości i wysokiej dostępności. Szablon tworzy dwa shardy, z trzema węzłami w każdym zestawie replik. Tworzony jest również jeden zestaw replik serwera konfiguracji z trzema węzłami, a także dwa serwery routerów mongos w celu zapewnienia spójności aplikacji z różnych fragmentów.

Ostrzeżenie

Wdrożenie tego złożonego klastra podzielonego na fragmenty bazy danych MongoDB wymaga więcej niż 20 rdzeni, co zazwyczaj jest domyślną liczbą rdzeni na region dla subskrypcji. Otwórz wniosek o pomoc techniczną platformy Azure, aby zwiększyć liczbę rdzeni.

Aby utworzyć to środowisko, musisz zainstalować najnowszy interfejs wiersza polecenia platformy Azure i zalogować się na koncie platformy Azure przy użyciu polecenia az login. Najpierw utwórz grupę zasobów za pomocą polecenia az group create. W poniższym przykładzie pokazano tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji eastus:

az group create --name myResourceGroup --location eastus

Następnie wdróż szablon bazy danych MongoDB za pomocą polecenia az deployment group create. Zdefiniuj własne nazwy zasobów i rozmiary, w razie potrzeby, takie jak mongoAdminUsername, sizeOfDataDiskInGB i configNodeVmSize:

az deployment group create --resource-group myResourceGroup \
  --parameters '{"adminUsername": {"value": "azureuser"},
    "adminPassword": {"value": "P@ssw0rd!"},
    "mongoAdminUsername": {"value": "mongoadmin"},
    "mongoAdminPassword": {"value": "P@ssw0rd!"},
    "dnsNamePrefix": {"value": "mypublicdns"},
    "environment": {"value": "AzureCloud"},
    "numDataDisks": {"value": "4"},
    "sizeOfDataDiskInGB": {"value": 20},
    "centOsVersion": {"value": "7.0"},
    "routerNodeVmSize": {"value": "Standard_DS3_v2"},
    "configNodeVmSize": {"value": "Standard_DS3_v2"},
    "replicaNodeVmSize": {"value": "Standard_DS3_v2"},
    "zabbixServerIPAddress": {"value": "Null"}}' \
  --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-sharding-centos/azuredeploy.json \
  --name myMongoDBCluster \
  --no-wait

Wdrożenie to może potrwać ponad godzinę, aby wdrożyć i skonfigurować wszystkie wystąpienia maszyn wirtualnych. Flaga --no-wait jest używana na końcu poprzedniego polecenia, aby powrócić do wiersza polecenia po zaakceptowaniu wdrożenia szablonu przez platformę Azure. Następnie możesz wyświetlić stan wdrożenia za pomocą polecenia az deployment group show. Poniższy przykład wyświetla stan wdrożenia myMongoDBCluster w grupie zasobów myResourceGroup :

az deployment group show \
    --resource-group myResourceGroup \
    --name myMongoDBCluster \
    --query [properties.provisioningState] \
    --output tsv

Następne kroki

W tych przykładach łączysz się lokalnie z instancją MongoDB z maszyny wirtualnej. Jeśli chcesz nawiązać połączenie z wystąpieniem bazy danych MongoDB z innej maszyny wirtualnej lub sieci, upewnij się, że utworzono odpowiednie reguły sieciowej grupy zabezpieczeń.

Te przykłady umożliwiają wdrożenie podstawowego środowiska bazy danych MongoDB na potrzeby programowania. Zastosuj wymagane opcje konfiguracji zabezpieczeń dla środowiska. Aby uzyskać więcej informacji, zobacz dokumentację zabezpieczeń bazy danych MongoDB.

Aby uzyskać więcej informacji na temat tworzenia szablonów, zobacz Omówienie usługi Azure Resource Manager.

Szablony usługi Azure Resource Manager używają rozszerzenia Custom Script Extension do pobierania i wykonywania skryptów na maszynach wirtualnych (VM). Aby uzyskać więcej informacji, zobacz Using the Azure Custom Script Extension with Linux Virtual Machines (Używanie rozszerzenia niestandardowego skryptu platformy Azure z maszynami wirtualnymi z systemem Linux).