Uso de herramientas de automatización de la infraestructura con máquinas virtuales de Azure

Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado flexibles ✔️ Conjuntos de escalado uniformes

Para crear y administrar máquinas virtuales (VM) de Azure de manera coherente a escala, suele ser deseable alguna forma de automatización. Existen muchas herramientas y soluciones que le permiten automatizar la implementación de toda la infraestructura de Azure y el ciclo de vida de administración. En este artículo se detallan algunas de las herramientas de automatización de la infraestructura que puede usar en Azure. Estas herramientas se adaptan normalmente a alguno de los siguientes enfoques:

Terraform

Terraform es una herramienta de automatización que le permite definir y crear una infraestructura de Azure completa con un lenguaje de formato de plantilla única: el lenguaje de configuración de HashiCorp (HCL). Con Terraform, puede definir las plantillas que automatizan el proceso de creación de los recursos de la red, del almacenamiento y de la máquina virtual para una solución de aplicación determinada. Puede utilizar las plantillas de Terraform existentes para otras plataformas con Azure para garantizar la coherencia y simplificar la implementación de la infraestructura sin necesidad de convertirlas a una plantilla de Azure Resource Manager.

Obtenga información sobre cómo:

Azure Automation

Azure Automation usa runbooks para procesar un conjunto de tareas en las máquinas virtuales de su elección. Azure Automation se usa para administrar las máquinas virtuales existentes en lugar de para crear una infraestructura. Azure Automation puede ejecutarse en máquinas virtuales Linux y Windows, así como en máquinas virtuales o físicas locales con una instancia de Hybrid Runbook Worker. Los runbooks se pueden almacenar en un repositorio de control de código fuente como GitHub. Estos runbooks se pueden ejecutar manualmente o según una programación definida.

Azure Automation también proporciona un servicio Desired State Configuration (DSC) que le permite crear definiciones para configurar un conjunto determinado de máquinas virtuales. DSC garantiza que se aplica la configuración necesaria y que la máquina virtual sigue siendo coherente. DSC de Automatización de Azure se puede ejecutar tanto en máquinas virtuales Windows como Linux.

Obtenga información sobre cómo:

Azure DevOps Services

Azure DevOps Services es un conjunto de herramientas que le ayudarán a compartir y realizar un seguimiento del código, usar compilaciones automatizadas y crear una canalización de desarrollo e integración continua (CI/CD) completa. Azure DevOps Services se integra con Visual Studio y otros editores para facilitar el uso. Azure DevOps Services también puede crear y configurar máquinas virtuales de Azure e implementar código en ellas.

Más información sobre:

Plantilla del Administrador de recursos de Azure

Azure Resource Manager es el servicio de implementación y administración para Azure. Proporciona una capa de administración que le permite crear, actualizar y eliminar recursos de su suscripción de Azure. Se usan las características de administración, como el control de acceso, la auditoría y las etiquetas, para proteger y organizar los recursos después de la implementación.

Obtenga información sobre cómo:

Bicep

Bicep es un lenguaje específico de dominio (DSL) que usa una sintaxis declarativa para implementar recursos de Azure. En un archivo Bicep, defina la infraestructura que desea implementar en Azure y, a continuación, use ese archivo durante todo el ciclo de vida de desarrollo para implementar repetidamente la infraestructura. Los recursos se implementan de forma coherente.

Comience con el inicio rápido.

Cloud-Init

cloud-init es un enfoque ampliamente usado para personalizar una máquina virtual Linux la primera vez que se arranca. Puede usar cloud-init para instalar paquetes y escribir archivos o para configurar los usuarios y la seguridad. Dado que se llama a cloud-init durante el proceso de arranque inicial, no se necesitan pasos adicionales ni agentes para aplicar la configuración. Para más información sobre cómo dar formato correctamente a sus archivos #cloud-config, consulte el sitio de documentación de cloud-init. Los archivos #cloud-config son archivos de texto codificados en base64.

cloud-init también funciona entre distribuciones. Por ejemplo, no use apt-get install o yum install para instalar un paquete. En su lugar, puede definir una lista de paquetes que se van a instalar. Cloud-init usará automáticamente la herramienta de administración de paquetes nativos para la distribución de Linux (distro) que seleccione.

Estamos trabajando incansablemente con nuestros asociados de distribuciones de Linux certificadas para disponer de imágenes con cloud-init habilitado en Azure Marketplace. Estas imágenes harán que las implementaciones y configuraciones de cloud-init funcionen perfectamente con las máquinas virtuales y Virtual Machine Scale Sets. Obtener información más detallada sobre cloud-init en Azure:

DSC de PowerShell

PowerShell Desired State Configuration (DSC) es una plataforma de administración que se usa para definir la configuración de las máquinas de destino. DSC también se puede utilizar en Linux mediante el servidor de infraestructura de administración abierta (OMI).

Las configuraciones de DSC definen lo que se debe instalar en una máquina y cómo configurar el host. Un motor de administración de configuración local (LCM) se ejecuta en cada nodo de destino que procesa las acciones requeridas en función de las configuraciones insertadas. Un servidor de extracción es un servicio web que se ejecuta en un host central para almacenar las configuraciones de DSC y los recursos asociados. El servidor de extracción se comunica con el motor de LCM en cada host de destino para proporcionar las configuraciones necesarias e informar sobre el cumplimiento.

Obtenga información sobre cómo:

Extensión de script personalizado de Azure

La extensión de script personalizado para Linux o Windows descarga y ejecuta scripts en máquinas virtuales de Azure. Puede utilizar la extensión al crear una máquina virtual o en cualquier momento después de empezar a usarla.

Los scripts se pueden descargar desde Azure Storage o desde cualquier ubicación pública como, por ejemplo, un repositorio de GitHub. Con la extensión de script personalizado, puede escribir scripts en cualquier lenguaje que se pueda ejecutar en la máquina virtual de origen. Estos scripts se pueden usar para instalar aplicaciones o configurar la máquina virtual según sea necesario. Para proteger las credenciales, la información confidencial como las contraseñas se puede almacenar en una configuración protegida. Estas credenciales solo se descifran dentro de la máquina virtual.

Obtenga información sobre cómo:

Ansible

Ansible es un motor de automatización para la administración de configuraciones, la creación de máquinas virtuales o la implementación de aplicaciones. Ansible utiliza un modelo sin agente, normalmente con claves SSH, para autenticar y administrar las máquinas de destino. Las tareas de configuración se definen en cuadernos de estrategias, con una serie de módulos de Ansible disponibles para llevar a cabo tareas específicas. Para más información, consulte el funcionamiento de Ansible.

Obtenga información sobre cómo:

Chef

Chef es una plataforma de automatización que ayuda a definir cómo se configura, implementa y administra la infraestructura. Entre los componentes adicionales se incluye Chef Habitat para la automatización del ciclo de vida de la aplicación, en lugar de la infraestructura, y Chef InSpec, que ayuda a automatizar el cumplimiento normativo con los requisitos de seguridad o de directiva. Los clientes de Chef se instalan en las máquinas de destino, con uno o varios servidores de Chef centrales que almacenan y administran las configuraciones. Para más información, consulte la introducción a Chef.

Obtenga información sobre cómo:

Puppet

Puppet es una plataforma de automatización preparada para la empresa que controla el proceso de entrega e implementación de la aplicación. Los agentes se instalan en las máquinas de destino para permitir a Puppet Master ejecutar los manifiestos que definen la configuración deseada de la infraestructura y las máquinas virtuales de Azure. Puppet puede integrarse con otras soluciones como Jenkins y GitHub para obtener un flujo de trabajo de DevOps mejorado. Para más información, consulte el funcionamiento de Puppet.

Obtenga información sobre cómo:

Packer

Packer automatiza el proceso de compilación cuando se crea una imagen personalizada de la máquina virtual en Azure. Puede usar Packer para definir el sistema operativo y ejecutar scripts posteriores a la configuración que permiten personalizar la máquina virtual según sus necesidades específicas. Una vez terminada la configuración, la máquina virtual se captura como una imagen de Manage Disks. Packer automatiza el proceso para crear la máquina virtual de origen, la red y los recursos de almacenamiento, ejecutar los scripts de configuración y, finalmente, crear la imagen de la máquina virtual.

Obtenga información sobre cómo:

Jenkins

Jenkins es un servidor de integración continua que ayuda a implementar y probar aplicaciones, y a crear canalizaciones automatizadas para la entrega de código. Existen cientos de complementos para ampliar la plataforma principal de Jenkins y también lo puede integrar con muchos otros productos y soluciones mediante los webhooks. Puede instalar Jenkins de forma manual en una máquina virtual de Azure, ejecutar Jenkins desde dentro de un contenedor de Docker o utilizar una imagen de Azure Marketplace que se haya creado previamente.

Obtenga información sobre cómo:

Pasos siguientes

Hay muchas opciones diferentes para utilizar herramientas de automatización de infraestructura en Azure. Es libre de elegir la solución que mejor se adapte a sus necesidades y entorno. Para empezar a trabajar y probar algunas de las herramientas integradas en Azure, vea cómo automatizar la personalización de una máquina virtual Linux o Windows.