{"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\/es\/couchbase-with-azure-arm-templates\/","title":{"rendered":"Couchbase con plantillas Azure ARM"},"content":{"rendered":"<p>Esta entrada del blog describe c\u00f3mo configurar tu propio cl\u00faster Couchbase utilizando plantillas de Azure Resource Manager, tambi\u00e9n conocidas como plantillas ARM.<\/p>\n<h2 id=\"toc_1\">Requisitos previos:<\/h2>\n<p>Si quieres intentarlo, necesitar\u00e1s algunas cosas:<\/p>\n<ol>\n<li>Azure Subscription, reg\u00edstrese aqu\u00ed para obtener una <a href=\"https:\/\/azure.microsoft.com\/en-us\/pricing\/free-trial\">prueba gratuita<\/a>.<\/li>\n<li>Azure CLI, instalado en su sistema, <a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/xplat-cli-install\/\">c\u00f3mo instalar<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/\">Cuenta Github<\/a>opcional si desea experimentar con sus propias plantillas ARM.<\/li>\n<\/ol>\n<h2 id=\"toc_2\">Qu\u00e9 desplegar\u00e1<\/h2>\n<p>Esta entrada de blog te guiar\u00e1 a trav\u00e9s de los pasos necesarios para desplegar tu propio cluster de Couchbase Server 4.1 en Microsoft Azure. El tama\u00f1o del cl\u00faster es configurable pero, como m\u00ednimo, consistir\u00e1 en un cl\u00faster de tres nodos con replicaci\u00f3n a un nodo. Tambi\u00e9n puedes elegir la ubicaci\u00f3n del centro de datos para tu cl\u00faster entre todas las ubicaciones disponibles accesibles con tu suscripci\u00f3n a Microsoft Azure.<\/p>\n<p>En el proceso de despliegue de Couchbase en Azure aprender\u00e1s sobre las plantillas de Azure Resource Manager y c\u00f3mo editarlas para adaptarlas a tus necesidades. Esto te permitir\u00e1 cambiar los valores por defecto en la plantilla ARM de Couchbase y tambi\u00e9n entender c\u00f3mo usar las plantillas ARM en otros casos al usar Microsoft Azure.<\/p>\n<h2 id=\"toc_3\">Plantillas de Azure Resource Manager<\/h2>\n<p>Azure Resource Manager le permite aprovisionar aplicaciones en Microsoft Azure utilizando una plantilla declarativa. Con una sola plantilla, puede desplegar m\u00faltiples servicios junto con sus dependencias. Tambi\u00e9n tiene la opci\u00f3n de dividir sus plantillas ARM en varias plantillas que describen recursos individuales. Puede utilizar las mismas plantillas individualmente o por separado para desplegar repetidamente su aplicaci\u00f3n\/recursos durante cada etapa del ciclo de vida de la aplicaci\u00f3n.<\/p>\n<p>Puede comparar las plantillas ARM con otras tecnolog\u00edas de descripci\u00f3n de recursos como <a href=\"https:\/\/docs.chef.io\/resource_template.html\">chef.io<\/a> u otros.<\/p>\n<p>He aqu\u00ed un ejemplo de la plantilla ARM m\u00e1s sencilla:<\/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>Las plantillas ARM est\u00e1n escritas en JSON con la opci\u00f3n de utilizar algunas cadenas especialmente formateadas que pueden funcionar como referencias a variables y\/o llamadas a m\u00e9todos.<\/p>\n<p>El siguiente fragmento de plantilla ARM muestra c\u00f3mo definir una red virtual y el uso de <code>variables<\/code> y <code>par\u00e1metros<\/code> en una plantilla 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>Puede obtener m\u00e1s informaci\u00f3n sobre la creaci\u00f3n de plantillas ARM en el sitio web de Microsoft <a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/resource-group-authoring-templates\/\">Documentaci\u00f3n de Azure<\/a>.<\/p>\n<p>Tambi\u00e9n es posible ejecutar c\u00f3digo externo, como shell scripts, etc., para permitir una configuraci\u00f3n e instalaci\u00f3n personalizadas directamente en una m\u00e1quina virtual como parte del proceso de instalaci\u00f3n.<\/p>\n<p>En combinaci\u00f3n, todo esto permite una configuraci\u00f3n muy detallada de los recursos en Azure.<\/p>\n<p>El fragmento de plantilla ARM anterior se ha extra\u00eddo del archivo <a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/tree\/master\/src\/templates\">Plantilla Couchbase Cluster ARM<\/a> en GitHub.<\/p>\n<p>La opci\u00f3n de ejecutar scripts en la m\u00e1quina virtual se utiliza para instalar y configurar Couchbase Server en cada m\u00e1quina virtual individual y, por \u00faltimo, para configurar el cl\u00faster de Couchbase entre los nodos individuales de 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>El fragmento anterior muestra c\u00f3mo configurar un script externo como parte de la plantilla ARM y pasar argumentos de l\u00ednea de comandos, utilizando <code>par\u00e1metros<\/code>.<\/p>\n<p>M\u00e1s adelante hablaremos de las plantillas ARM.<\/p>\n<h2 id=\"toc_4\">Azure CLI<\/h2>\n<p>En la secci\u00f3n anterior hemos aprendido brevemente acerca de las plantillas ARM y c\u00f3mo se pueden utilizar para describir los recursos en Azure. Una receta para los recursos y sus configuraciones individuales seg\u00fan sea necesario para su configuraci\u00f3n espec\u00edfica.<\/p>\n<p>En esta secci\u00f3n nos centraremos en c\u00f3mo utilizar la plantilla ARM o en la jerga de Azure, Desplegar plantillas ARM. Usted tiene algunas opciones de despliegue, vamos a caminar brevemente a trav\u00e9s de ellos.<\/p>\n<h3 id=\"toc_5\">Mediante Azure Portal, opci\u00f3n 1<\/h3>\n<p>El nuevo portal Azure le ofrece la opci\u00f3n de realizar un \"despliegue de plantillas\" desde el propio portal.<br \/>\nNavegando hasta: <a href=\"https:\/\/portal.azure.com\/#create\/Microsoft.Template\">Microsoft.Plantilla<\/a><br \/>\npuede copiar\/pegar su plantilla ARM en el portal y ejecutarla. La interfaz de usuario admite incluso par\u00e1metros personalizados, etc.<\/p>\n<p>El inconveniente es que s\u00f3lo se puede copiar\/pegar una plantilla ARM en el portal y todos los recursos tienen que estar con este \u00fanico \"archivo\".<\/p>\n<h3 id=\"toc_6\">Usando Azure Portal, opci\u00f3n 2<\/h3>\n<p>Esta caracter\u00edstica es muy parecida a la \"opci\u00f3n 1\" pero con algunas diferencias. Es posible ordenar a Azure que descargue una plantilla ARM de una fuente externa, el \u00fanico requisito es que todos los recursos (plantillas, scritps, etc.) est\u00e9n disponibles p\u00fablicamente.<\/p>\n<p>Esta caracter\u00edstica puede verse y probarse desde el repositorio Microsoft Official Azure Quick Start Templates en GitHub, <a href=\"https:\/\/github.com\/Azure\/azure-quickstart-templates\/\">azure-quickstart-templates<\/a><\/p>\n<p>Si visita esta plantilla espec\u00edfica<a href=\"https:\/\/github.com\/Azure\/azure-quickstart-templates\/tree\/master\/101-vm-simple-windows\">101-vm-simple-windows<\/a> ver\u00e1 un bot\u00f3n azul (Deploy to Azure). Al pulsar este bot\u00f3n, se le redirigir\u00e1 a la implementaci\u00f3n de la plantilla del portal de Azure, pero ahora con la plantilla pegada previamente en el portal.<\/p>\n<blockquote><p>\u00a1Atenci\u00f3n!<\/p>\n<p>En <a href=\"https:\/\/github.com\/Azure\/azure-quickstart-templates\/\">azure-quickstart-templates<\/a> es un gran recurso para aprender m\u00e1s sobre las plantillas ARM.<\/p><\/blockquote>\n<h3 id=\"toc_7\">Azure PowerShell<\/h3>\n<p>Azure PowerShell es un m\u00f3dulo para PowerShell que le permite ejecutar comandos en Azure desde PowerShell. Puede crear, probar, desplegar y gestionar soluciones y servicios, incluidos los despliegues de plantillas de ARM.<\/p>\n<p>PowerShell es una gran herramienta de l\u00ednea de comandos para la plataforma Windows y ampliamente utilizada tanto por profesionales de TI como por desarrolladores, pero s\u00f3lo est\u00e1 disponible en Windows.<\/p>\n<p>Seguir leyendo <a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/powershell-azure-resource-manager\/\">PowerShell<\/a><\/p>\n<p>Pero no todo el mundo utiliza Windows. Por eso Microsoft ha desarrollado la herramienta Azure CLI.<\/p>\n<h3 id=\"toc_8\">Azure CLI<\/h3>\n<p>Azure CLI es una herramienta de l\u00ednea de comandos para trabajar con Microsoft Azure; creada para Mac, Linux y Windows.<br \/>\nTrabajar con una herramienta x-plataforma como Azure CLI te da el gran beneficio de que puedes usar tus conocimientos en todas las plataformas.<\/p>\n<p>He optado por utilizar Azure CLI, ya que parece tener la audiencia m\u00e1s amplia y se puede utilizar en la mayor\u00eda de las plataformas.<\/p>\n<p>El resto de este post asumir\u00e1 el uso de Azure CLI, pero muchos (si no todos) los comandos tambi\u00e9n existen en Azure PowerShell.<\/p>\n<h3 id=\"toc_9\">Instalar Azure CLI<\/h3>\n<p>Dependiendo de sus preferencias, puede instalar Azure CLI desde un paquete de instalaci\u00f3n dedicado para su plataforma o utilizando <code>npm<\/code>Las instrucciones completas se encuentran aqu\u00ed, <a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/xplat-cli-install\/\">Instalar Azure CLI<\/a>.<\/p>\n<p>Suponiendo que tenga un Mac y <code>npm<\/code> ya est\u00e1 instalado en su sistema, entonces la instalaci\u00f3n de Azure CLI es una sola l\u00ednea:<\/p>\n<pre><code class=\"language-none\">sudo npm install -g azure-cli<\/code><\/pre>\n<p>Tenga en cuenta el uso del argumento de instalaci\u00f3n global <code>-g<\/code>Esto asegura que Azure CLI est\u00e1 disponible globalmente en el sistema.<\/p>\n<h2 id=\"toc_10\">Uso de Azure CLI<\/h2>\n<p>Ahora que tenemos Azure CLI instalado vamos a seguir adelante y ver c\u00f3mo utilizar la herramienta para implementar y administrar sus recursos de Azure con plantillas ARM.<\/p>\n<h3 id=\"toc_11\">Autenticaci\u00f3n<\/h3>\n<p>Antes de usar Azure CLI necesitamos autenticarnos con Microsoft Azure. Hay varias maneras de autenticar la CLI con Azure, para una gu\u00eda detallada visita <a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/xplat-cli-connect\/\">Conectarse a un servidor Azure<\/a>.<\/p>\n<p>En esta gu\u00eda utilizaremos este comando:<\/p>\n<pre><code class=\"language-none\">inicio de sesi\u00f3n en azure<\/code><\/pre>\n<p><em>Siga las instrucciones en pantalla para autenticar la CLI de Azure.<\/em><\/p>\n<h3 id=\"toc_12\">Establecer la cuenta de suscripci\u00f3n Azure a utilizar<\/h3>\n<p>Si tiene varias suscripciones a Azure, debe seleccionar la suscripci\u00f3n que desea utilizar.<\/p>\n<p>Use este comando para listar las suscripciones disponibles para la cuenta:<\/p>\n<pre><code class=\"language-none\">azure account list<\/code><\/pre>\n<p>Establezca la suscripci\u00f3n que desea utilizar como su <code>por defecto<\/code> para todas las instancias de la instancia de Azure CLI.<br \/>\n<code><br \/>\nazure account set \"Azure Pass\"<br \/>\n<\/code><\/p>\n<h3 id=\"toc_13\">Establecer el modo de Azure Resource Manager<\/h3>\n<p>Azure CLI puede trabajar en dos modos diferentes, classic y arm. Dependiendo del modo que selecciones estar\u00e1s restringido a trabajar s\u00f3lo con esos tipos de recursos (siempre puedes cambiar de modo m\u00e1s adelante).<\/p>\n<p>Estamos trabajando con plantillas de Azure Resource Manager y por lo tanto necesitamos cambiar el modo a <code>brazo<\/code>.<\/p>\n<p>El modo por defecto para Azure CLI es <code>cl\u00e1sico<\/code>Utilice el siguiente comando para activar el modo Azure Resource Manager:<\/p>\n<pre><code class=\"language-none\">azure config mode arm<\/code><\/pre>\n<h3 id=\"toc_14\">Crear un grupo de recursos<\/h3>\n<p>Cuando se trabaja con Azure Resource Manager siempre se trabaja dentro de un \"grupo de recursos\". Puede pensar en un \"grupo de recursos como un cubo, contenedor o \u00e1rea l\u00f3gica para sus recursos. El grupo de recursos encapsula todos los recursos necesarios para su aplicaci\u00f3n y facilita la definici\u00f3n de l\u00edmites entre recursos.<\/p>\n<p>Es necesario crear un grupo de recursos dentro de una ubicaci\u00f3n (regi\u00f3n Azure).<\/p>\n<p>Dependiendo de su suscripci\u00f3n, la ubicaci\u00f3n disponible puede variar. Para obtener la lista completa de su suscripci\u00f3n, ejecute el siguiente comando:<\/p>\n<pre><code class=\"language-none\">azure location list<\/code><\/pre>\n<p>Elige una ubicaci\u00f3n para tu grupo de recursos y crea un 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\">Crear un despliegue y esperar a que tenga \u00e9xito<\/h3>\n<p>Con un grupo de recursos creado podemos \"desplegar\" una plantilla ARM al grupo de recursos. Esto crear\u00e1 todos los recursos definidos en la plantilla ARM al grupo de recursos.<\/p>\n<p>El siguiente comando \"enviar\u00e1\" la plantilla ARM a Azure e iniciar\u00e1 el despliegue de los recursos definidos en el grupo de recursos especificado.<\/p>\n<blockquote><p>\u00a1Importante!<\/p>\n<p>Este comando crear\u00e1 un cl\u00faster de tres nodos en su suscripci\u00f3n y con ello iniciar\u00e1 el consumo\/uso de su suscripci\u00f3n Azure. Dependiendo de su tipo de suscripci\u00f3n, nivel, etc., esto puede suponer cargos en su suscripci\u00f3n que se le facturar\u00e1n m\u00e1s adelante.<\/p><\/blockquote>\n<pre><code class=\"language-none\">azure group deployment create \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>Perm\u00edtanme explicar el comando con un poco m\u00e1s de detalle.<br \/>\nEn <code><\/code> s\u00f3lo se a\u00f1ade para permitir saltos de l\u00ednea para un comando de una sola l\u00ednea en la consola. Esto no es espec\u00edfico de Azure CLI.<\/p>\n<p>La primera l\u00ednea indica a Azure CLI que cree un nuevo despliegue.<\/p>\n<p>La segunda l\u00ednea es la referencia a la plantilla ARM, este valor puede ser tanto un archivo local o (como en este caso) una referencia a una ubicaci\u00f3n p\u00fablica.<\/p>\n<p>ARM plantillas necesitan par\u00e1metros y variables, la tercera l\u00ednea instruye Azure CLI d\u00f3nde encontrar los par\u00e1metros. Tambi\u00e9n puede agregar par\u00e1metros directamente desde la l\u00ednea de comandos, pero me parece m\u00e1s conveniente utilizar un archivo.<br \/>\nVale la pena se\u00f1alar que cuando se utiliza un archivo de par\u00e1metros tiene que ser local, en su m\u00e1quina. Supongo que Microsoft impone esta restricci\u00f3n para garantizar la seguridad y evitar que se compartan accidentalmente datos confidenciales.<\/p>\n<p>El tiempo de ejecuci\u00f3n del comando anterior es de unos 10-25 minutos. Por lo tanto, si usted necesita una taza de caf\u00e9, ahora ser\u00eda un buen momento para conseguir que :)<\/p>\n<h3 id=\"toc_16\">IP p\u00fablica para el grupo de recursos<\/h3>\n<p>Una vez que el despliegue se ha completado con \u00e9xito, es hora de inspeccionar el resultado.<\/p>\n<p>Siempre puede navegar hasta el <a href=\"https:\/\/portal.azure.com\">Portal Azure<\/a> para obtener una visi\u00f3n de lo que se ha desplegado, pero tambi\u00e9n podemos utilizar Azure CLI.<\/p>\n<p>La plantilla Couchbase ARM crea en realidad \u00a1cuatro m\u00e1quinas virtuales! Tres nodos Couchbase combinados en un \u00fanico cluster y una m\u00e1quina virtual configurada como un <code>caja de salto<\/code>. La configuraci\u00f3n es la mejor pr\u00e1ctica recomendada por Couchbase y asegura que el Cluster Couchbase est\u00e1 protegido detr\u00e1s de un firewall y s\u00f3lo se puede acceder \"directamente\" a trav\u00e9s de la m\u00e1quina de la caja de salto.<\/p>\n<p>En realidad la configuraci\u00f3n de seguridad establecida por la plantilla ARM es realmente elegante, ninguno de los nodos Couchbase tiene una IP p\u00fablica. \u00a1Esto significa que no hay manera de acceder a los nodos sin pasar por la caja de salto! Perfecto.<\/p>\n<p>Podemos confirmarlo pidiendo a Azure CLI que nos devuelva TODAS las IP p\u00fablicas asignadas para nuestro grupo de recursos.<\/p>\n<pre><code class=\"language-none\">azure network public-ip list CB_RESOURCE_GROUP<\/code><\/pre>\n<p>Ahora podemos usar esta IP para crear un t\u00fanel ssh a nuestro Cluster Couchbase.<\/p>\n<pre><code class=\"language-none\">[MAC ONLY]\r\nssh -D 8080 -C -N couchadmin@{ip-address}<\/code><\/pre>\n<blockquote><p>Info:<\/p>\n<p>Si ha utilizado los par\u00e1metros por defecto:<br \/>\nUsuario: couchadmin<br \/>\nContrase\u00f1a: P@ssword1<\/p><\/blockquote>\n<p>El comando ssh abre una conexi\u00f3n proxy a la m\u00e1quina de la caja de salto en Azure.<\/p>\n<p>Si configuras tu conexi\u00f3n de red para usar el proxy para todo el tr\u00e1fico de red, \u00a1podemos conectarnos al Cluster Couchbase!<\/p>\n<p>[S\u00d3LO MAC]<br \/>\n<strong>configura tu proxy:<\/strong><\/p>\n<ol>\n<li>Abra \"Preferencias del Sistema\".<\/li>\n<li>Vaya a \"Red\".<\/li>\n<li>Seleccione \"Avanzado\".<\/li>\n<li>Haga clic en la pesta\u00f1a \"Proxies\".<\/li>\n<li>Seleccione \"Proxy SOCKS\".\n<ol>\n<li>Direcci\u00f3n del servidor proxy SOCKS: <code>127.0.0.1<\/code><\/li>\n<li>Puerto: <code>8080<\/code><\/li>\n<\/ol>\n<\/li>\n<li>Haz clic en \"Aceptar\".<\/li>\n<li>Haga clic en \"Aplicar\".<\/li>\n<li>Abra su navegador favorito y vaya a <a href=\"https:\/\/10.0.0.10:8091\">https:\/\/10.0.0.10:8091<\/a><\/li>\n<li>Inspeccione su instalaci\u00f3n de Couchbase (usuario: <code>couchbaseadmin<\/code>contrase\u00f1a: <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>Nota:<\/p>\n<p>Recuerde deshacer los cambios en el proxy cuando termine de probar.<\/p><\/blockquote>\n<h3 id=\"toc_17\">Eliminar el grupo de recursos<\/h3>\n<p>Si este despliegue se hizo s\u00f3lo para probar la experiencia, entonces es seguro asumir que en alg\u00fan momento en el tiempo le gustar\u00eda quitar el cl\u00faster Couchbase y liberar todos los recursos (tomar el servicio y los recursos hacia abajo)<\/p>\n<p>Dado que todos los recursos se crearon en un \u00fanico grupo de recursos, la eliminaci\u00f3n de ese grupo de recursos eliminar\u00e1 todos los servicios y recursos. Usando Azure CLI, esto es una tarea muy f\u00e1cil:<\/p>\n<pre><code class=\"language-none\">azure group delete CB_RESOURCE_GROUP<\/code><\/pre>\n<blockquote><p>Este comando tardar\u00e1 varios minutos en completarse.<\/p><\/blockquote>\n<h2 id=\"toc_18\">Plantilla Couchbase ARM<\/h2>\n<p>Hasta ahora no hemos entrado en muchos detalles sobre la plantilla ARM de Couchbase en s\u00ed. En esta secci\u00f3n tocaremos algunos de los aspectos m\u00e1s importantes de la plantilla y los que son espec\u00edficos para Couchbase.<\/p>\n<p>El c\u00f3digo fuente completo, las plantillas y todas las dependencias se pueden encontrar en GitHub, <a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\">couchbase-azure<\/a>.<\/p>\n<p>Navegar hasta el <a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/tree\/master\/src\/templates\">carpeta de plantillas<\/a>...revelan once archivos 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>El punto de entrada principal para la plantilla ARM. Esta plantilla define todos los par\u00e1metros y variables que se utilizan en la plantilla. Todos los recursos, desde los nics de red hasta el tama\u00f1o de las m\u00e1quinas virtuales, se especifican en este archivo:<\/p>\n<p>Este fragmento define las propiedades de \"camiseta talla mediana\".<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>Puedes navegar por el archivo para hacerte una mejor idea de la estructura y de c\u00f3mo est\u00e1n configuradas las cosas.<\/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>Este archivo contiene todos los par\u00e1metros predefinidos para la plantilla. Este archivo no es obligatorio, pero es muy \u00fatil cuando se inicia un despliegue.<\/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>Si desea cambiar la contrase\u00f1a, este es el lugar para hacerlo.<\/p>\n<h3 id=\"toc_21\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/cluster-nodes-A2.json\">cluster-nodos-A2.json<\/a><\/h3>\n<p>Plantilla ARM parcial para la configuraci\u00f3n utilizando las m\u00e1quinas virtuales A2. Este es tambi\u00e9n el archivo que configura los recursos reales de la m\u00e1quina virtual, red, 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-nodos-A6.json<\/a><\/h3>\n<p>Plantilla parcial ARM para configuraci\u00f3n utilizando las VM's A6, igual que A2.<\/p>\n<h3 id=\"toc_23\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/cluster-nodes-D14.json\">cluster-nodos-D14.json<\/a><\/h3>\n<p>Plantilla parcial ARM para configuraci\u00f3n utilizando las VM's D14, igual que 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>Este script de shell se descarga para descargar las m\u00e1quinas virtuales y hace todo el trabajo necesario para instalar Couchbase Server en los nodos y configurar el Cluster.<\/p>\n<p>La \u00faltima parte del script se encarga de configurar el cl\u00faster. Si desea configurar un <code>cubo<\/code> este es el lugar para a\u00f1adir la l\u00ednea de comandos.<\/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-recursos-desactivados.json<\/a><\/h3>\n<p>Shell script a utilizar cuando la caja de salto est\u00e1 desactivada para la configuraci\u00f3n.<\/p>\n<h3 id=\"toc_26\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/jumpbox-resources-enabled.json\">jumpbox-recursos-habilitados.json<\/a><\/h3>\n<p>Shell script para configurar la 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\">metadatos.json<\/a><\/h3>\n<p>Archivo utilizado para realizar un seguimiento de los cambios, heredado de la fuente original en couchbase-on-ubuntu.<\/p>\n<h3 id=\"toc_28\"><a href=\"https:\/\/github.com\/martinesmann\/couchbase-azure\/blob\/master\/src\/templates\/shared-resources.json\">recursos-compartidos.json<\/a><\/h3>\n<p>Recurso compartido, heredado de la fuente original en 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>Utilidad de disco Linux.<\/p>\n<h2 id=\"toc_30\">Verano<\/h2>\n<p>En esta entrada de blog aprendiste sobre las plantillas Azure Resource Manager (ARM) y su uso. Tambi\u00e9n abordamos brevemente los detalles espec\u00edficos de la plantilla ARM de Couchbase y las diversas formas en que puedes interactuar con Azure e implementar plantillas ARM.<\/p>\n<p>\u00a1Feliz despliegue!<\/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\/es\/couchbase-with-azure-arm-templates\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\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\/es\/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\":\"es\",\"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\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@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\/es\/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\/es\/couchbase-with-azure-arm-templates\/","og_locale":"es_MX","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\/es\/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":"es","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":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-with-azure-arm-templates\/"]}]},{"@type":"ImageObject","inLanguage":"es","@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":"El blog de Couchbase","description":"Couchbase, la base de datos 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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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 del Desarrollador, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@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 es desarrollador de .Net en Couchbase. Es un desarrollador apasionado con un profundo enfoque en tecnolog\u00edas Microsoft como .NET.","url":"https:\/\/www.couchbase.com\/blog\/es\/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 es desarrollador de .Net en Couchbase. Es un desarrollador apasionado con un profundo enfoque en tecnolog\u00edas Microsoft como .NET."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/54"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2153"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2153\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2153"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}