Cómo replicar máquinas virtuales en una región diferente con Azure Site Recovery Service
October 7, 2020myCloudDoor nombra a Antonio Domene como Vicepresidente de Desarrollo de Negocio en España
November 13, 2020Cuando queremos conectar a nuestras máquinas virtuales en un entorno Azure podemos hacerlo de muchas maneras, pero quizá una de las más seguras es con el uso de Azure Bastion. Bastion es un servicio PaaS que nos permite conectar a nuestras maquinas virtuales mediante SSH y RDP desde nuestro portal de Azure. Bastion se aprovisiona en una red virtual y nos dará acceso a cualquier maquina virtual que forme parte de ella.
En este tutorial voy a mostrar como desplegar un Bastion usando el portal con una Logic App con un trigger de HTTP para automatizar su creación y eliminación, y con ello ahorrar costes.
Preparación estructura
Red virtual
Necesitaremos una red virtual con una subnet llamada AzureBastionSubnet a la que Bastion se conectara en su despliegue
Ip publica para Bastion
El siguiente paso será crear un recurso nuevo que sea una ip publica de tipo Standard ya que Basic no es soportada para Bastion.
Configuración de automatización
Como ultimo recurso, crearemos una Logic App que usaremos para automatizar.
Permisos para Logic app
Dentro de la Logic app recién creada, iremos al apartado Identity.
Después activaremos la casilla de Status y guardamos.
Pincharemos en Azure Role Assignments y Add role Assignments. Desde aquí le daremos los permisos necesarios que necesita para crear y editar recursos.
Elegimos nuestra suscripción y el rol de Contributor.
Diseñando el esquema.
Nos iremos a Logic App Designer. Elegiremos una plantilla en blanco.
Buscaremos por el connector “Request” y elegimos “When a HTTP request is received”.
En el cuadro donde pone “Request Body JSON Schema”, pegaremos lo siguiente:
Esto servirá para para definir el input que necesita recibir tanto para crear como para eliminar el recurso.
Si en la petición pone Action:Deploy, esta actuara dependiendo de la acción que hayamos configurado.
Le daremos a “Next step” y elegiremos Control-Switch-Action. Esto nos permitirá que podamos elegir que queremos hacer cuando hagamos la petición.
Le damos un nombre, por ejemplo deploy, y le agregamos una acción. Buscamos Azure Resource Manager y Create or Update a template deployment.
Nos pedirá que los loguemos.
Después rellenamos con los datos en nuestro caso.
Añadimos dos nuevos parámetros que serán Parameters y Template Content.
En el parámetro Parameters, rellenaremos lo siguiente con nuestros datos.
En el parámetro Template Content, pegaremos lo siguiente:
Veremos algo así:
Pinchamos en + para agregar una nueva fase.
En el nuevo paso, lo nombramos como Delete y buscamos http. Pinchamos en HTTP.
Elegimos en Method, DELETE. La url será la direccion de donde estará el Bastion Hosst, una vez que se haya creado. Usaremos la siguiente direccion con nuestros datos.
https://management.azure.com/subscriptions/$Sub_ID/resourceGroups/$nombreRG/providers/Microsoft.Network/bastionHosts/$nombreBastion}/?api-version=2020-06-01
Añadimos un nuevo parámetro llamado “Authentication”. Lo configuramos de esta manera.
Comprobación.
Guardamos y usaremos el siguiente script de Powershell para triggear la Logic App.
$ResquestURL será la url de nuestro trigger http, es decir:
Donde pone Deploy en $body, podríamos cambiarlo por Delete para elegir la segunda fase y eliminar el Bastion.
Si al usar el script no se despliega, podemos ir a Run History de la Logic App o Activity Log del grupo de recursos donde lo desplegamos para ver posibles errores.
Si tienes alguna duda puedes preguntarnos a través de un comentario o de nuestro formulario.