7.2: Komme i gang med Azure CLI

Azure Command Line Interface (CLI) er et kommandolinjeverktøy for å administrere Azure ressurser. Det er et CLI som er bygget for å være plattformuavhengig av fungerer på Windows, Linux og MacOS, samt rett i nettleseren i Azure-portalen (trykk på ">" øverst for å åpne Azure Cloud Shell). Fra siste revisjon av 70-533 er Azure CLI også en del av pensum. Selv om Powershell fortsatt er viktigere og en større del av eksamen er det greit å vite hvordan Azure CLI ser ut, da man kan få syntaksspørsmål på eksamen.


Azure CLI er nå i versjon 2.0 og Microsoft sin oppdaterte dokumentasjon finnes her. Det fantes tidligere en versjon 1.0 (også kjent som X-Plat CLI) som var skrevet i node.js og tilpasset Azure Classic, mens 2.0 er skrevet nytt fra bunn av i Python og tilpasset Azure Resource Management-modellen (ARM) - helt tilsvarende for Azure og AzureRM i Powershell. Disse er helt forskjellige, så det er viktig at man sjekker hvilken versjon det referes til. Verktøyet utvikles som åpen kildekode og finnes på GitHub her.

7.2.1 Installasjon

Som nevnt finnes dette tilgjengelig for Windows, macOS og Linux og installasjon vil variere. Her tar vi for oss Windows-installasjon.

Alternativ 1: Installere for CMD

For å bruke Azure CLI i Windows kommandolinje / CMD kan man laste ned siste .MSI-fil her og følge installasjonsveiviseren:

Alternativ 2: Installere for Windows Subsystem for Linux

Dersom man ønsker å bruke Windows Subsystem for Linux (WSL) bruker man tilsvarende installasjonssteg som for en vanlig Linux-installasjon.

  • Åpne Bash Shell

  • Legge til repoet i sources.list.d (en kommando)

echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ wheezy main" | \
     sudo tee /etc/apt/sources.list.d/azure-cli.list
  • Legge til nøklene (trykk enter for hver linje)
sudo apt-key adv --keyserver packages.microsoft.com --recv-keys 417A0893
sudo apt-get install apt-transport-https
sudo apt-get update && sudo apt-get install azure-cli

7.2.2 Koble til med ditt Azure-abonnement

Etter du har installert verktøyet kan du sjekke at det virker ved å skrive az i kommandolinjen. Du vil da få opp:

     /\
    /  \    _____   _ _ __ ___
   / /\ \  |_  / | | | \'__/ _ \
  / ____ \  / /| |_| | | |  __/
 /_/    \_\/___|\__,_|_|  \___|


Welcome to the cool new Azure CLI!

Here are the base commands:

<liste med base-kommandoer>

For å logge inn med Azure-abbonementet ditt, skriv inn

az login

Dette vil generere en kode som du skal skrive inn på en nettside (https://aka.ms/devicelogin) for å autentisere enheten du er logget på. Dermed er du klar til å bruke verktøyet.

7.2.3 Eksempler på bruk

Noen viktige forskjeller fra Powershell

  • I motsetning til Powershell er ikke syntaksen Verb-Substantiv. Det er az <base-command> <command>
  • Alle kommandoer er case-sensitive
  • Standard output er .json. For å se table-output, legg til --output/-o table eller tab-separert liste med --output/-o tsv (les mer om output-formatering her)

Tips og triks

  • Alle kommandoer har tab-completion (trykk tab for å fullføre en kommando, inkludert fullføring av navnet på ressurser)
  • Normalt må man vente til en kommando er ferdig før man kan fortsette (f.eks. ved opprettelse av en ny ressurs). Dersom man ønsker å ikke vente før en kommando er ferdig (f.eks. i automatiseringsskript) kan man legge til --no-waitpå slutten.
  • For å se hjelpesiden for en kommando er det bare å legge til et flagg (-h) på slutten. Eksempel:
$  az account -h

Group
    az account: Manage subscriptions.

Commands:
    clear           : Clear all subscriptions from the CLI's local cache.
    get-access-token: Get AAD token to access to a specified resource.
    list            : Get a list of subscriptions for the account.
    list-locations  : List supported regions of the current subscription.
    set             : Set a subscription as the current subscription.
    show            : Show the details of a subscription.

For å se informasjon om din konto

$ az account show

{
    "environmentName": "AzureCloud",
    "id": "********-****-****-****-************",
    "isDefault": true,
    "name": "Pay-As-You-Go",
    "state": "Enabled",
    "tenantId": "********-****-****-****-************",
    "user": {
    "name": "********",
    "type": "user"
    }
}

Eksempler

Eksemplene er hentet fra denne siden. Inne på MS sine sider kan man enkelt trykke "try it" for å kjøre kommandoer rett fra dokumentasjonen via Azure Cloud Shell.

Opprettelse av ressurser:

  • Opprette en ressursgruppe:
    • az group create -n MyResourceGroup -l westus2
  • Opprette en Linux VM:
    • az vm create -n MyLinuxVM -g MyResourceGroup --image UbuntuLTS --data-disk-sizes-gb 10 20
  • Opprette en Windows Server VM:
    • az vm create -n MyWinVM -g MyResourceGroup --image Win2016Datacenter
  • Opprette en Network Load Balancer:
    • az network lb create -n MyLoadBalancer -g MyResourceGroup
  • Opprette et vnet:
    • az network vnet create -n MyVirtualNetwork -g MyResourceGroup --address-prefix 10.0.0.0/16

Mønsteret med az <ressurs-type> create er greit å bli vant til. Tilsvarende for andre ressurstyper:

Resource Type               Azure CLI create command
-------------               ------------------------
Resource Group              az group create
Virtual Machine             az vm create
Virtual Network             az network vnet create
Load Balancer               az network lb create
Managed Disk                az disk create
Storage account             az storage account create
Virtual Machine Scale Set   az vmss create
Azure Container Service     az acs create
Web App                     az webapp create
SQL Database Server         az sql server create
Document DB                 az documentdb create

Se/liste opp ressurser:

Tilsvarende for create, kan man skrive listi stedet. Da velger vil man liste opp alle ressursene av angitte type. Husk at man kan velge output-type med --output/-o <format> (f.eks. table).

Andre eksempler:

  • Mer fullstendige og detaljerte eksempler finnes her for Windows-ressurser, her for Linux-ressurser og her for Web-apps.

results matching ""

    No results matching ""