Aracılığıyla paylaş


Linux VM'de MongoDB'yi yükleme ve yapılandırma

MongoDB popüler bir açık kaynak, yüksek performanslı NoSQL veritabanıdır. Bu makalede, Azure CLI ile Bir Linux VM'sinde MongoDB'yi yükleme ve yapılandırma açıklanmıştır. Aşağıdakilerin nasıl ayrıntılı bir şekilde iş ayrıntılarına sahip olduğu örnekler gösterilmektedir:

Vm'de MongoDB'yi el ile yükleme ve yapılandırma

MongoDB , Red Hat / CentOS, SUSE, Ubuntu ve Debian gibi Linux dağıtımları için yükleme yönergeleri sağlar. Aşağıdaki örnek bir CentOS VM oluşturur. Bu ortamı oluşturmak için az login kullanarak bir Azure hesabında en son Azure CLI'nin yüklü ve oturum açmış olması gerekir.

az group create ile bir kaynak grubu oluşturun. Aşağıdaki örnek eastus konumda myResourceGroup adlı bir kaynak grubu oluşturur:

az group create --name myResourceGroup --location eastus

az vm create ile bir VM oluşturun. Aşağıdaki örnek, SSH ortak anahtar kimlik doğrulamasını kullanarak azureuser adlı kullanıcıyla myVM adlı bir VM oluşturur

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

Kendi kullanıcı adınızı ve önceki adımda listelenen çıkışı publicIpAddress kullanarak VM'ye SSH yapın:

ssh azureuser@<publicIpAddress>

MongoDB yükleme kaynaklarını eklemek için aşağıdaki gibi bir yum depo dosyası oluşturun:

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

Düzenlemek için Veya gibi MongoDB repo dosyasını vi açın nano. Aşağıdaki satırları ekleyin:

[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

Yum kullanarak MongoDB'yi aşağıdaki gibi yükleyin:

sudo yum install -y mongodb-org

Varsayılan olarak SELinux, MongoDB'ye erişmenizi engelleyen CentOS görüntülerine uygulanır. İlke yönetimi araçlarını yükleyin ve SELinux'u MongoDB'nin varsayılan TCP bağlantı noktası 27017 üzerinde çalışmasına izin verecek şekilde aşağıdaki gibi yapılandırın:

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

MongoDB hizmetini aşağıdaki gibi başlatabilirsiniz:

sudo service mongod start

Yerel istemciyi kullanarak bağlanarak MongoDB yüklemesini mongo doğrulayın:

mongo

Şimdi biraz veri ekp ardından arayarak MongoDB örneğini test etmek için:

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

İsterseniz, Sistem yeniden başlatma sırasında MongoDB'yi otomatik olarak başlatılacak şekilde yapılandırabilirsiniz:

sudo chkconfig mongod on

Şablon kullanarak CentOS üzerinde temel MongoDB örneği oluşturma

Aşağıdaki Azure hızlı başlangıç şablonunu kullanarak tek bir CentOS VM'de temel bir MongoDB örneği GitHub. Bu şablon, linux için Özel Betik uzantısını kullanarak yeni oluşturduğunuz CentOS VM'ye bir yum deposu ekler ve ardından MongoDB'yi yükleyin.

Bu ortamı oluşturmak için az login kullanarak bir Azure hesabında en son Azure CLI'nin yüklü ve oturum açmış olması gerekir. Öncelikle az group create komutuyla bir kaynak grubu oluşturun. Aşağıdaki örnek eastus konumda myResourceGroup adlı bir kaynak grubu oluşturur:

az group create --name myResourceGroup --location eastus

Ardından az deployment group create ile MongoDB şablonunu dağıtın. İstendiğinde newStorageAccountName, dnsNameForPublicIP ve yönetici kullanıcı adı ile parolası için kendi benzersiz değerlerinizi girin:

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

VM'nizin genel DNS adresini kullanarak VM'de oturum açma. az vm show ile genel DNS adresini görüntüebilirsiniz:

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

Kendi kullanıcı adınızı ve genel DNS adresinizi kullanarak VM'nize SSH yapın:

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

Aşağıdaki gibi yerel istemciyi kullanarak bağlanarak mongo MongoDB yüklemesini doğrulayın:

mongo

Şimdi aşağıdaki gibi veri ekleyerek ve arayarak örneği test edersiniz:

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

Şablon kullanarak CentOS üzerinde karmaşık bir MongoDB Parçalı Kümesi oluşturma

Aşağıdaki Azure hızlı başlangıç şablonunu kullanarak karmaşık bir MongoDB parçalı kümesi GitHub. Bu şablon, yedeklilik ve yüksek kullanılabilirlik sağlamak için MongoDB parçalı küme en iyi uygulamalarını izler. Şablon, her çoğaltma kümesinde üç düğüm ile iki parça oluşturur. Üç düğümlü bir yapılandırma sunucusu çoğaltma kümesi de oluşturulur ve parçalar genelindeki uygulamalara tutarlılık sağlamak için iki mongos yönlendirici sunucusu oluşturulur.

Uyarı

Bu karmaşık MongoDB parçalı kümenin dağıtımı için 20'den fazla çekirdek gerekir ve bu genellikle abonelik için bölge başına varsayılan çekirdek sayısıdır. Çekirdek Azure desteği için bir istek açın.

Bu ortamı oluşturmak için az login kullanarak bir Azure hesabında en son Azure CLI'nin yüklü ve oturum açmış olması gerekir. Öncelikle az group create komutuyla bir kaynak grubu oluşturun. Aşağıdaki örnek eastus konumda myResourceGroup adlı bir kaynak grubu oluşturur:

az group create --name myResourceGroup --location eastus

Ardından az deployment group create ile MongoDB şablonunu dağıtın. mongoAdminUsername, sizeOfDataDiskInGB ve configNodeVmSize gibi gerektiğinde kendi kaynak adlarınızı ve boyutlarınızı tanımlayın:

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

Bu dağıtımın tüm VM örneklerini dağıtması ve yapılandırması bir saatten uzun sürer. Şablon --no-wait dağıtımı Azure platformu tarafından kabul edildiktan sonra komut istemine denetim dönmek için önceki komutun sonunda bayrağı kullanılır. Daha sonra az deployment group show ile dağıtım durumunu görüntüebilirsiniz. Aşağıdaki örnek, myResourceGroup kaynak grubunda myMongoDBCluster dağıtımının durumunu görüntüler:

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

Sonraki adımlar

Bu örneklerde, MongoDB örneğine VM'den yerel olarak bağlanacağız. Başka bir VM veya ağdan MongoDB örneğine bağlanmak için uygun Ağ Güvenlik Grubu kurallarının oluşturulmuş olduğundan emin olun.

Bu örnekler geliştirme amacıyla temel MongoDB ortamını dağıtır. Ortamınız için gerekli güvenlik yapılandırma seçeneklerini uygulama. Daha fazla bilgi için mongoDB güvenlik belgelerine bakın.

Şablonları kullanarak oluşturma hakkında daha fazla bilgi için bkz. Azure Resource Manager genel bakış.

Azure Resource Manager şablonları, VM'lerinize betik indirmek ve yürütmek için Özel Betik Uzantısını kullanır. Daha fazla bilgi için bkz. Azure Özel Betik Uzantısını Linux Sanal Makineler.