Démarrage rapide : Créer un Serveur de routes Azure à l'aide d'un modèle ARM
Ce guide de démarrage rapide vous explique comment utiliser un modèle Azure Resource Manager (modèle ARM) pour déployer un serveur de routes Azure dans un réseau virtuel nouveau ou existant.
Un modèle Azure Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration de votre projet. Le modèle utilise la syntaxe déclarative. Vous décrivez votre déploiement prévu sans écrire la séquence de commandes de programmation pour créer le déploiement.
Si votre environnement remplit les conditions préalables et que vous êtes habitué à utiliser les modèles ARM, sélectionnez le bouton Déployer sur Azure pour ouvrir le modèle dans le portail Azure.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Vérifiez les limites du service pour Azure Route Server.
Vérifier le modèle
Le modèle utilisé dans ce démarrage rapide est tiré des modèles de démarrage rapide Azure.
À l’aide de ce modèle, vous déployez un serveur de routes Azure dans un réseau virtuel nouveau ou existant. Un sous-réseau dédié nommé RouteServerSubnet
est créé pour héberger le serveur de routes. Le Serveur de routes est également configuré avec l'ASN et l'adresse IP de l'homologue pour établir un peering BGP.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.5.6.12127",
"templateHash": "3572840517141664306"
}
},
"parameters": {
"vnetName": {
"type": "string",
"defaultValue": "routeservervnet",
"metadata": {
"description": "Name of new or existing vnet to which Azure Route Server should be deployed."
}
},
"vnetIpPrefix": {
"type": "string",
"defaultValue": "10.1.0.0/16",
"metadata": {
"description": "IP prefix for available addresses in vnet address space."
}
},
"vnetNew_or_Existing": {
"type": "string",
"defaultValue": "New",
"allowedValues": [
"New",
"Existing"
],
"metadata": {
"description": "Specify whether to provision new vnet or deploy to existing vnet."
}
},
"routeServerSubnetIpPrefix": {
"type": "string",
"defaultValue": "10.1.1.0/27",
"metadata": {
"description": "Route Server subnet IP prefix MUST be within vnet IP prefix address space."
}
},
"publicIpNew_or_Existing": {
"type": "string",
"defaultValue": "New",
"allowedValues": [
"New",
"Existing"
],
"metadata": {
"description": "Specify whether to provision new standard public IP or deploy using existing standard public IP."
}
},
"publicIpName": {
"type": "string",
"defaultValue": "routeserverpip",
"metadata": {
"description": "Name of the standard Public IP used for the Route Server"
}
},
"firstRouteServerName": {
"type": "string",
"defaultValue": "routeserver",
"metadata": {
"description": "Name of Route Server."
}
},
"routeServerBgpConnectionName": {
"type": "string",
"defaultValue": "conn1",
"metadata": {
"description": "Name of BGP connection."
}
},
"peerAsn": {
"type": "int",
"defaultValue": 65002,
"metadata": {
"description": "Peer ASN connecting to."
}
},
"peerIp": {
"type": "string",
"defaultValue": "10.0.1.4",
"metadata": {
"description": "Peer IP connecting to."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Azure region for Route Server and virtual network."
}
}
},
"variables": {
"ipconfigName": "ipconfig1",
"routeServerSubnetName": "RouteServerSubnet"
},
"resources": [
{
"condition": "[equals(parameters('vnetNew_or_Existing'), 'New')]",
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2020-05-01",
"name": "[parameters('vnetName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetIpPrefix')]"
]
}
}
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2020-05-01",
"name": "[format('{0}/{1}', parameters('vnetName'), variables('routeServerSubnetName'))]",
"properties": {
"addressPrefix": "[parameters('routeServerSubnetIpPrefix')]"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]"
]
},
{
"condition": "[equals(parameters('publicIpNew_or_Existing'), 'New')]",
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2020-05-01",
"name": "[parameters('publicIpName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard"
},
"properties": {
"publicIPAllocationMethod": "Static",
"publicIPAddressVersion": "IPv4",
"idleTimeoutInMinutes": 4
}
},
{
"type": "Microsoft.Network/virtualHubs",
"apiVersion": "2020-06-01",
"name": "[parameters('firstRouteServerName')]",
"location": "[parameters('location')]",
"properties": {
"sku": "Standard"
}
},
{
"type": "Microsoft.Network/virtualHubs/ipConfigurations",
"apiVersion": "2020-06-01",
"name": "[format('{0}/{1}', parameters('firstRouteServerName'), variables('ipconfigName'))]",
"properties": {
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), variables('routeServerSubnetName'))]"
},
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIpName'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualHubs', parameters('firstRouteServerName'))]",
"[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIpName'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), variables('routeServerSubnetName'))]"
]
},
{
"type": "Microsoft.Network/virtualHubs/bgpConnections",
"apiVersion": "2020-06-01",
"name": "[format('{0}/{1}', parameters('firstRouteServerName'), parameters('routeServerBgpConnectionName'))]",
"properties": {
"peerAsn": "[parameters('peerAsn')]",
"peerIp": "[parameters('peerIp')]"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualHubs', parameters('firstRouteServerName'))]",
"[resourceId('Microsoft.Network/virtualHubs/ipConfigurations', parameters('firstRouteServerName'), variables('ipconfigName'))]"
]
}
]
}
Plusieurs ressources Azure ont été définies dans le modèle :
- Microsoft.Network/virtualNetworks
- Microsoft.Network/virtualNetworks/subnets (deux sous-réseaux, dont un nommé
routeserversubnet
) - Microsoft.Network/virtualHubs (déploiement du Serveur de routes)
- Microsoft.Network/virtualHubs/ipConfigurations
- Microsoft.Network/virtualHubs/bgpConnections (configuration de l'ASN et de l'adresse IP de l'homologue)
Pour obtenir d’autres modèles, consultez Modèles de démarrage rapide Azure.
Déployer le modèle
Sélectionnez Ouvrir Cloudshell à partir du bloc de code suivant pour ouvrir Azure Cloud Shell, puis suivez les instructions pour vous connecter à Azure.
$projectName = Read-Host -Prompt "Enter a project name that is used for generating resource names" $location = Read-Host -Prompt "Enter the location (i.e. centralus)" $templateUri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.network/route-server/azuredeploy.json" $resourceGroupName = "${projectName}rg" New-AzResourceGroup -Name $resourceGroupName -Location "$location" New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri Read-Host -Prompt "Press [ENTER] to continue ..."
Patientez jusqu'à ce que vous voyiez l’invite de la console.
Sélectionnez Copier dans le bloc de code précédent pour copier le script PowerShell.
Cliquez sur le volet de la console shell, puis sélectionnez Coller.
Entrez les valeurs.
Le nom du groupe de ressources est le nom du projet avec rg ajouté.
Le déploiement du modèle prend environ 20 minutes. Une fois l’opération terminée, le résultat ressemble à ce qui suit :
Azure PowerShell est utilisé pour déployer le modèle. Outre Azure PowerShell, vous pouvez également utiliser le portail Azure, l’interface Azure CLI et l’API REST. Pour découvrir d’autres méthodes de déploiement, consultez Déployer des modèles.
Valider le déploiement
Connectez-vous au portail Azure.
Sélectionnez Groupes de ressources dans le volet gauche.
Sélectionnez le groupe de ressources que vous avez créé dans la section précédente. Le nom du groupe de ressources par défaut est le nom du projet avec rg ajouté.
Le groupe de ressources doit uniquement contenir le réseau virtuel :
Atteindre https://aka.ms/routeserver.
Sélectionnez le Serveur de routes nommé routeserver pour vérifier que le déploiement s'est bien déroulé.
Nettoyer les ressources
Lorsque vous n’avez plus besoin des ressources que vous avez créées avec le serveur de routes, supprimez le groupe de ressources pour supprimer le serveur de routes et toutes les ressources associées.
Pour supprimer le groupe de ressources, utilisez la cmdlet Remove-AzResourceGroup :
Remove-AzResourceGroup -Name <your resource group name>