Blog

Azure Networking - TP - Part 1 - vNets & Subnets

nice abstract image

Mickael Lopes et moi avons animé une session au Global Azure Bootcamp intitulée : “Le réseau dans Azure : Cas d’usage et Retour d’expériences”.

Les slides de  notre session sont dispo sur slideshare ici : Slideshare de Mickael Comme prévu, voici des TP pour aller avec notre présentation, a faire vous même :)

Les vNets et Subnets

Avant d’attaquer des éléments plus complexe, nous allons apprendre a créer un VNet avec un subnet avec les trois moyens disponibles sur Azure. ## Powershell Avant de se lancer, commencez par installer votre station de travail convenablement avec la doc Microsoft qui va bien : Powershell for Azure Dans Azure, on commence toujours par créer un Resource Group donc :

New-AzureRmResourceGroup \`
-Name RG-Vnet-Exo-PS \`
-Location northeurope

Ensuite nous allons créer un vNet :

    $vnetexo = New-AzureRmVirtualNetwork -ResourceGroupName RG-Vnet-Exo-PS `
    -Name vnet-test-ps `
    -AddressPrefix 10.0.0.0/24 `
    -Location northeurope

puis afin d’ajouter un subnet :

    Add-AzureRmVirtualNetworkSubnetConfig -Name psfrontend `
    -VirtualNetwork $vnetexo `
    -AddressPrefix 10.0.0.0/26
    Set-AzureRmVirtualNetwork -VirtualNetwork $vnetexo

Azure CLI 2.0

Comme pour la partie Powershell, suivez la doc d’installation de Azure CLI 2.0 ici : Azure CLI 2.0 Comme dans l’exemple précédent nous allons créer un Resource Group :

    az group create \
    --name RG-Vnet-Exo-AZ \
    --location northeurope

Ensuite nous allons créer un vNet et le subnet :

    az network vnet create \
    --name vnet-test-az \
    --resource-group RG-Vnet-Exo-AZ \
    --location northeurope \
    --address-prefixes 10.0.1.0/24 \
    --subnet-name azfrontend \
    --subnet-prefixes 10.0.1.0/26

ARM Template

Pour commencer, utilisez un éditeur de texte un peu évoluer, le JSON sans outil, ca pique un peu… Je vous recommend Visual Studio Code, avec ce petit article : sur mon blog Un Template Json simple contient plusieurs parties : “variables”, “parameters”, “resources” et “outputs”. Sans réexpliquer l’ensemble, voici à quoi notre Template va ressembler :

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vnetname": {
      "type": "string",
      "metadata": {
        "description": "Nom du Vnet"
      },
      "defaultValue": "vnet-test-json"
    },
    "vnetname": {
      "type": "string",
      "metadata": {
        "description": "Nom du Vnet"
      },
      "defaultValue": "vnet-test-json"
    },
    "addressSpacePrefix": {
      "type": "string",
      "metadata": {
        "description": "IP v4 (RFC1918)"
      },
      "defaultValue": "10.0.2.0/24"
    },
    "subnetName": {
      "type": "string",
      "metadata": {
        "description": "Nom du Subnet"
      },
      "defaultValue": "jsonfrontend"
    },
    "subnetPrefix": {
      "type": "string",
      "metadata": {
        "description": "IP v4 du Subnet"
      },
      "defaultValue": "10.0.2.0/26"
    }
  },
  "variables": {},
  "resources": [
    {
      "apiVersion": "2015-06-15",
      "type": "Microsoft.Network/virtualNetworks",
      "name": "[parameters('VnetName')]",
      "location": "[resourceGroup().location]",
      "tags": {
        "displayName": "JSON-VNET"
      },
      "properties": {
        "addressSpace": {
          "addressPrefixes": ["[parameters('addressSpacePrefix')]"]
        },
        "subnets": [
          {
            "name": "[parameters('subnetName')]",
            "properties": {
              "addressPrefix": "[parameters('subnetPrefix')]"
            }
          }
        ]
      }
    }
  ],
  "outputs": {}
}

Ensuite pour déployer ce fichier soit via le portail avec la doc ici : Azure Template & Portal ou alors via Powershell et Azure CLI 2.0 :

Deploy with Powershell

New-AzureRmResourceGroup -Name RG-Vnet-Exo-JSON \`
   -Location " North Europe"
New-AzureRmResourceGroupDeployment -Name RG-Vnet-Exo-JSON \`
   -ResourceGroupName ExampleResourceGroup \`
   -TemplateFile c:\\MyTemplates\\vnet-simple.json

Deploy with Azure CLI 2.0

az group create --name RG-XXX --location "North Europe“
az group deployment create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file vnet-simple.json