Creare una macchina virtuale di base in Azure con Ansible

Ansible consente di automatizzare la distribuzione e la configurazione delle risorse nell'ambiente in uso. È possibile usare Ansible per gestire le macchine virtuali in Azure, così come si farebbe con qualsiasi altra risorsa. Questo articolo mostra come creare una macchina virtuale di base con Ansible. È anche possibile capire come Creare un ambiente completo della macchina virtuale con Ansible.

Prerequisiti

Per gestire le risorse di Azure con Ansible, è necessario:

Creare risorse di supporto di Azure

In questo esempio, viene creato un runbook che consente di distribuire una macchina virtuale in un'infrastruttura esistente. Creare prima un gruppo di risorse con az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella posizione eastus:

az group create --name myResourceGroup --location eastus

Creare una rete virtuale per la macchina virtuale con az network vnet create. L'esempio seguente crea una rete virtuale denominata myVnet e una subnet denominata mySubnet:

az network vnet create \
  --resource-group myResourceGroup \
  --name myVnet \
  --address-prefix 10.0.0.0/16 \
  --subnet-name mySubnet \
  --subnet-prefix 10.0.1.0/24

Creare ed eseguire il playbook Ansible

Creare un playbook Ansible denominato azure_create_vm.yml e incollarvi i contenuti seguenti. In questo esempio viene creata una singola macchina virtuale e vengono configurate le credenziali SSH. Immettere i propri dati della chiave pubblica nella coppia key_data come indicato di seguito:

- name: Create Azure VM
  hosts: localhost
  connection: local
  tasks:
  - name: Create VM
    azure_rm_virtualmachine:
      resource_group: myResourceGroup
      name: myVM
      vm_size: Standard_DS1_v2
      admin_username: azureuser
      ssh_password_enabled: false
      ssh_public_keys: 
        - path: /home/azureuser/.ssh/authorized_keys
          key_data: "ssh-rsa AAAAB3Nz{snip}hwhqT9h"
      image:
        offer: CentOS
        publisher: OpenLogic
        sku: '7.3'
        version: latest

Per creare la macchina virtuale con Ansible, eseguire il playbook come segue:

ansible-playbook azure_create_vm.yml

L'output è simile all'esempio seguente che mostra che la macchina virtuale è stata creata correttamente:

PLAY [Create Azure VM] ****************************************************

TASK [Gathering Facts] ****************************************************
ok: [localhost]

TASK [Create VM] **********************************************************
changed: [localhost]

PLAY RECAP ****************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0

Passaggi successivi

Questo esempio crea una macchina virtuale in un gruppo di risorse esistente e con una rete virtuale già distribuita. Per un esempio più dettagliato su come usare Ansible per creare le risorse di supporto, ad esempio le regole per una rete virtuale e per il gruppo di sicurezza di rete, vedere Creare un ambiente completo per la macchina virtuale con Ansible.