{"id":2153,"date":"2016-02-04T10:03:32","date_gmt":"2016-02-04T10:03:31","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2153"},"modified":"2025-06-13T16:52:41","modified_gmt":"2025-06-13T23:52:41","slug":"couchbase-with-azure-arm-templates","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-with-azure-arm-templates\/","title":{"rendered":"Couchbase com modelos ARM do Azure"},"content":{"rendered":"<p>Esta postagem do blog descreve como configurar seu pr\u00f3prio cluster do Couchbase usando modelos do Azure Resource Manager, tamb\u00e9m conhecidos como modelos ARM.<\/p>\n<h2 id=\"toc_1\">Pr\u00e9-requisitos:<\/h2>\n<p>Se voc\u00ea quiser tentar fazer isso, precisar\u00e1 de alguns itens:<\/p>\n<ol>\n<li>Azure Subscription, inscreva-se aqui para obter uma <a href=\"https:\/\/azure.microsoft.com\/en-us\/pricing\/free-trial\">teste gratuito<\/a>.<\/li>\n<li>CLI do Azure, instalada em seu sistema, <a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/xplat-cli-install\/\">Como instalar<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/\">Conta do Github<\/a>opcional se voc\u00ea quiser fazer experi\u00eancias com seus pr\u00f3prios modelos de ARM.<\/li>\n<\/ol>\n<h2 id=\"toc_2\">O que voc\u00ea implantar\u00e1<\/h2>\n<p>Esta postagem do blog o guiar\u00e1 pelas etapas necess\u00e1rias para implantar seu pr\u00f3prio cluster do Couchbase Server 4.1 no Microsoft Azure. O tamanho do cluster \u00e9 configur\u00e1vel, mas, no m\u00ednimo, consistir\u00e1 em uma configura\u00e7\u00e3o de cluster de tr\u00eas n\u00f3s com replica\u00e7\u00e3o em um n\u00f3. Voc\u00ea tamb\u00e9m pode escolher o local do data center para o cluster entre todos os locais dispon\u00edveis que podem ser acessados com sua assinatura do Microsoft Azure.<\/p>\n<p>No processo de implanta\u00e7\u00e3o do Couchbase no Azure, voc\u00ea aprender\u00e1 sobre os modelos do Azure Resource Manager e como edit\u00e1-los para atender \u00e0s suas necessidades. Isso permitir\u00e1 que voc\u00ea altere os valores padr\u00e3o no modelo do ARM do Couchbase e tamb\u00e9m entender\u00e1 como usar os modelos do ARM em outros casos ao usar o Microsoft Azure.<\/p>\n<h2 id=\"toc_3\">Modelos do Azure Resource Manager<\/h2>\n<p>O Azure Resource Manager permite que voc\u00ea provisione aplicativos para o Microsoft Azure usando um modelo declarativo. Com um \u00fanico modelo, voc\u00ea pode implantar v\u00e1rios servi\u00e7os juntamente com suas depend\u00eancias. Voc\u00ea tamb\u00e9m tem a op\u00e7\u00e3o de dividir seus modelos de ARM em v\u00e1rios modelos, cada um descrevendo recursos individuais. Voc\u00ea pode usar os mesmos modelos individual ou separadamente para implantar repetidamente seu aplicativo\/recursos durante cada est\u00e1gio do ciclo de vida do aplicativo.<\/p>\n<p>Voc\u00ea pode comparar os modelos ARM com outras tecnologias de descri\u00e7\u00e3o de recursos, como <a href=\"https:\/\/docs.chef.io\/resource_template.html\">chef.io<\/a> ou outros.<\/p>\n<p>Aqui est\u00e1 um exemplo do modelo mais simples de ARM:<\/p>\n<pre><code class=\"language-none\">{\r\n   \"$schema\": \"https:\/\/schema.management.azure.com\/schemas\/2015-01-01\/deploymentTemplate.json#\",\r\n   \"contentVersion\": \"\",\r\n   \"parameters\": {  },\r\n   \"variables\": {  },\r\n   \"resources\": [  ],\r\n   \"outputs\": {  }\r\n}<\/code><\/pre>\n<p>Os modelos do ARM s\u00e3o escritos em JSON com a op\u00e7\u00e3o de usar algumas cadeias de caracteres especialmente formatadas que podem funcionar como refer\u00eancias a vari\u00e1veis e\/ou chamadas de m\u00e9todos.<\/p>\n<p>O snippet de modelo do ARM abaixo mostra como definir uma rede virtual e o uso de <code>vari\u00e1veis<\/code> e <code>par\u00e2metros<\/code> em um modelo ARM.<\/p>\n<pre><code class=\"language-none\">{\r\n      \"apiVersion\": \"2015-05-01-preview\",\r\n      \"type\": \"Microsoft.Network\/virtualNetworks\",\r\n      \"name\": \"[variables('virtualNetworkName')]\",\r\n      \"location\": \"[variables('location')]\",\r\n      \"properties\": {\r\n        \"addressSpace\": {\r\n          \"addressPrefixes\": [\r\n            \"[variables('addressPrefix')]\"\r\n          ]\r\n        },\r\n        \"subnets\": [\r\n          {\r\n            \"name\": \"[variables('subnetName')]\",\r\n            \"properties\": {\r\n              \"addressPrefix\": \"[variables('subnetPrefix')]\"\r\n            }\r\n          }\r\n        ]\r\n      }\r\n    },<\/code><\/pre>\n<p>Voc\u00ea pode ler mais sobre como criar modelos ARM na se\u00e7\u00e3o Microsoft <a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/resource-group-authoring-templates\/\">Documenta\u00e7\u00e3o do Azure<\/a>.<\/p>\n<p>Tamb\u00e9m \u00e9 poss\u00edvel executar c\u00f3digos externos, como scripts de shell etc., para permitir a configura\u00e7\u00e3o e a instala\u00e7\u00e3o personalizadas diretamente em uma m\u00e1quina virtual como parte do processo de configura\u00e7\u00e3o.<\/p>\n<p>Em conjunto, tudo isso permite uma configura\u00e7\u00e3o e uma defini\u00e7\u00e3o muito refinadas dos recursos no Azure.<\/p>\n<p>O snippet do modelo ARM acima foi extra\u00eddo do <a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/tree\/master\/src\/templates\">Modelo ARM do cluster do Couchbase<\/a> no GitHub.<\/p>\n<p>A op\u00e7\u00e3o de executar scripts na VM \u00e9 usada para instalar e configurar o Couchbase Server em cada VM individual e, por fim, configurar o cluster do Couchbase entre os n\u00f3s individuais do Couchbase.<\/p>\n<pre><code class=\"language-none\"> \"vmScripts\": {\r\n      \"scriptsToDownload\": [\r\n        \"[concat(variables('templateBaseUrl'), 'couchbase-azure-install.sh')]\",\r\n        \"[concat(parameters('cbPackageDownloadBase'), parameters('cbPackage'))]\",\r\n        \"[concat(variables('templateBaseUrl'), 'vm-disk-utils-0.1.sh')]\"\r\n      ],\r\n      \"installCommand\": \"[concat('bash couchbase-azure-install.sh -d ', parameters('cbPackage'), ' -n ', parameters('clusterName'), ' -i ', concat(variables('networkSettings').nodesIpPrefix, '-', variables('clusterSpec').clusterSize), ' -a ', variables('machineSettings').adminUsername, ' -p ', variables('machineSettings').adminPassword, ' -r ', variables('clusterSpec').couchbaseRamQuota)]\",\r\n      \"setupCommand\": \"[concat('bash couchbase-azure-install.sh -d ', parameters('cbPackage'), ' -n ', parameters('clusterName'), ' -i ', concat(variables('networkSettings').nodesIpPrefix, '-', variables('clusterSpec').clusterSize), ' -a ', variables('machineSettings').adminUsername, ' -p ', variables('machineSettings').adminPassword, ' -r ', variables('clusterSpec').couchbaseRamQuota, ' -l')]\"\r\n    },\r\n    \"clusterSpec\": \"[variables(concat('tshirtSize', parameters('tshirtSize')))]\"<\/code><\/pre>\n<p>O snippet acima mostra como configurar um script externo como parte do modelo ARM e passar os argumentos da linha de comando, usando <code>par\u00e2metros<\/code>.<\/p>\n<p>Falaremos mais sobre os modelos ARM posteriormente.<\/p>\n<h2 id=\"toc_4\">CLI do Azure<\/h2>\n<p>Na se\u00e7\u00e3o anterior, aprendemos brevemente sobre os modelos ARM e como eles podem ser usados para descrever recursos no Azure. Uma receita para os recursos e suas configura\u00e7\u00f5es individuais, conforme necess\u00e1rio para sua configura\u00e7\u00e3o espec\u00edfica.<\/p>\n<p>Nesta se\u00e7\u00e3o, vamos nos concentrar em como usar o modelo ARM ou, no jarg\u00e3o do Azure, implantar modelos ARM. Voc\u00ea tem algumas op\u00e7\u00f5es de implanta\u00e7\u00e3o, vamos examin\u00e1-las brevemente.<\/p>\n<h3 id=\"toc_5\">Usando o Portal do Azure, op\u00e7\u00e3o 1<\/h3>\n<p>O novo portal do Azure oferece a op\u00e7\u00e3o de fazer a \"implanta\u00e7\u00e3o de modelos\" no pr\u00f3prio portal.<br \/>\nNavegando para: <a href=\"https:\/\/portal.azure.com\/#create\/Microsoft.Template\">Microsoft.Template<\/a><br \/>\nvoc\u00ea pode copiar\/colar seu modelo ARM no portal e execut\u00e1-lo. A interface do usu\u00e1rio suporta at\u00e9 mesmo par\u00e2metros personalizados etc.<\/p>\n<p>A desvantagem \u00e9 que voc\u00ea s\u00f3 pode copiar\/colar um modelo de ARM no portal e todos os recursos precisam estar nesse \u00fanico \"arquivo\".<\/p>\n<h3 id=\"toc_6\">Usando o Portal do Azure, op\u00e7\u00e3o 2<\/h3>\n<p>Esse recurso \u00e9 muito pr\u00f3ximo da \"op\u00e7\u00e3o 1\", mas com algumas diferen\u00e7as. \u00c9 poss\u00edvel instruir o Azure a baixar um modelo de ARM de uma fonte externa, o \u00fanico requisito \u00e9 que todos os recursos (modelos, scritps etc.) estejam dispon\u00edveis publicamente.<\/p>\n<p>Esse recurso pode ser visto e testado no reposit\u00f3rio oficial de modelos de in\u00edcio r\u00e1pido do Microsoft Azure no GitHub, <a href=\"https:\/\/github.com\/Azure\/azure-quickstart-templates\/\">azure-quickstart-templates<\/a><\/p>\n<p>Se voc\u00ea visitar esse modelo espec\u00edfico<a href=\"https:\/\/github.com\/Azure\/azure-quickstart-templates\/tree\/master\/101-vm-simple-windows\">101-vm-simple-windows<\/a> voc\u00ea ver\u00e1 um bot\u00e3o azul (Deploy to Azure). Ao pressionar esse bot\u00e3o, voc\u00ea ser\u00e1 redirecionado para a implanta\u00e7\u00e3o do modelo do portal do Azure, mas agora com o modelo pr\u00e9-colado no portal.<\/p>\n<blockquote><p>Observa\u00e7\u00e3o!<\/p>\n<p>O <a href=\"https:\/\/github.com\/Azure\/azure-quickstart-templates\/\">azure-quickstart-templates<\/a> \u00e9 um \u00f3timo recurso para saber mais sobre os modelos do ARM.<\/p><\/blockquote>\n<h3 id=\"toc_7\">Azure PowerShell<\/h3>\n<p>O Azure PowerShell \u00e9 um m\u00f3dulo para o PowerShell que lhe d\u00e1 acesso para executar comandos contra o Azure a partir do PowerShell. Voc\u00ea pode criar, testar, implantar e gerenciar solu\u00e7\u00f5es e servi\u00e7os, inclusive implanta\u00e7\u00f5es de modelos do ARM.<\/p>\n<p>O PowerShell \u00e9 uma excelente ferramenta de linha de comando para a plataforma Windows e \u00e9 amplamente utilizado por profissionais de TI e desenvolvedores, mas s\u00f3 est\u00e1 dispon\u00edvel no Windows.<\/p>\n<p>Leia mais <a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/powershell-azure-resource-manager\/\">PowerShell<\/a><\/p>\n<p>Mas nem todo mundo executa o Windows! \u00c9 por isso que a Microsoft desenvolveu a ferramenta Azure CLI.<\/p>\n<h3 id=\"toc_8\">CLI do Azure<\/h3>\n<p>A CLI do Azure \u00e9 uma ferramenta de linha de comando para trabalhar com o Microsoft Azure, desenvolvida para Mac, Linux e Windows.<br \/>\nTrabalhar com uma ferramenta de plataforma X, como a CLI do Azure, oferece a grande vantagem de poder usar seu conhecimento em todas as plataformas.<\/p>\n<p>Optei por usar a CLI do Azure, pois ela parece ter o maior p\u00fablico e pode ser usada na maioria das plataformas.<\/p>\n<p>O restante desta postagem pressup\u00f5e o uso da CLI do Azure, mas muitos comandos (se n\u00e3o todos) tamb\u00e9m existem no Azure PowerShell.<\/p>\n<h3 id=\"toc_9\">Instalar a CLI do Azure<\/h3>\n<p>Dependendo de suas prefer\u00eancias, voc\u00ea pode instalar a CLI do Azure a partir de um pacote de instala\u00e7\u00e3o dedicado para sua plataforma ou usando <code>npm<\/code>As instru\u00e7\u00f5es completas podem ser encontradas aqui, <a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/xplat-cli-install\/\">Instalar a CLI do Azure<\/a>.<\/p>\n<p>Supondo que voc\u00ea tenha um Mac e <code>npm<\/code> j\u00e1 estiver instalado em seu sistema, a instala\u00e7\u00e3o da CLI do Azure ser\u00e1 feita em uma \u00fanica linha:<\/p>\n<pre><code class=\"language-none\">sudo npm install -g azure-cli<\/code><\/pre>\n<p>Observe o uso do argumento de instala\u00e7\u00e3o global <code>-g<\/code>Isso garante que a CLI do Azure esteja dispon\u00edvel globalmente no sistema.<\/p>\n<h2 id=\"toc_10\">Usando a CLI do Azure<\/h2>\n<p>Agora que temos a CLI do Azure instalada, vamos seguir em frente e ver como usar a ferramenta para implantar e gerenciar seus recursos do Azure com modelos do ARM.<\/p>\n<h3 id=\"toc_11\">Autentica\u00e7\u00e3o<\/h3>\n<p>Antes de usar a CLI do Azure, precisamos nos autenticar no Microsoft Azure. H\u00e1 v\u00e1rias maneiras de autenticar a CLI no Azure. Para obter um guia detalhado, acesse <a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/xplat-cli-connect\/\">Conectar-se a um Azure<\/a>.<\/p>\n<p>Neste guia, usaremos esse comando:<\/p>\n<pre><code class=\"language-none\">login do azure<\/code><\/pre>\n<p><em>Siga as instru\u00e7\u00f5es na tela para autenticar a CLI do Azure.<\/em><\/p>\n<h3 id=\"toc_12\">Definir a conta de assinatura do Azure a ser usada<\/h3>\n<p>Se voc\u00ea tiver v\u00e1rias assinaturas do Azure, precisar\u00e1 selecionar a assinatura a ser usada.<\/p>\n<p>Use esse comando para listar as assinaturas dispon\u00edveis para a conta:<\/p>\n<pre><code class=\"language-none\">lista de contas do azure<\/code><\/pre>\n<p>Defina a assinatura que voc\u00ea gostaria de usar como sua <code>padr\u00e3o<\/code> para todas as inst\u00e2ncias da inst\u00e2ncia da CLI do Azure.<br \/>\n<code><br \/>\nconta do azure definida como \"Passe do Azure\"<br \/>\n<\/code><\/p>\n<h3 id=\"toc_13\">Definir o modo do Azure Resource Manager<\/h3>\n<p>A CLI do Azure pode funcionar em dois modos diferentes, cl\u00e1ssico e armado. Dependendo do modo selecionado, voc\u00ea estar\u00e1 restrito a trabalhar apenas com esses tipos de recursos (voc\u00ea sempre pode alterar o modo posteriormente).<\/p>\n<p>Estamos trabalhando com modelos do Azure Resource Manager e, portanto, precisamos mudar o modo para <code>bra\u00e7o<\/code>.<\/p>\n<p>O modo padr\u00e3o da CLI do Azure \u00e9 <code>cl\u00e1ssico<\/code>Use o seguinte comando para ativar o modo Azure Resource Manager:<\/p>\n<pre><code class=\"language-none\">modo de configura\u00e7\u00e3o do azure arm<\/code><\/pre>\n<h3 id=\"toc_14\">Criar um grupo de recursos<\/h3>\n<p>Ao trabalhar com o Azure Resource Manager, voc\u00ea sempre trabalha em um \"grupo de recursos\". Voc\u00ea pode pensar em um \"grupo de recursos como um bucket, cont\u00eainer ou \u00e1rea l\u00f3gica para seus recursos. O grupo de recursos encapsula todos os recursos necess\u00e1rios para seu aplicativo e facilita a defini\u00e7\u00e3o de limites entre os recursos.<\/p>\n<p>Um grupo de recursos precisa ser criado em um local (regi\u00e3o do Azure).<\/p>\n<p>Dependendo de sua assinatura, o local dispon\u00edvel pode variar. Para obter a lista completa de sua assinatura, execute o seguinte comando:<\/p>\n<pre><code class=\"language-none\">lista de locais do azure<\/code><\/pre>\n<p>Escolha um local para seu grupo de recursos e crie um grupo de recursos:<\/p>\n<pre><code class=\"language-none\">azure group create -n CB_RESOURCE_GROUP -l \"Eest US\"<\/code><\/pre>\n<h3 id=\"toc_15\">Crie uma implanta\u00e7\u00e3o e aguarde o sucesso<\/h3>\n<p>Com um grupo de recursos criado, podemos \"implantar\" um modelo do ARM no grupo de recursos. Isso criar\u00e1 todos os recursos definidos no modelo do ARM para o grupo de recursos.<\/p>\n<p>O comando abaixo \"enviar\u00e1\" o modelo ARM para o Azure e iniciar\u00e1 a implanta\u00e7\u00e3o dos recursos definidos para o grupo de recursos especificado.<\/p>\n<blockquote><p>Importante!<\/p>\n<p>Esse comando criar\u00e1 um cluster de tr\u00eas n\u00f3s em sua assinatura e, com isso, iniciar\u00e1 o consumo\/uso em sua assinatura do Azure. Dependendo do seu tipo de assinatura, n\u00edvel etc., isso pode gerar cobran\u00e7as na sua assinatura, pelas quais voc\u00ea poder\u00e1 ser cobrado mais tarde!<\/p><\/blockquote>\n<pre><code class=\"language-none\">cria\u00e7\u00e3o de implanta\u00e7\u00e3o de grupo do azure\r\n    --template-uri https:\/\/raw.githubusercontent.com\/martinesmann\/couchbase-azure\/master\/src\/templates\/azuredeploy.json\r\n    -e azuredeploy.parameters.json\r\n    CB_RESOURCE_GROUP\r\n    AZURE_DEPLOYMENT<\/code><\/pre>\n<p>Vou explicar o comando com um pouco mais de detalhes.<br \/>\nO <code><\/code> \u00e9 adicionado apenas para permitir quebras de linha para um comando de linha \u00fanica no console. Isso n\u00e3o \u00e9 espec\u00edfico da CLI do Azure.<\/p>\n<p>A primeira linha instrui a CLI do Azure a criar uma nova implanta\u00e7\u00e3o.<\/p>\n<p>A segunda linha \u00e9 a refer\u00eancia ao modelo ARM. Esse valor pode ser um arquivo local ou (como neste caso) uma refer\u00eancia a um local p\u00fablico.<\/p>\n<p>Os modelos de ARM precisam de par\u00e2metros e vari\u00e1veis, e a terceira linha instrui a CLI do Azure sobre onde encontrar os par\u00e2metros. Voc\u00ea tamb\u00e9m pode adicionar par\u00e2metros diretamente da linha de comando, mas acho mais conveniente usar um arquivo.<br \/>\nVale a pena observar que, ao usar um arquivo de par\u00e2metros, ele precisa ser local, em seu computador. Acho que essa restri\u00e7\u00e3o \u00e9 imposta pela Microsoft para garantir a seguran\u00e7a e evitar o compartilhamento acidental de dados confidenciais.<\/p>\n<p>O tempo de execu\u00e7\u00e3o do comando acima \u00e9 de cerca de 10 a 25 minutos. Portanto, se voc\u00ea precisa de uma x\u00edcara de caf\u00e9, agora \u00e9 um bom momento para tom\u00e1-lo :)<\/p>\n<h3 id=\"toc_16\">IP p\u00fablico para o grupo de recursos<\/h3>\n<p>Depois que a implementa\u00e7\u00e3o for conclu\u00edda e bem-sucedida, \u00e9 hora de inspecionar o resultado.<\/p>\n<p>Voc\u00ea sempre pode navegar at\u00e9 o <a href=\"https:\/\/portal.azure.com\">Portal do Azure<\/a> para ter uma vis\u00e3o do que foi implantado, mas tamb\u00e9m podemos usar a CLI do Azure.<\/p>\n<p>O modelo ARM do Couchbase cria, na verdade, quatro m\u00e1quinas virtuais! Tr\u00eas n\u00f3s do Couchbase combinados em um \u00fanico cluster e uma m\u00e1quina virtual configurada como um <code>caixa de salto<\/code>. A configura\u00e7\u00e3o \u00e9 a pr\u00e1tica recomendada pela Couchbase e garante que o cluster do Couchbase esteja protegido por um firewall e s\u00f3 possa ser acessado \"diretamente\" por meio da m\u00e1quina jump box.<\/p>\n<p>Na verdade, a configura\u00e7\u00e3o de seguran\u00e7a definida pelo modelo ARM \u00e9 realmente elegante, nenhum dos n\u00f3s do Couchbase tem um IP p\u00fablico. Isso significa que n\u00e3o h\u00e1 como acessar os n\u00f3s sem passar pela jump box! Perfeito.<\/p>\n<p>Podemos confirmar isso solicitando \u00e0 CLI do Azure que retorne TODOS os IPs p\u00fablicos atribu\u00eddos ao nosso grupo de recursos.<\/p>\n<pre><code class=\"language-none\">lista de ip-p\u00fablico da rede azure CB_RESOURCE_GROUP<\/code><\/pre>\n<p>Agora podemos usar esse IP para criar um t\u00fanel ssh para o nosso cluster do Couchbase.<\/p>\n<pre><code class=\"language-none\">[SOMENTE MAC]\r\nssh -D 8080 -C -N couchadmin@{ip-address}<\/code><\/pre>\n<blockquote><p>Informa\u00e7\u00f5es:<\/p>\n<p>Se voc\u00ea usou os par\u00e2metros padr\u00e3o, ent\u00e3o:<br \/>\nUsu\u00e1rio: couchadmin<br \/>\nSenha: P@ssword1<\/p><\/blockquote>\n<p>O comando ssh abre uma conex\u00e3o proxy com a m\u00e1quina jumpbox no Azure.<\/p>\n<p>Se voc\u00ea configurar sua conex\u00e3o de rede para usar o proxy para todo o tr\u00e1fego de rede, poderemos nos conectar ao cluster do Couchbase!<\/p>\n<p>[SOMENTE MAC]<br \/>\n<strong>Configure seu proxy:<\/strong><\/p>\n<ol>\n<li>Abra \"Prefer\u00eancias do sistema\"<\/li>\n<li>Navegue at\u00e9 \"Rede\"<\/li>\n<li>Selecione \"Advanced\" (Avan\u00e7ado)<\/li>\n<li>Clique na guia \"Proxies\".<\/li>\n<li>Selecione \"SOCKS Proxy\"\n<ol>\n<li>Endere\u00e7o do servidor SOCKS Proxy: <code>127.0.0.1<\/code><\/li>\n<li>Porto: <code>8080<\/code><\/li>\n<\/ol>\n<\/li>\n<li>Clique em \"OK\".<\/li>\n<li>Clique em \"Apply\" (Aplicar).<\/li>\n<li>Abra seu navegador favorito e navegue at\u00e9 <a href=\"https:\/\/10.0.0.10:8091\">https:\/\/10.0.0.10:8091<\/a><\/li>\n<li>Inspecione a instala\u00e7\u00e3o do Couchbase (usu\u00e1rio: <code>administrador do couchbase<\/code>, senha: <code>P@ssword1<\/code> )<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/raw.githubusercontent.com\/martinesmann\/couchbase-azure\/0e4c7556841261c9a7a1d1fffedeab2d369cb9c8\/content\/images\/Screen%20Shot%202016-01-28%20at%2014.17.34.png\" alt=\"image\" \/><\/p>\n<blockquote><p>Observa\u00e7\u00e3o:<\/p>\n<p>Lembre-se de desfazer as altera\u00e7\u00f5es no proxy quando terminar o teste.<\/p><\/blockquote>\n<h3 id=\"toc_17\">Excluir o grupo de recursos<\/h3>\n<p>Se essa implanta\u00e7\u00e3o foi feita apenas para testar a experi\u00eancia, ent\u00e3o \u00e9 seguro presumir que, em algum momento, voc\u00ea gostaria de desativar o cluster do Couchbase e liberar todos os recursos (desativar o servi\u00e7o e os recursos)<\/p>\n<p>Como todos os recursos foram criados em um \u00fanico grupo de recursos, a exclus\u00e3o desse grupo de recursos derrubar\u00e1 todos os servi\u00e7os e recursos. Usando a CLI do Azure, essa \u00e9 uma tarefa muito f\u00e1cil:<\/p>\n<pre><code class=\"language-none\">grupo azure excluir CB_RESOURCE_GROUP<\/code><\/pre>\n<blockquote><p>Esse comando levar\u00e1 v\u00e1rios minutos para ser conclu\u00eddo.<\/p><\/blockquote>\n<h2 id=\"toc_18\">Modelo ARM do Couchbase<\/h2>\n<p>At\u00e9 o momento, n\u00e3o entramos em muitos detalhes sobre o modelo ARM do Couchbase em si. Nesta se\u00e7\u00e3o, abordaremos alguns dos aspectos mais importantes do modelo e os que s\u00e3o espec\u00edficos do Couchbase.<\/p>\n<p>O c\u00f3digo-fonte completo, os modelos e todas as depend\u00eancias podem ser encontrados no GitHub, <a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\">couchbase-azure<\/a>.<\/p>\n<p>Navegando at\u00e9 o <a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/tree\/master\/src\/templates\">pasta de modelos<\/a>, revelam onze arquivos separados:<\/p>\n<h3 id=\"toc_19\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/azuredeploy.json\">azuredeploy.json<\/a><\/h3>\n<p>O ponto de entrada principal do modelo ARM. Esse modelo define todos os par\u00e2metros e vari\u00e1veis que s\u00e3o usados no modelo. Todos os recursos, desde nichos de rede at\u00e9 tamanhos de m\u00e1quinas virtuais, s\u00e3o especificados nesse arquivo:<\/p>\n<p>Esse snippet define as propriedades de \"t-shirt size medium\".<br \/>\n<code><br \/>\n\"tshirtSizeMedium\": {<br \/>\n\"storageAccountCount\": 1,<br \/>\n\"clusterSizeMinusOne\": 3,<br \/>\n\"lastNodeId\": 3,<br \/>\n\"clusterSize\": 4,<br \/>\n\"couchbaseRamQuota\": 22000,<br \/>\n\"vmSize\": \"Standard_A6\",<br \/>\n\"maxNumberOfDataDisksForVmSizeNotUsedButHereForReference\": 8,<br \/>\n\"vmTemplate\": \"[concat(variables('templateBaseUrl'), 'cluster-nodes-A6.json')]\",<br \/>\n\"backendIPConfigurations\": [<br \/>\n{<br \/>\n\"id\": \"[concat(resourceId('Microsoft.Network\/networkInterfaces', 'nic0'),'\/ipConfigurations\/ipconfig1')]\"<br \/>\n},<br \/>\n{<br \/>\n\"id\": \"[concat(resourceId('Microsoft.Network\/networkInterfaces', 'nic1'),'\/ipConfigurations\/ipconfig1')]\"<br \/>\n},<br \/>\n{<br \/>\n\"id\": \"[concat(resourceId('Microsoft.Network\/networkInterfaces', 'nic2'),'\/ipConfigurations\/ipconfig1')]\"<br \/>\n},<br \/>\n{<br \/>\n\"id\": \"[concat(resourceId('Microsoft.Network\/networkInterfaces', 'nic3'),'\/ipConfigurations\/ipconfig1')]\"<br \/>\n}<br \/>\n]<br \/>\n},<br \/>\n<\/code><\/p>\n<p>Voc\u00ea pode navegar pelo arquivo para ter uma ideia melhor da estrutura e de como as coisas est\u00e3o configuradas.<\/p>\n<h3 id=\"toc_20\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/azuredeploy.parameters.json\">azuredeploy.parameters.json<\/a><\/h3>\n<p>Esse arquivo cont\u00e9m todos os par\u00e2metros padr\u00e3o predefinidos para o modelo. Esse arquivo n\u00e3o \u00e9 obrigat\u00f3rio, mas \u00e9 \u00f3timo ao iniciar uma implementa\u00e7\u00e3o.<\/p>\n<pre><code class=\"language-none\">{\r\n  \"$schema\": \"https:\/\/schema.management.azure.com\/schemas\/2015-01-01\/deploymentParameters.json#\",\r\n  \"contentVersion\": \"1.0.0.0\",\r\n  \"parameters\": {\r\n    \"adminUsername\": {\r\n      \"value\": \"couchadmin\"\r\n    },\r\n    \"adminPassword\": {\r\n      \"value\": \"P@ssword1\"\r\n    },\r\n    \"tshirtSize\": {\r\n      \"value\": \"Small\"\r\n    },\r\n    \"storageAccountNamePrefix\": {\r\n      \"value\": \"f180cbdply92\"\r\n    },\r\n    \"region\": {\r\n      \"value\": \"East Asia\"\r\n    },\r\n    \"virtualNetworkName\": {\r\n      \"value\": \"couchVnet\"\r\n    },\r\n    \"clusterName\": {\r\n      \"value\": \"couchbasefs180\"\r\n    },\r\n    \"jumpbox\": {\r\n      \"value\": \"enabled\"\r\n    }\r\n  }\r\n}<\/code><\/pre>\n<p>Se voc\u00ea quiser alterar a senha, este \u00e9 o local para faz\u00ea-lo.<\/p>\n<h3 id=\"toc_21\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/cluster-nodes-A2.json\">cluster-nodes-A2.json<\/a><\/h3>\n<p>Modelo parcial do ARM para configura\u00e7\u00e3o usando as VMs A2. Esse tamb\u00e9m \u00e9 o arquivo que configura o recurso real da m\u00e1quina virtual, a rede, os discos etc.<\/p>\n<pre><code class=\"language-none\">{\r\n      \"apiVersion\": \"2015-05-01-preview\",\r\n      \"type\": \"Microsoft.Compute\/virtualMachines\",\r\n      \"name\": \"[concat(parameters('machineSettings').machineNamePrefix, parameters('nodeId'))]\",\r\n      \"location\": \"[parameters('commonSettings').region]\",\r\n      \"dependsOn\": [\r\n        \"[concat('Microsoft.Network\/networkInterfaces\/', 'nic', parameters('nodeId'))]\"\r\n      ],\r\n      \"properties\": {\r\n        \"availabilitySet\": {\r\n          \"id\": \"[resourceId('Microsoft.Compute\/availabilitySets', parameters('commonSettings').availabilitySet)]\"\r\n        },\r\n        \"hardwareProfile\": {\r\n          \"vmSize\": \"[parameters('vmSize')]\"\r\n        },\r\n        \"osProfile\": {\r\n          \"computerName\": \"[concat(parameters('machineSettings').machineNamePrefix, parameters('nodeId'))]\",\r\n          \"adminUsername\": \"[parameters('machineSettings').adminUsername]\",\r\n          \"adminPassword\": \"[parameters('machineSettings').adminPassword]\"\r\n        },\r\n        \"storageProfile\": {\r\n          \"imageReference\": \"[parameters('machineSettings').imageReference]\",\r\n          \"osDisk\": {\r\n            \"name\": \"osdisk\",\r\n            \"vhd\": {\r\n              \"uri\": \"[concat('https:\/\/', parameters('storageAccountName'), '.blob.core.windows.net\/',variables('vmStorageAccountContainerName'),'\/', parameters('machineSettings').machineNamePrefix, parameters('nodeId'),'os-disk.vhd')]\"\r\n            },\r\n            \"caching\": \"ReadWrite\",\r\n            \"createOption\": \"FromImage\"\r\n          },\r\n          \"dataDisks\": [\r\n            {\r\n              \"name\": \"datadisk0\",\r\n              \"diskSizeGB\": \"[parameters('machineSettings').dataDiskSize]\",\r\n              \"lun\": 0,\r\n              \"caching\": \"None\",\r\n              \"createOption\": \"Empty\",\r\n              \"vhd\": {\r\n                \"Uri\": \"[concat('https:\/\/', parameters('storageAccountName'), '.blob.core.windows.net\/',variables('vmStorageAccountContainerName'),'\/', parameters('machineSettings').machineNamePrefix, parameters('nodeId'),'dataDisk0' ,'.vhd')]\"\r\n              }\r\n            },\r\n            {\r\n              \"name\": \"datadisk1\",\r\n              \"diskSizeGB\": \"[parameters('machineSettings').dataDiskSize]\",\r\n              \"lun\": 1,\r\n              \"caching\": \"None\",\r\n              \"createOption\": \"Empty\",\r\n              \"vhd\": {\r\n                \"Uri\": \"[concat('https:\/\/', parameters('storageAccountName'), '.blob.core.windows.net\/',variables('vmStorageAccountContainerName'),'\/', parameters('machineSettings').machineNamePrefix, parameters('nodeId') ,'dataDisk1','.vhd')]\"\r\n              }\r\n            },\r\n            {\r\n              \"name\": \"datadisk2\",\r\n              \"diskSizeGB\": \"[parameters('machineSettings').dataDiskSize]\",\r\n              \"lun\": 2,\r\n              \"caching\": \"None\",\r\n              \"createOption\": \"Empty\",\r\n              \"vhd\": {\r\n                \"Uri\": \"[concat('https:\/\/', parameters('storageAccountName'), '.blob.core.windows.net\/',variables('vmStorageAccountContainerName'),'\/', parameters('machineSettings').machineNamePrefix, parameters('nodeId') ,'dataDisk2','.vhd')]\"\r\n              }\r\n            },\r\n            {\r\n              \"name\": \"datadisk3\",\r\n              \"diskSizeGB\": \"[parameters('machineSettings').dataDiskSize]\",\r\n              \"lun\": 3,\r\n              \"caching\": \"None\",\r\n              \"createOption\": \"Empty\",\r\n              \"vhd\": {\r\n                \"Uri\": \"[concat('https:\/\/', parameters('storageAccountName'), '.blob.core.windows.net\/',variables('vmStorageAccountContainerName'),'\/', parameters('machineSettings').machineNamePrefix, parameters('nodeId') ,'dataDisk3','.vhd')]\"\r\n              }\r\n            }\r\n          ]\r\n        },\r\n        \"networkProfile\": {\r\n          \"networkInterfaces\": [\r\n            {\r\n              \"id\": \"[resourceId('Microsoft.Network\/networkInterfaces',concat('nic', parameters('nodeId')))]\"\r\n            }\r\n          ]\r\n        }\r\n      }\r\n    },<\/code><\/pre>\n<h3 id=\"toc_22\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/cluster-nodes-A6.json\">cluster-nodes-A6.json<\/a><\/h3>\n<p>Modelo parcial do ARM para configura\u00e7\u00e3o usando as VMs do A6, o mesmo que o A2.<\/p>\n<h3 id=\"toc_23\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/cluster-nodes-D14.json\">cluster-nodes-D14.json<\/a><\/h3>\n<p>Modelo parcial do ARM para configura\u00e7\u00e3o usando as VMs do D14, igual ao A2.<\/p>\n<h3 id=\"toc_24\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/couchbase-azure-install.sh\">couchbase-azure-install.sh<\/a><\/h3>\n<p>Esse script de shell \u00e9 baixado para fazer o download das m\u00e1quinas virtuais e realiza todo o trabalho necess\u00e1rio para instalar o Couchbase Server nos n\u00f3s e configurar o cluster.<\/p>\n<p>A \u00faltima parte do script \u00e9 respons\u00e1vel pela configura\u00e7\u00e3o do cluster. Se voc\u00ea quiser configurar um <code>balde<\/code> este \u00e9 o local para adicionar a linha de comando.<\/p>\n<pre><code class=\"language-none\">if [ \"$IS_LAST_NODE\" -eq 1 ]; then\r\n    log \"sleep for 4 minutes to wait for the environment to stabilize\"\r\n    sleep 4m\r\n\r\n    log \"Initializing the first node of the cluster on ${MY_IP}.\"\r\n    \/opt\/couchbase\/bin\/couchbase-cli node-init -c \"$MY_IP\":8091 -u \"${ADMINISTRATOR}\" -p \"${PASSWORD}\" --node-init-data-path=\"${COUCHBASE_DATA}\" --node-init-index-path=\"${COUCHBASE_DATA}\"\r\n    log \"Setting up cluster\"\r\n    \/opt\/couchbase\/bin\/couchbase-cli cluster-init -c \"$MY_IP\":8091  -u \"${ADMINISTRATOR}\" -p \"${PASSWORD}\" --cluster-ramsize=\"${RAM_FOR_COUCHBASE}\" --cluster-index-ramsize=256 --services=data,index,query\r\n    log \"Setting autofailover\"\r\n    \/opt\/couchbase\/bin\/couchbase-cli setting-autofailover  -c \"$MY_IP\":8091  -u \"${ADMINISTRATOR}\" -p \"${PASSWORD}\" --enable-auto-failover=1 --auto-failover-timeout=30\r\n\r\n    for (( i = 0; i &lt; ${#MEMBER_IP_ADDRESSES[@]}; i++ )); do\r\n        log \"Adding node ${MEMBER_IP_ADDRESSES[$i]} to cluster\"\r\n        \/opt\/couchbase\/bin\/couchbase-cli server-add -c \"$MY_IP\":8091 -u \"${ADMINISTRATOR}\" -p \"${PASSWORD}\" --server-add=\"${MEMBER_IP_ADDRESSES[$i]}\":8091 --server-add-username=\"${ADMINISTRATOR}\" --server-add-password=\"${PASSWORD}\" --services=data,index,query\r\n    done\r\n\r\n    log \"Reblancing the cluster\"\r\n    \/opt\/couchbase\/bin\/couchbase-cli rebalance -c \"$MY_IP\":8091 -u \"${ADMINISTRATOR}\" -p \"${PASSWORD}\"\r\n    \r\n    \/*OPTIONAL ADD LOGIC TO CONFIGURE A BUCKET*\/\r\nfi\r\nlog \"Install couchbase complete!\"<\/code><\/pre>\n<h3 id=\"toc_25\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/jumpbox-resources-disabled.json\">jumpbox-resources-disabled.json<\/a><\/h3>\n<p>Script de shell a ser usado quando a caixa de salto estiver desativada para a configura\u00e7\u00e3o.<\/p>\n<h3 id=\"toc_26\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/jumpbox-resources-enabled.json\">jumpbox-resources-enabled.json<\/a><\/h3>\n<p>Shell script para configurar a m\u00e1quina de jump box.<\/p>\n<h3 id=\"toc_27\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/metadata.json\">metadados.json<\/a><\/h3>\n<p>Arquivo usado para manter o controle das altera\u00e7\u00f5es, herdado da fonte original em couchbase-on-ubuntu.<\/p>\n<h3 id=\"toc_28\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/shared-resources.json\">shared-resources.json<\/a><\/h3>\n<p>Recurso compartilhado, herdado da fonte original em couchbase-on-ubuntu.<\/p>\n<h3 id=\"toc_29\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/vm-disk-utils-0.1.sh\">vm-disk-utils-0.1.sh<\/a><\/h3>\n<p>Utilit\u00e1rio de disco do Linux.<\/p>\n<h2 id=\"toc_30\">Ver\u00e3o<\/h2>\n<p>Nesta postagem do blog, voc\u00ea aprendeu sobre os modelos do Azure Resource Manager (ARM) e seu uso. Tamb\u00e9m abordamos brevemente os detalhes espec\u00edficos do modelo ARM do Couchbase e as v\u00e1rias maneiras de interagir com o Azure e implantar modelos ARM.<\/p>\n<p>Feliz implanta\u00e7\u00e3o!<\/p>","protected":false},"excerpt":{"rendered":"<p>This blog post describes how to set up your own Couchbase Cluster using Azure Resource Manager templates, aka ARM templates. Prerequisites: If you would like to try this you will need a few things: Azure Subscription, sign-up here for a [&hellip;]<\/p>","protected":false},"author":54,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816],"tags":[1245,1590,1673],"ppma_author":[9027],"class_list":["post-2153","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","tag-cloud","tag-microsoft","tag-microsoft-azure"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase with Azure ARM Templates - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-with-azure-arm-templates\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase with Azure ARM Templates\" \/>\n<meta property=\"og:description\" content=\"This blog post describes how to set up your own Couchbase Cluster using Azure Resource Manager templates, aka ARM templates. Prerequisites: If you would like to try this you will need a few things: Azure Subscription, sign-up here for a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-with-azure-arm-templates\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-04T10:03:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-13T23:52:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/raw.githubusercontent.com\/martinesmann\/couchbase-azure\/0e4c7556841261c9a7a1d1fffedeab2d369cb9c8\/content\/images\/Screen%20Shot%202016-01-28%20at%2014.17.34.png\" \/>\n<meta name=\"author\" content=\"Martin Esmann, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Martin Esmann, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/\"},\"author\":{\"name\":\"Martin Esmann, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2795ae2ee44b46479499d6fa514b7ee8\"},\"headline\":\"Couchbase with Azure ARM Templates\",\"datePublished\":\"2016-02-04T10:03:31+00:00\",\"dateModified\":\"2025-06-13T23:52:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/\"},\"wordCount\":2298,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"cloud\",\"Microsoft\",\"Microsoft Azure\"],\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/\",\"name\":\"Couchbase with Azure ARM Templates - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-02-04T10:03:31+00:00\",\"dateModified\":\"2025-06-13T23:52:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase with Azure ARM Templates\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2795ae2ee44b46479499d6fa514b7ee8\",\"name\":\"Martin Esmann, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/af6bbf8de1ed87c78bfbc9ac7454a4fc\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c8aea3b717146fd35e6b3c299ba8b331987c90cb1996f0141f0c6de29aa04c4b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c8aea3b717146fd35e6b3c299ba8b331987c90cb1996f0141f0c6de29aa04c4b?s=96&d=mm&r=g\",\"caption\":\"Martin Esmann, Developer Advocate, Couchbase\"},\"description\":\"Martin Esmann is a .Net Developer Advocate at Couchbase. He is a passionate developer with a deep focus on Microsoft Technologies like .NET.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/martin-esmann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase with Azure ARM Templates - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-with-azure-arm-templates\/","og_locale":"pt_BR","og_type":"article","og_title":"Couchbase with Azure ARM Templates","og_description":"This blog post describes how to set up your own Couchbase Cluster using Azure Resource Manager templates, aka ARM templates. Prerequisites: If you would like to try this you will need a few things: Azure Subscription, sign-up here for a [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-with-azure-arm-templates\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-02-04T10:03:31+00:00","article_modified_time":"2025-06-13T23:52:41+00:00","og_image":[{"url":"https:\/\/raw.githubusercontent.com\/martinesmann\/couchbase-azure\/0e4c7556841261c9a7a1d1fffedeab2d369cb9c8\/content\/images\/Screen%20Shot%202016-01-28%20at%2014.17.34.png","type":"","width":"","height":""}],"author":"Martin Esmann, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Martin Esmann, Developer Advocate, Couchbase","Est. reading time":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/"},"author":{"name":"Martin Esmann, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2795ae2ee44b46479499d6fa514b7ee8"},"headline":"Couchbase with Azure ARM Templates","datePublished":"2016-02-04T10:03:31+00:00","dateModified":"2025-06-13T23:52:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/"},"wordCount":2298,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["cloud","Microsoft","Microsoft Azure"],"articleSection":["Couchbase Server"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/","name":"Couchbase with Azure ARM Templates - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-02-04T10:03:31+00:00","dateModified":"2025-06-13T23:52:41+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase with Azure ARM Templates"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2795ae2ee44b46479499d6fa514b7ee8","name":"Martin Esmann, defensor dos desenvolvedores, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/af6bbf8de1ed87c78bfbc9ac7454a4fc","url":"https:\/\/secure.gravatar.com\/avatar\/c8aea3b717146fd35e6b3c299ba8b331987c90cb1996f0141f0c6de29aa04c4b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c8aea3b717146fd35e6b3c299ba8b331987c90cb1996f0141f0c6de29aa04c4b?s=96&d=mm&r=g","caption":"Martin Esmann, Developer Advocate, Couchbase"},"description":"Martin Esmann \u00e9 um defensor do desenvolvedor .Net na Couchbase. Ele \u00e9 um desenvolvedor apaixonado com foco profundo em tecnologias Microsoft como .NET.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/martin-esmann\/"}]}},"authors":[{"term_id":9027,"user_id":54,"is_guest":0,"slug":"martin-esmann","display_name":"Martin Esmann, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/c8aea3b717146fd35e6b3c299ba8b331987c90cb1996f0141f0c6de29aa04c4b?s=96&d=mm&r=g","author_category":"","last_name":"Esmann","first_name":"Martin","job_title":"","user_url":"","description":"Martin Esmann \u00e9 um defensor do desenvolvedor .Net na Couchbase. Ele \u00e9 um desenvolvedor apaixonado com foco profundo em tecnologias Microsoft como .NET."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/54"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2153"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2153\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2153"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}