Cómo instalar PowerShell de código abierto en Linux VM en Azure

Cuando piensa en "software de código abierto", es posible que Microsoft no sea el primer nombre que le venga a la mente. Pero, de hecho, la compañía de software más grande del mundo se está volviendo cada vez más de código abierto. GitHub "Estado de Actovers 2016" El informe muestra que Microsoft es la organización con el mayor número de miembros de código abierto. ¿Quién hubiera pensado eso hace unos años? también casi uno de cada tres Las máquinas virtuales basadas en Azure ejecutan Linux.

Uno de los desarrollos más emocionantes es la reciente decisión de Microsoft fuente abierta su popular PowerShell. Mientras tanto, parecía que el artículo sobre las máquinas virtuales Linux alojadas en Azure se había retrasado mucho. Y como soy un gran fan de PowerShell, decidí combinar los dos. La característica de código abierto le permite instalar PowerShell en múltiples distribuciones de Linux. Esto incluye CentOS y Ubuntu, así como Mac OS. Le mostraré cómo implementar PowerShell en una instancia de Linux usando plantillas ARM y extensiones de secuencias de comandos personalizadas.

Entonces, ¿cómo empezamos?

Índice

Azure Resource Manager o plantilla de PowerShell?

Como soy un gran admirador de las plantillas de Azure Resource Manager, usaré la plantilla para implementar una máquina virtual Linux. La diferencia entre PowerShell y las plantillas es simple pero muy importante. Las denominadas plantillas ARM usan un estilo declarativo para implementar recursos en Azure. PowerShell, por otro lado, tiene un estilo imperativo. La principal ventaja de las plantillas es que puedo implementar fácilmente múltiples instancias y/o recursos simplemente describiéndolos. Luego puedo compartirlos con mis colegas en el repositorio GIT o en cualquier otro lugar. Estas plantillas son muy buenas para compartir y para entornos más amplios.

Nota: Microsoft y los miembros de la comunidad resumen las muchas plantillas de inicio rápido en Github que puede encontrar aquí.

PowerShell es excelente para implementaciones muy rápidas de máquinas virtuales simples. Por otro lado, cuando se trata de entornos grandes y complejos, a menudo no es mi primera herramienta. Tu kilometraje puede ser diferente, pero en mi caso me siento más cómodo con las plantillas. Sin embargo, ¿puede seguir usando PowerShell para implementar la plantilla usando Nueva implementación de AzureRmResourceGroup cmdlet. O configure todo solo con PowerShell.

Construcción de plantillas

Crear una plantilla es bastante simple y fácil porque puede usar una plantilla editable de inicio rápido. Para hacerlo aún más fácil, compartiré contigo mi plantilla para que no tengas que crearla desde cero. Como uso una plantilla, necesito definirla en un entorno declarativo, y aquí se vuelve difícil. En mi caso, no quería crear varias plantillas para cada distribución de Linux admitida y, en su lugar, usar solo una plantilla. El problema: cuando se trabaja con plantillas, declaraciones imperativas como "si el estado"son imposible.

Pero necesito algo como esto".si el estado"para personalizar la imagen de la máquina virtual, ya que cambia significativamente de CentOS a Ubuntu. Aquí las variables complejas son tu amiga. La siguiente figura muestra la definición de una variable llamada Configuración de imagen. Esta variable consta de varios niveles y subniveles, cada uno de los cuales representa un sistema operativo diferente.

La verdadera magia, sin embargo, ocurre al definir una variable configuración de imagen actual. Esta variable combina otra variable (configuración de imagen) con parámetro (sistema operativo). Ahora veamos el parámetro:

parámetro: sistema operativo

Los valores permitidos para un parámetro tienen el mismo nombre que un posible parámetro de configuración en una variable configuración de imagen tan variable configuración de imagen actual se completará dinámicamente con los datos seleccionados en el parámetro. Es decir:

CUÁNDO el usuario selecciona "Ubuntu14"como su sistema operativo, ENTONCES variable configuración de imagen actual se llenará como Configuración de imagen.Ubuntu14.

Y aquí tenemos nuestras necesidades. si el estado!! Variables editor, propuesta y sku se configurará de acuerdo con el sistema operativo seleccionado.

Ampliación de un script personalizado

Siempre que desee automatizar por completo la instalación de software durante la fase de implementación o mantenimiento, es mejor utilizar una extensión de secuencia de comandos personalizada. Si bien existen otras funciones, como Azure Automatización combinada con DSC, las extensiones de secuencias de comandos personalizadas son gratuitas y fáciles de configurar. La instalación automática de PowerShell en un host Linux es realmente muy simple.

Especialmente el equipo de PowerShell andrei schwartzmaier, lo hizo increíblemente fácil de instalar. desarrollaron un guion bash un script que escanea automáticamente su sistema operativo e instala PowerShell correctamente. Entonces, lo único que te queda es señalar el script, que también está publicado en Github, en tu plantilla. El enlace podría ser algo como esto:

Instale el script de Powershell

Y eso es lo que tienes. Ahora tiene las herramientas para crear su propia caja de Linux en Azure usando PowerShell.

Guarde la plantilla en Azure

Hace relativamente poco tiempo, puede almacenar plantillas en el mismo Azure sin usar un repositorio GIT externo, como lo hice antes. Si quieres que sea más seguro, sólo tienes que hacer clic en más servicios en el Portal Azul. Luego busque las "plantillas" y tendrá la opción de agregar una plantilla como se muestra a continuación:

Guardar plantilla en Azure

A continuación, puede implementar o editar fácilmente su plantilla directamente en Azure.

Expanda o edite la plantilla en Azure

¡Eso es! Así que aproveche la generosidad de Microsoft e instale el nuevo PowerShell de código abierto en sus máquinas virtuales Linux alojadas en Azure.

Foto: Pexels


Artículos de interés

Subir

Si continuas utilizando este sitio aceptas el uso de cookies. Más información