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:
- Temel bir MongoDB örneğini el ile yükleme ve yapılandırma
- Resource Manager şablonu kullanarak temel bir MongoDB örneği oluşturma
- Resource Manager şablonu kullanarak çoğaltma kümeleriyle karmaşık bir MongoDB Resource Manager oluşturma
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.
- CentOS'ta temel MongoDB örneği - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-centos/azuredeploy.json
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.
- CentOS üzerinde MongoDB Parçalama Kümesi - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-sharding-centos/azuredeploy.json
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.