Udostępnij za pośrednictwem


Jak zainstalować i skonfigurować usługę MongoDB na maszynie wirtualnej z systemem Linux

MongoDB to popularna baza danych NoSQL typu open source o wysokiej wydajności. W tym artykule przedstawiono sposób instalowania i konfigurowania bazy danych MongoDB na maszynie wirtualnej z systemem Linux przy użyciu interfejsu wiersza polecenia platformy Azure. Pokazano przykłady, w których szczegółowo opisano sposób:

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

Baza MongoDB zawiera 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ę do konta platformy Azure przy użyciu polecenia az login.

Utwórz grupę zasobów za pomocą polecenia az group create. Poniższy przykład tworzy grupę 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 umożliwia utworzenie maszyny wirtualnej 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

SSH z maszyną wirtualną przy użyciu własnej nazwy użytkownika i nazwy publicIpAddress wyświetlanej w danych wyjściowych z poprzedniego kroku:

ssh azureuser@<publicIpAddress>

Aby dodać źródła instalacji 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 repo bazy danych MongoDB do edycji, na przykład za pomocą polecenia 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 usługę MongoDB przy użyciu narzędzia yum w następujący sposób:

sudo yum install -y mongodb-org

Domyślnie system SELinux jest wymuszany na obrazach z systemem CentOS, co uniemożliwia dostęp do bazy danych MongoDB. Zainstaluj narzędzia do zarządzania zasadami i skonfiguruj program SELinux, aby umożliwić bazie 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, łącząc się przy użyciu klienta lokalnego mongo :

mongo

Teraz przetestuj wystąpienie bazy danych MongoDB, dodając dane, 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 automatyczne uruchamianie bazy danych MongoDB podczas ponownego uruchamiania systemu:

sudo chkconfig mongod on

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

Podstawowe wystąpienie bazy danych MongoDB można utworzyć na jednej maszynie wirtualnej z systemem CentOS, korzystając z następującego szablonu szybkiego startu platformy Azure GitHub. Ten szablon używa rozszerzenia niestandardowego skryptu dla systemu Linux w celu dodania repozytorium yum do nowo utworzonej maszyny wirtualnej z systemem CentOS, a następnie zainstalowania bazy danych MongoDB.

Aby utworzyć to środowisko, musisz zainstalować najnowszy interfejs wiersza polecenia platformy Azure i zalogować się do konta platformy Azure przy użyciu polecenia az login. Najpierw utwórz grupę zasobów za pomocą polecenia az group create. Poniższy przykład tworzy grupę zasobów o nazwie myResourceGroup w lokalizacji eastus :

az group create --name myResourceGroup --location eastus

Następnie wd wdrażaj szablon bazy danych MongoDB za pomocą polecenia az deployment group create. Po wyświetleniu monitu wprowadź własne unikatowe wartości dla wartości newStorageAccountName, dnsNameForPublicIP oraz nazwy użytkownika i hasła 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

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 je 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 GitHub. Ten szablon jest zgodny z najlepszymi rozwiązaniami w zakresie klastrów podzielonych na fragmenty bazy danych MongoDB w celu zapewnienia nadmiarowości i wysokiej dostępności. Szablon tworzy dwa fragmenty z trzema węzłami w każdym zestawie replik. Tworzony jest również jeden zestaw replik serwera konfiguracji z trzema węzłami oraz dwa serwery routerów Mongos , aby zapewnić spójność aplikacji ze wszystkich 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ą wartością liczby rdzeni na region dla subskrypcji. Otwórz żądanie pomoc techniczna platformy Azure, aby zwiększyć liczbę rdzeni.

Aby utworzyć to środowisko, musisz zainstalować najnowszy interfejs wiersza polecenia platformy Azure i zalogować się do konta platformy Azure przy użyciu polecenia az login. Najpierw utwórz grupę zasobów za pomocą polecenia az group create. Poniższy przykład tworzy grupę zasobów o nazwie myResourceGroup w lokalizacji eastus :

az group create --name myResourceGroup --location eastus

Następnie wd wdrażaj szablon bazy danych MongoDB za pomocą polecenia az deployment group create. W razie potrzeby zdefiniuj własne nazwy zasobów i rozmiary, 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 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 przywrócić kontrolę do wiersza polecenia po zaakceptowaniu wdrożenia szablonu przez platformę Azure. Stan wdrożenia można wyświetlić za pomocą az deployment group show. Poniższy przykład pokazuje 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 połączysz się z wystąpieniem bazy danych MongoDB lokalnie z maszyny wirtualnej. Jeśli chcesz nawiązać połączenie z wystąpieniem bazy danych MongoDB z innej maszyny wirtualnej lub innej sieci, upewnij się, że zostały utworzone odpowiednie reguły sieciowej grupy zabezpieczeń.

Te przykłady wdrażają podstawowe środowisko bazy danych MongoDB na potrzeby tworzenia aplikacji. Zastosuj wymagane opcje konfiguracji zabezpieczeń dla swojego środowiska. Aby uzyskać więcej informacji, zobacz dokumenty dotyczące zabezpieczeń bazy danych MongoDB.

Aby uzyskać więcej informacji na temat tworzenia przy użyciu szablonów, zobacz Omówienie Resource Manager Azure.

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