Archivi tag: Azure

Azure Italia Podcast: Microsoft Cloud Adoption Framework per Azure

Una bella chiacchierata a tema Microsoft Cloud Adoption Framework per Azure con Carlo di Azure Italia Podcast.

🎙️La potete ascoltare su Spotify al seguente link: https://open.spotify.com/episode/5ZizwfRpF3QNd0ezcLmdKu?si=c353722c9ca7471c

Ringrazio ancora Carlo Sacchi per avermi fatto partecipe di questa iniziativa ed invito tutti quanti voi a seguire il suo canale: non è facile trovare materiale su Azure in lingua italiana! 😉

Di seguito, i riferimenti del canale Azure Italia Podcast:

Automatizzare i deploy su Azure: installazione di Terraform e VSCode

Automatizzare il processo di deploy delle risorse su Microsoft Azure può migliorare notevolmente l’efficienza e la coerenza nel gestire l’infrastruttura cloud. In questo articolo, esploreremo come installare e configurare Terraform insieme a Visual Studio Code (VSCode) e le relative estensioni per semplificare ed uniformare il processo di deploy.

Prerequisiti

Installare i seguenti strumenti:

  1. Terraform
  2. Visual Studio Code
  3. Azure CLI

Installare Terraform su Windows

1. Scaricare l’ultima versione dal sito ufficiale di Terraform

2. Estrarre il File ZIP

Dopo aver scaricato il file ZIP di Terraform, estrarlo in una directory, ad esempio, C:\Terraform.

3. Aggiungere Terraform al Percorso (PATH)

Per utilizzare Terraform da qualsiasi posizione nel prompt dei comandi, è necessario aggiungere la directory di Terraform al percorso (PATH) del sistema.

4. Verifica dell’Installazione

Aprire il prompt dei comandi ed eseguire il comando:

terraform --version

il comando rilascia la versione di Terraform installata, confermando la corretta installazione

Installazione di Visual Studio Code ed estensioni

  1. Scaricare e installare Visual Studio Code dal sito ufficiale.
  2. Aprire VSCode e installare le estensioni necessarie:
    • Terraform: cercare “HashiCorp Terraform” nell’Extension Marketplace e installare l’estensione fornita da HashiCorp.
    • Azure Terraform: questa estensione semplifica la gestione delle risorse di Azure con Terraform. Cercare “Azure Terraform” nell’Extension Marketplace e installare l’estensione.

Installazione di Azure CLI su Windows

  1. Scaricare ed installare Azure CLI seguendo la guida dal sito ufficiale di Azure CLI
  2. Verificare l’installazione aprendo un prompt dei comandi ed eseguire il comando az --version
  3. Utilizzare il comando az login per eseguire l’autenticazione su Azure

Conclusioni

In questo articolo si sono installati e configurati gli strumenti per iniziare ad utilizzare Terraform e VS Code per automatizzare i deploy su Azure.

Nei prossimi articoli vedremo come muovere i prima passi con Terraform.

Azure: come creare una VM personalizzata e distribuirla

Guida passo su come utilizzare Sysprep per creare immagini personalizzate su Azure e deployarle sia utilizzando il tool sysprep dal sistema operativo sia utilizzando i comandi Powershell.

Requisiti

  1. Crea una VM di base: Inizia creando una VM di base con il sistema operativo Windows desiderato installato. Questa VM sarà la base per le tue distribuzioni future.
  2. Personalizza la VM: Configura la VM di base in base alle tue esigenze specifiche, installa le applicazioni necessarie e apporta le personalizzazioni richieste.
  3. Aggiorna il sistema operativo: Assicurati di avere tutte le patch e gli aggiornamenti di sicurezza più recenti installati sulla VM di base.
  4. Esegui Sysprep: Una volta che la VM di base è configurata e aggiornata, puoi eseguire Sysprep per prepararla per la distribuzione.

Creazione dell’immagine personalizzata

Dal sistema operativo (utilizzando Sysprep)

  1. Apri il prompt dei comandi: Apri il prompt dei comandi come amministratore.
  2. Esegui Sysprep: C:\Windows\System32\sysprep\sysprep.exe
  3. Configura le opzioni Sysprep: Nella finestra di dialogo Sysprep, seleziona le seguenti opzioni:
    • Ora (shutdown): Imposta l’opzione su “Spegni” per spegnere la VM dopo il completamento di Sysprep.
    • Generaleize: Assicurati che questa opzione sia selezionata per preparare la VM per l’uso su altre macchine.
  4. Avvia Sysprep: Fare clic su “OK” per avviare il processo Sysprep. Questo processo può richiedere alcuni minuti e la VM verrà quindi arrestata.

Da Powershell

Stop-AzVM -ResourceGroupName "Nome-Gruppo-Risorse" -Name "Nome-VM" -Force
Set-AzVM -ResourceGroupName "Nome-Gruppo-Risorse" -Name "Nome-VM" -Generalized

Creare un’immagine personalizzata su Azure

Dal portale Azure

  1. Accedi al portale di Azure: Accedi al portale di Azure.
  2. Crea una immagine personalizzata: Naviga al servizio “Immagini personalizzate” nel portale di Azure e fai clic su “Aggiungi”.
  3. Configura l’immagine: Compila i dettagli dell’immagine personalizzata.
  4. Seleziona la VM di base: Nella sezione “Origine” dell’immagine personalizzata, seleziona la VM di base dalla quale hai eseguito Sysprep.
  5. Crea l’immagine: Fai clic su “Crea” per avviare il processo di creazione dell’immagine personalizzata. Azure creerà un’immagine basata sulla VM di base con le personalizzazioni apportate durante la configurazione.

Da Powershell

$vm = Get-AzVM -ResourceGroupName "Nome-Gruppo-Risorse" -Name "Nome-VM"
$imageConfig = New-AzImageConfig -Location "Nome-Regione"
$imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsType Windows -OsState Generalized -SnapshotId $vm.StorageProfile.OsDisk.Snapshot.Id
New-AzImage -Image $imageConfig -ResourceGroupName "Nome-Gruppo-Risorse" -ImageName "Nome-Immagine" -Description "Descrizione-Immagine"

Distribuzione di VM personalizzate

Dal portale Azure

  1. Seleziona l’immagine personalizzata: Naviga tra le risorse disponibili e seleziona l’immagine di VM personalizzata che hai creato.
  2. Configura la VM: Segui il processo guidato per configurare la nuova VM utilizzando l’immagine personalizzata.
  3. Avvia la VM: Una volta completata la configurazione, avvia la nuova VM. Sarà basata sull’immagine personalizzata che hai creato su Azure.

Da Powershell

  1. Creazione di una VM da un’immagine personalizzata
    New-AzVm -ResourceGroupName "Nome-Gruppo-Risorse" -Name "Nome-Nuova-VM" -ImageName "Nome-Immagine" -Location "Nome-Regione" -AdminUsername "Nome-Admin" -AdminPassword "Password-Admin"
  2. Avvio della VM
    Start-AzVM -ResourceGroupName "Nome-Gruppo-Risorse" -Name "Nome-Nuova-VM"

Verificare la data di creazione di una Virtual Machine su Azure

Esistono due modi per verificare la data di creazione di una Virtual Machine su Azure… o almeno che io conosca

Metodo 1 – Azure Portal

Se la virtual machine è stata creata negli ultimi 90 giorni, è possibile verificare la data di creazione dal portale Azure tramite il pannello “Activity Log” della VM stessa:

  1. Autenticarsi sul portale Azure (https://portal.azure.com)
  2. Cercare la VM che ci interessa
  3. Dal menù di sinistra, selezionare Activity Log ed eventualmente utilizzare i filtri per filtrare l’intervento di date interessate

Metodo 2 – Azure Powershell

Tramite l’Activity Log possiamo risalire fino a 90 giorni prima. Nel caso la VM sia stata creata da più 90 giorni, bisogna ricorrere a Powershell:

Get-AzVm -name "name.of.virtual.machine" | select timecreated

L’output sarà come quello sotto:

Output “Get-AzVm”


Come scegliere il corretto dimensionamento delle VM in Azure

La vasta disponibilità di configurazioni di VM su Azure non aiuta a capire immediatamente quale sia la migliore per le nostre esigenze. Sapere le differenze delle diverse offerte agevolerà identificare meglio quale dimensionamento potrà fare al caso nostro.

Tipologia e sizing delle VM

Microsoft ha suddiviso le tipologie di virtual machine per tipologia di utilizzo. Quindi, in base a quello che è il workload da configurare, possiamo avere un’idea di quale taglio di macchina andare ad utilizzare.

TypeSizesDescription
General purposeB, Dsv3, Dv3, Dasv4, Dav4, DSv2, Dv2, Av2, DC, DCv2, Dv4, Dsv4, Ddv4, Ddsv4Balanced CPU-to-memory ratio. Ideal for testing and development, small to medium databases, and low to medium traffic web servers.
Compute optimizedF, Fs, Fsv2High CPU-to-memory ratio. Good for medium traffic web servers, network appliances, batch processes, and application servers.
Memory optimizedEsv3, Ev3, Easv4, Eav4, Ev4, Esv4, Edv4, Edsv4, Mv2, M, DSv2, Dv2High memory-to-CPU ratio. Great for relational database servers, medium to large caches, and in-memory analytics.
Storage optimizedLsv2High disk throughput and IO ideal for Big Data, SQL, NoSQL databases, data warehousing and large transactional databases.
GPUNC, NCv2, NCv3, NCasT4_v3 (Preview), ND, NDv2 (Preview), NV, NVv3, NVv4Specialized virtual machines targeted for heavy graphic rendering and video editing, as well as model training and inferencing (ND) with deep learning. Available with single or multiple GPUs.
High performance computeHB, HBv2, HC, HOur fastest and most powerful CPU virtual machines with optional high-throughput network interfaces (RDMA).
Fonte: https://docs.microsoft.com/en-us/azure/virtual-machines/sizes

Il taglio delle VM identifica le “caratteristiche hardware” della macchina virtuale.

Dal nome del taglio della macchina è possibile risalire alle caratteristiche ed alle feature che caratterizzano la VM. Infatti, tutti I nomi utilizzano la seguente nomenclatura:

[Family] + [Sub-family]* + [# of vCPUs] + [Additive Features] + [Accelerator Type]* + [Version]

Dove:

ValueExplanation
FamilyIndicates the VM Family Series
*Sub-familyUsed for specialized VM differentiations only
# of vCPUsDenotes the number of vCPUs of the VM
Additive FeaturesOne or more lower case letters denote additive features, such as:
a = AMD-based processor
d = disk (local temp disk is present); this is for newer Azure VMs, see Ddv4 and Ddsv4-series
h = hibernation capable
i = isolated size
l = low memory; a lower amount of memory than the memory intensive size
m = memory intensive; the most amount of memory in a particular size
t = tiny memory; the smallest amount of memory in a particular size
r = RDMA capable
s = Premium Storage capable, including possible use of Ultra SSD (Note: some newer sizes without the attribute of s can still support Premium Storage e.g. M128, M64, etc.)
*Accelerator TypeDenotes the type of hardware accelerator in the specialized/GPU SKUs. Only the new specialized/GPU SKUs launched from Q3 2020 will have the hardware accelerator in the name.
VersionDenotes the version of the VM Family Series
Fonte: https://docs.microsoft.com/bs-latn-ba/azure/virtual-machines/vm-naming-conventions

Differenze tra CORE e vCPU in Azure e Azure Compute UNIT (ACU)

Con la serie V3, Microsoft ha introdotto l’utilizzo dell’hyper-trading per la virtualizzazione delle VM andando così ad abbattere leggermente I costi (e un pò anche le prestazioni). Dove è utilizzato l’hypertrading, c’è un rapporto 2:1 vCPU/CORE.

Per sapere su quali serie di VM è abilitato l’hyper-trading, è possibile andare su questo link ed identificare dove il valore nella colonna vCPU:Core è 2:1.

Un modo per valutare le performance di una virtual machine su Azure rispetto ad un’altra, è andare a vedere il valore ACU delle VM.

Microsoft ha introdotto il concetto di Azure Compute Unit (ACU) per poter compare le prestazioni di calcolo dei vari tagli delle VM in Azure. Il parametro è statao standardizzato su una VM Standard_A1 alla quale è stato assegnato il punteggio ACU 100. In base a questi valori è possibile capire approssimativamente la velocità di calcolo degli altri SKU. In questa pagina è possibile verificare le ACU dei vari SKU.

Conclusioni

Scegliere la VM giusta non è immediato, come hai visto. Fortunatamente lavorando con Azure si ha la possibilità di essere elastici in alcune scelte. Questo permette di rivedere le scelte fatte inizialmente. Si può così pensare di partire con taglio leggermente più basso rispetto a quello che si è pensato o a quello che si ha on-premise (nel caso si stia effettuando una migrazione), anche per ottimizzare i costi, ed effettuare uno scaling delle risorse in caso di necessità.

Azure File Sync: limitare la banda utilizzata

Azure File Sync (AFS) è il servizio di Microsoft che permette di centralizzare i file aziendali in Azure tramite l’installazione di un agente di sincronizzazione installato sul server, sia in Azure che on-premise.

Una volta installato, di default, AFS sfrutta tutta la banda internet disponibile per la sincronizzazione dei dati (sia in upload che in download). Questo comportamento potrebbe però portare a dei malfunzionamenti agli altri workload, nasce quindi la necessità di limitare la banda utilizzata dal servizio.

E’ possibile limitare l’utilizzo della banda da parte di Azure File Sync tramite comandi Powershell (non è possibile da interfaccia grafica).

  1. Importare il modulo AFS
    Import-Module “C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll”
  2. Configurare la regola di QoS. In questo esempio la banda viene limitata dal lunedì al venerdì e dalle 09 alle 19 a 2 Mpbs:
    New-StorageSyncNetworkLimit -Day Monday, Tuesday, Wednesday, Thursday, Friday -StartHour 7 -EndHour 19 -LimitKbps 2000
  3. Verifica della regola configurata:
    Get-StorageSyncNetworkLimit

NOTA: le regole che si configurano influenzano solo il download del dato e non è possibile governare il download del dato, almeno nella data in cui scrivo (16 – 01 – 2010)

Azure: come rimanere aggiornati

Il mondo di Azure è in continua e veloce evoluzione e rimanere aggiornati sulle ultime novità non sempre è semplice.

In questo articolo, alcuni suggerimenti per come non perdere nessuna novità sul cloud targato Microsoft.

Tutte le novità e aggiornamenti vengono pubblicati sul sito Azure Updates. Iscrivendosi ai feed RSS si può rimanere costantemente aggiornati.

Azure Heat Maps è uno strumento scritto da non di Microsoft che visualizza gli ultimi aggiornamenti in maniera grafica ed avere una panoramica immediata delle ultime novità. E’ possibile filtrare gli aggiornamenti per tecnologia, paese e altro.

Schermata di Azure Heat Map

Un altro metodo per rimanere aggiornati è quello di seguire sui social come LinkedIn le pagine ufficiali.

Troubleshooting: Azure Application Gateway e “Inbound Anomaly Score Exceeded”

Scenario:
In Azure, un Application Gateway gestisce gli accessi ad un sito web.
Provando ad accedere al sito dall’esterno, la pagina non viene visualizzata correttamente

Soluzione:
Andando ad analizzare i log dell’Application Gateway (vedere il seguente link per abilitare la diagnostica: https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-diagnostics) è presente questo evento:

[…]
"ruleSetType": "OWASP",
"ruleSetVersion": "3.0",
"ruleId": "0",
"ruleGroup": "Default",
"message": "Mandatory rule. Cannot be disabled. Inbound Anomaly Score Exceeded (Total Score: 5)",
"action": "Blocked",
"site": "Global",
[…]


Generalmente, questo evento è generato quando la richiesta è stata bloccata da una o più cause. Il problema è quindi da ricercare nei log precedenti.

Powershell: script autenticazione su Azure CSP con scelta customer e subscription

Lo script sotto esegue l’autenticazioni su sottoscrizioni Azure di tipo CSP e la selezione della sottoscrizione da utilizzare tramite due menù di scelta.

<#
Requirement:
Powershell 5.1
Module: 
- Partner Center
- Az
#>

Import-Module PartnerCenter

Connect-PartnerCenter  
# Select customer
$customer = Get-PartnerCustomer | Out-GridView -Title "Select the partner and click OK" -PassThru

Login-Azaccount -TenantId $customer.CustomerId

# Select subscription
$Subscription = Get-AzSubscription | Out-GridView -Title "Select the Subscription and click OK" -PassThru
Select-AzSubscription -SubscriptionId $Subscription.Id -TenantId $Subscription.TenantId

Volendo, è possibile memorizzare le credenziali per evitare che vengano richieste due volte tramite il cmdlet “get-credential”. Nel momento in cui sto scrivendo, parrebbe che il comando “connect-partnercenter” generi un errore nel passaggio delle variabili (nonostante il fatto che l’autenticazione si concluda comunque con successo).

Disclaimer: nessuna garanzia è fornita con questo script. Lo scrivente non è responsabile di qualunque danno possa eventualmente derivarne – lo utilizzate a vostro rischio.

Migrare VM da VmWare ad Azure Resource Manager (ARM)

E’ possibile migrare VM da VmWare ad Azure Resource Manager (ARS) in due modi:

  • AzureTramite MVMC
  • Manuale

In entrambi i casi, è richiesto Azure  Powershell (https://azure.microsoft.com/en-us/documentation/articles/powershell-install-configure/)

  • Tramite MVMC
    Utilizzando Microsoft Virtual Machine Converter (MVMC). Download QUA.
    La migrazione sarà semi-automatica in quanto MVMC 3.1 non supporta ASR
  1. Installare MVMC in una macchina configurata sulla stessa rete del vCenter/server ESX
  2. Eseguire la migrazione tramite il wizard o tramite cmdlet Powershell 3.0
  3. Copiare i VHD nello storage account in ARM tramite il cmdlet Powershell Start-AzureStorageBlobCopy.
    Qua gli script preconfigurati: https://www.opsgility.com/blog/windows-azure-powershell-reference-guide/copying-vhds-blobs-between-storage-accounts/
  4. Creare la nuova VM tramite Powershell Azure con i dischi copiati (https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-ps-create-preconfigure-windows-resource-manager-vms/)
  5. Eliminare i dischi dallo storage account “classico”
  • Manuale
    Verranno creati i VHD tramite il software Disk2VHD. Download QUA
  1. Installare Disk2VHD nella macchina da convertire
  2. Convertire i dischi da uploadare
  3. Eseguire l’upload dei dischi tramite il seguente comando Powershell:
     Add-AzureRmVhd -ResourceGroupName YourResourceGroup -Destination “<StorageAccountURL>/<BlobContainer>/<TargetVHDName>.vhd” -LocalFilePath <LocalPathOfVHDFile>
  4. Creare la nuova VM tramite Powershell Azure con i dischi copiati (https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-ps-create-preconfigure-windows-resource-manager-vms/)