Marvin Pascale

[B.Log]

26 Febbraio 2020

Terraform AzureRM 2.0

Hashicorp

Introduzione

“Use Infrastructure as Code to provision and manage any cloud, infrastructure, or service”

Così esordisce Hashicorp quando presenta Terraform.

Non ho mai parlato di questo software ma ne sono letteralmente innamorato. Terraform permette di trasformare un’intera infrastruttura in codice. Questo significa che possiamo costruire interi progetti infrastrutturali e poterli ricreare con semplicità.

Questo è un esempio di definizione di una istanza ec2 su aws.

provider "aws" {
 region = "us-west-2"
}

data "aws_ami" "ubuntu" {
 most_recent = true

 filter {
 name = "name"
 values = ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"]
}

filter {
 name = "virtualization-type"
 values = ["hvm"]
}

 owners = ["099720109477"]
}

resource "aws_instance" "web" {
 ami = "${data.aws_ami.ubuntu.id}"
 instance_type = "t2.micro"

 tags = {
  Name = "HelloWorld"
 }
}

L’occasione

Mi si è presentata l’occasione grazie all’annuncio di Hashicorp che mostra le novità su AzureRM.

La versione 2.0 di AzureRM arricchisce il questo provider di nuovissime e interessantissime funzionalità.

Ad oggi AzureRM vanta 360 risorse e 119 data sources.

La casa madre divide le novità in tre categorie

  • Macchine virtuali e scalabilità
  • Timeout personalizzati
  • Rimozione di risorse obsolete

“L’accesso a queste funzionalità e miglioramenti consentirà di semplificare le configurazioni e migliorare l’esperienza complessiva dell’uso del provider.”

Macchine virtuali e scalabilità

Le risorse relative alle macchine virtuali e la loro scalabilità ora sono divise per tipo (windows, linux). Gli utenti possono ora selezionare una risorsa in base al tipo di macchina virtuale che desiderano utilizzare. Si consiglia di utilizzare la “nuova modalità” perchè in futuro le vecchie risorse non saranno più utilizzabili. Sono state introdotte le seguenti risorse:

azurerm_linux_virtual_machine
azurerm_windows_virtual_machine
azurerm_linux_virtual_machine_scale_set
azurerm_windows_virtual_machine_scale_set
azurerm_virtual_machine_scale_set_extension

Timeout personalizzati

La versione 2.0 consente agli utenti di specificare timeout personalizzati per le risorse. Avere un timeout personalizzato è particolarmente utile per le risorse che richiedono finestre lunghe per le operazioni come ad esempio azurerm_resource_group.

Ecco un esempio di come impostare un timeout personalizzato per un gruppo di risorse:

 resource "azurerm_resource_group" "example" {
 name = "example-resource-group"
 location = "West Europe"

 timeouts {
  create = "10m"
  delete = "30m"
 }
}

###Rimozione di risorse obsolete

Dal suo lancio nel dicembre 2015, il provider AzureRM ha accumulato campi e configurazioni che sono stati poi deprecati. In questa vesione è stata fatta pulizia e sono stati rimossi data sources, risorse e configurazioni.


Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: