La distribuzione di Azure Vm con Terraforma per Risparmiare Denaro

0
234

La maggior parte di noi l’hanno fatto—distribuito temporanea macchine virtuali di Azure. Qualcosa che molti di noi hanno anche fatto dimenticare di rimuovere risorse collegate a quelle macchine virtuali, quando la loro eliminazione. Questo può portare a effetti indesiderati costi verso l’alto per migliaia di dollari, se non stai attento.

In questo articolo, vedremo come distribuire le macchine virtuali di Azure e rimuovere ogni traccia di loro quando abbiamo finito utilizzando Terraforma.

Prerequisiti

È necessario soddisfare alcuni requisiti per poter proseguire in questo articolo:

  • Sono l’Azzurro CLI installato.
  • Essere un amministratore nel caso di un Azzurro Abbonamento (o simili), che permette di utilizzarlo per creare gruppi di risorse e di risorse.

Con questi di mezzo, iniziamo con il download e l’installazione di Terraforma.

L’Installazione Di Terraforma

Terraforma può essere installato in diversi modi. In Windows, il modo più semplice è quello di utilizzare choco:

choco installare terraforma

Su un Macintosh, che è disponibile utilizzando Brew:

brew install terraforma

Ulteriori informazioni sull’installazione di Terraforma è disponibile in Terraforma documentazione.

Supponendo che tutto è andato bene con l’installazione, si può confermare che funziona eseguendo il comando terraforma versione.

Ora che hai confermato che terraforma funziona sul vostro computer, è il momento di autenticare la sottoscrizione di Azure attraverso l’Azzurro CLI.

L’autenticazione

Per l’autenticazione e impostare la sottoscrizione di Azure CLI, è necessario effettuare il login. Aprire un terminale e digitare:

az login

E poi, dopo l’autenticazione, la lista di tutti i tuoi abbonamenti inserendo:

az elenco di account

Se si dispone di diversi abbonamenti disponibili, copiare l’id di sottoscrizione della corretta e inserire:

az account –abbonamento=”COPIED_SUBSCRIPTION_ID”

Ora avete impostato l’Azzurro del CLI per utilizzare l’abbonamento. (Questo è il tipo di abbonamento che terraforma utilizzare in seguito.) È ora il momento di creare il terraforma modello che verrà utilizzato per distribuire il nostro VM.

La creazione del Modello di Terraforma

Il Terraforma modello è un semplice file di testo con il nome del file termina .tf. Ha un JSON-come sintassi, e può essere letto e generato facilmente. Il modello è costituito principalmente da due parti: il provider che gestiscono la comunicazione di servizio in cui si desidera distribuire a), e le risorse che il provider crea.

Iniziamo creando un file chiamato vm.tf in un vuoto dir. Terraforma bisogno di un vuoto dir così che si può scrivere lo stato della configurazione più tardi.

Ora, aprire il file con il vostro editor di testo preferito e aggiungere il fornitore di:

fornitore di “azurerm” {
version = “=2.11.0”
dispone di {}
}

Questo dirà Terraforma che si desidera utilizzare il AzureRM provider (per la creazione di azure risorse), e che dovrebbe essere della versione 2.11. È importante specificare il numero di versione perché la funzionalità tra le diverse versioni possono variare fortemente.

Dopo avere scritto che il file di testo, è il momento di aggiungere il nostro Azure gruppo di risorse. Questo è visto da Terraformare come una risorsa così:

risorsa “azurerm_resource_group” “resourcegroup” {
name = “test-vm”
location = “westus”
tags = {
progetto = “some_test_project”
}
}

Il codice precedente crea un gruppo di risorse denominata “test-vm” che si trova nella parte occidentale degli stati UNITI regione. Inoltre, aggiunge un tag con il nome del progetto su di esso.

Per eseguire una macchina virtuale con successo, abbiamo bisogno anche di una rete. E perché Terraforma è fatto per le Infrastrutture come Codice (IaC), è disponibile come una risorsa così:

risorsa “azurerm_virtual_network” rete” {
name = “${azurerm_resource_group.resourcegroup.name}-rete”
address_space = [“10.0.0.0/16”]
posizione = azurerm_resource_group.resourcegroup.posizione
nome_gruppo_risorsa = azurerm_resource_group.resourcegroup.nome

tags = azurerm_resource_group.resourcegroup.tag
}

Questo crea una rete virtuale. Inoltre, utilizza una variabile il nome del parametro. Se guardate attentamente, vedrete che si riferisce al gruppo di risorse che abbiamo definito in precedenza:

“${azurerm_resource_group.resourcegroup.name}-rete”

Che significa che la rete virtuale sarà dato il nome di test-vm-rete. Facciamo lo stesso per la posizione, il nome del gruppo di risorse, e le tag.

Avanti il prossimo, è il momento di definire la subnet che si terrà il VM, utilizzando gli stessi metodi di utilizzo di variabili come prima:

risorsa “azurerm_subnet” “subnet” {
name = “${azurerm_resource_group.resourcegroup.name}-subnet”
nome_gruppo_risorsa = azurerm_resource_group.resourcegroup.nome
virtual_network_name = azurerm_virtual_network.rete.nome
address_prefix = “10.0.2.0/24”
}

Questo crea una sottorete chiamato test-vm-subnet.

Ora, cerchiamo di definire la scheda di rete che il VM è intenzione di utilizzare così:

risorsa “azurerm_network_interface” “vm1-nic” {
name = “vm1-NIC”
posizione = azurerm_resource_group.resourcegroup.posizione
nome_gruppo_risorsa = azurerm_resource_group.resourcegroup.nome

ip_configuration {
name = “vm1-NicConfiguration”
subnet_id = “${azurerm_subnet.subnet.id}”
private_ip_address_allocation = “static”
private_ip_address = “10.0.2.4”
}

tags = azurerm_resource_group.resourcegroup.tag
}

In questo caso, si usa un indirizzo IP statico, in riferimento alla subnet utilizzando una variabile.

E, in ultimo, ma non meno importante, la definizione della VM:

risorsa “azurerm_virtual_machine” “vm-1” {
name = “vm1”
location = “${azurerm_resource_group.resourcegroup.posizione}”
nome_gruppo_risorsa = “${azurerm_resource_group.resourcegroup.nome}”
network_interface_ids = [“${azurerm_network_interface.vm1-nic.id}”]
vm_size = “Standard_B1ms”

delete_os_disk_on_termination = true

storage_image_reference {
editore = “MicrosoftWindowsServer”
offerta = “WindowsServer”
sku = “2019-Datacenter”
versione = “ultimi”
}
storage_os_disk {
name = “vm1-osdisk”
la memorizzazione nella cache = “read-write”
create_option = “FromImage”
managed_disk_type = “Standard_LRS”
}
os_profile {
nome_computer = “vm-1”
nomeutente_amministratore = “demoadmin”
admin_password = “$om3s3cretPassWord”
}

os_profile_windows_config {
enable_automatic_upgrades = “true”
provision_vm_agent = “true”
}

tags = azurerm_resource_group.resourcegroup.tag
}

Il codice di cui sopra verrà offerta una Azure VM in esecuzione Windows Server 2019, utilizzando le risorse che abbiamo definito in precedenza. Avrà un admin con il nome utente “demoadmin” che ha la password “$om3s3cretPassWord”. Il resto dei parametri sono abbastanza auto-esplicativo, e si può trovare molto di più di themin il Terraforma AzureRM documentazione.

Ora, tutto ciò che rimane è quello di salvare la .tf-file tramite la distribuzione di questo modello di Azure utilizzando Terraforma!

L’avvio e la Distribuzione di Terraforma

Ora che abbiamo il modello in ordine, aprire un terminale e passare alla directory in cui è stato salvato il .tf-file:

cd c:tempterraform

Ora dobbiamo avviare Terraforma. Questo consentirà di scaricare il modulo di risorse per AzureRM e guardare dopo gli errori in .tf-file:

Dopo l’inizializzazione è terminata, si è pronti per applicare il modello di esecuzione di terraforma applicare.

terraforma applicare

Terraforma ora di creare un nuovo gruppo di risorse in Azure, reti, subnet, e, infine, la VM. Stato e di tutte le risorse che ha creato sono memorizzati nel .terraforma cartella della directory di lavoro corrente. Quindi, non rimuovere la cartella se si desidera rimuovere le risorse in modo pulito più tardi!

Dopo che hai finito con il tuo test in vm e lo vogliono distruggere, basta eseguire:

terraforma distruggere

Questo rimuoverà tutti i dischi, schede di rete, subnet, gruppi di risorse, e tale da creare quando si esegue terraforma applicare, e non dovete preoccuparvi di dimenticare di rimuovere i frammenti sinistra in termini di Risorse di Azure.

Conclusione

Utilizzando Terraforma solo per piccoli compiti come questo è incredibilmente pulito. Dimostri di non avere completamente implementata l’Infrastruttura come Codice (IaC) di utilizzare in modo produttivo. Inoltre, porta giù il costo rimuovendo le risorse inutilizzate in Azure. Speriamo che questo ha dimostrato di essere utile a voi, e anche iniziato il viaggio verso IaC!