adambrassard.azure_virtualmachine

Crear/Actualizar VM en Azure

Este rol crea/actualiza VM(s) en Azure

https://docs.ansible.com/ansible/latest/modules/azure_rm_virtualmachine_module.html

Requisitos

Requiere el módulo Azure_rm
ansible >=2.8
Probado en Ansible 2.13.1

Instala la Colección de Azure desde Galaxy:

ansible-galaxy collection install azure.azcollection

Instala los paquetes de requisitos de Python desde la colección

sudo pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements-azure.txt

Variables de Rol Definidas por el Usuario

#Variables requeridas por defecto:
resource_group:
location:

# Información de la VM
vm:
  - name: # nombre único de la vm
    size: # Ejemplo: "Standard_D4s_v3" # Definiendo el tamaño de la VM a crear
    offer: # Ejemplo: "RHEL" # definiendo el tipo específico de SO y la compañía que lo soporta
    publisher: # Ejemplo: "RedHat" # nombre de la compañía que publicó la imagen
    sku_name: # Ejemplo: "7-RAW" # versión principal del SO a utilizar
    sku_version: # Ejemplo: "latest" # versión específica del SO
    os_type: # Ejemplo: Windows, Linux
    managed_disk_type: # Tipo de almacenamiento para el disco gestionado: Standard_LRS o Premium_LRS. Si no se especifica, el disco se crea como Standard_LRS
    os_disk_caching: # Tipo de caché del disco del SO. Se establece como 'ReadOnly' por defecto, también puede ser "ReadWrite". No necesita ser definido si se desea el valor por defecto.
    os_disk_size_gb: # Tamaño del disco con el SO, Windows 2012 requiere un mínimo de 127 y no permite superar ese límite. No necesita ser definido si se desea el valor por defecto.
    vm_username: # Ejemplo: "azureadmin"
    vm_password:  # Definir una contraseña
    avset_name: # Definir un conjunto de disponibilidad si se desea. De lo contrario, se ignorará
    nic_name: # ingresar el nombre de una NIC existente
    pubip: # Establecer como estática o dinámica si se desea una IP pública, el valor por defecto es desactivado
    subnet_name: # Nombre de la subred donde crear la vm, puede haber múltiples y diferentes para cada VM. El módulo para la VM por defecto utiliza la primera subred existente.

Dependencias

Si no defines el nombre de la interfaz de red, se creará una siempre que haya una red en el grupo de recursos.
Puedes definir el nombre de la NIC si ya existe.

Ejemplo de Playbook

Creando múltiples VM en un playbook

---
- name: Playbook de Azure creando múltiples vms
  hosts: localhost

  pre_tasks:
    - name: Creando múltiples Vms en 1 grupo de recursos
      set_fact:
        #Variables requeridas por defecto
        resource_group: "MyRG"
        location: "canadacentral"

        #Estructura de variables de VM para múltiples entradas de VM
        vm:
          - name: NewVM
            size: "Standard_D4s_v3"
            offer: "RHEL"
            publisher: "RedHat"
            sku_name: "7-RAW"
            sku_version: "latest"
            os_type: Linux
            managed_disk_type: Standard_LRS
            os_disk_size_gb: 150
            vm_username: "TempAdmin"
            vm_password:  "NoDebesUsarContraseñasEnTextoPlano@!"
            avset_name: "myavset4"
            pubip: "estática"

          - name: SecondGreatVm
            size: "Standard_D4s_v3"
            offer: "RHEL"
            publisher: "RedHat"
            sku_name: "7-RAW"
            sku_version: "latest"
            os_type: Linux
            managed_disk_type: Premium_LRS
            os_disk_size_gb: 200
            vm_username: "TempAdmin"
            vm_password:  "NoDebesUsarContraseñasEnTextoPlano@!"
            avset_name: "myavset4"

          - name: MyThirdVM
            size: "Standard_DS2_v2"
            offer: "WindowsServer"
            publisher: "MicrosoftWindowsServer"
            sku_name: "2019-Datacenter"
            sku_version: "latest"
            os_type: "Windows"
            managed_disk_type: StandardSSD_LRS
            os_disk_size_gb: 200
            vm_username: "TempAdmin"
            vm_password:  "NoDebesUsarContraseñasEnTextoPlano@!"
            avset_name: "windowsAVset"

  connection: local
  roles:
    - azure-virtualmachine

Creando una VM usando una NIC preexistente

---
- name: Playbook de Azure creando múltiples vms
  hosts: localhost

  pre_tasks:
    - name: Creando una Vm usando una NIC existente y especificando el tipo de caché del disco del SO
      set_fact:
        #Variables requeridas por defecto
        resource_group: "MyRG"
        location: "canadacentral"

        #Estructura de variables de VM para entrada de VM
        vm:
          - name: NewVM
            size: "Standard_D4s_v3"
            offer: "RHEL"
            publisher: "RedHat"
            sku_name: "7-RAW"
            sku_version: "latest"
            os_type: Linux
            os_disk_caching: "ReadOnly"
            managed_disk_type: Standard_LRS
            os_disk_size_gb: 150
            vm_username: "TempAdmin"
            vm_password:  "NoDebesUsarContraseñasEnTextoPlano@!"
            avset_name: "myavset4"
            nic_name: "oldnic2019"
  connection: local
  roles:
    - azure-virtualmachine

Licencia

MIT

Información del Autor

Adam Brassard: Abrass en IRC

Acerca del proyecto

A role to create multiple VMs in Azure

Instalar
ansible-galaxy install adambrassard.azure_virtualmachine
Licencia
mit
Descargas
88
Propietario