Création de VM windows et linux avec le module AZURERM

le module azureRM dispose de cmdlettes puissantes permettant de créer, gérer vos VM

la fonction suivant permet de créer des VM windows et linux, vous pourrez choisir le nombre de VM, le réseaux virtuel, le groupe de ressource…

#création de VM linux et Windows

Select-AzureRmProfile​​ -Path​​ C:\temp\azureRMprofile.json

#cette fonction vous permet de créer autant de VM windows et linux que vous souhaitez

function​​ creat-VM-Azure{

PARAM(

 ​​ ​​ ​​​​ #GRoupe de ressource

 ​​ ​​ ​​​​ [parameter()]$GroupeRessource="gtek-it10",

 ​​ ​​ ​​​​ #réseaux virtuel et rangée ip (id réseaux)

 ​​ ​​ ​​​​ [parameter()]$reseauVirtuel="gtekVnet1",

 ​​ ​​ ​​​​ [parameter()]$ipReseauVirtuel="192.168.0.0/23",

 ​​ ​​ ​​​​ #Noms des sous-réseaux et rangée.

 ​​ ​​ ​​​​ [parameter()]$ssReso1="frontal1",

 ​​ ​​ ​​​​ [parameter()]$ipSsReso1="192.168.1.0/24",

 ​​ ​​ ​​​​ [parameter()]$ssreso2="dorsal1",

 ​​ ​​ ​​​​ [parameter()]$ipSsReso2="192.168.0.0/24",

 ​​ ​​ ​​​​ #variable pour les ip publiques

 ​​ ​​ ​​​​ [parameter()]$NomIpPublique="IpPublicGtek",

 ​​ ​​ ​​​​ #Adresses ip de départ

 ​​ ​​ ​​​​ [parameter()]$ipresodep=5,

 ​​ ​​ ​​​​ #Nom du compte de stockage

 ​​ ​​ ​​​​ [parameter()]$storageAccount="storagegtek",

 ​​ ​​ ​​​​ [parameter()]$nomAdminSrvVM="admingtek",

 ​​ ​​ ​​​​ [parameter()]$mdpAdminSrvVM="P@ssw0rd",

 ​​ ​​ ​​​​ #Nombre de VM windows à créer

 ​​ ​​ ​​​​ [parameter()]$nbVMWindows=2,

 ​​ ​​ ​​​​ #Nombre de VM linux à créer

 ​​ ​​ ​​​​ [parameter()]$nbVMLinux=2

 

 

)

$idssReso1=$ipssreso1.split(".")[0..2]​​ -join​​ "."

#variable du réseau virtuel et du sous-réseau

Write-host​​ "Création du groupe de ressource​​ $groupeRessource"​​ -f​​ cyan

#création du groupe de ressource

New-AzureRmResourceGroup​​ -Name​​ $groupeRessource​​ -Location​​ westeurope

#regions nsg création du groupe NSG

# Creation une règle de sécurité entrante sur le port 3389 port RDP

Write-host​​ "Création du groupe de sécurité "​​ -f​​ yellow

$SecEntrantRDP​​ =​​ New-AzureRmNetworkSecurityRuleConfig​​ -Name​​ gtek-it-RDP ​​​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Protocol​​ Tcp​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Direction​​ Inbound​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -SourceAddressPrefix​​ *​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -SourcePortRange​​ *​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -DestinationAddressPrefix​​ *​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -DestinationPortRange​​ 3389​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Access​​ Allow​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Priority​​ 1000

# Create une règle de sécurité entrante sur le port 80

$secEntrantWeb​​ =​​ New-AzureRmNetworkSecurityRuleConfig​​ -Name​​ gtek-it-Web ​​​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Protocol​​ Tcp​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Direction​​ Inbound​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -SourceAddressPrefix​​ *​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -SourcePortRange​​ *​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -DestinationAddressPrefix​​ *​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -DestinationPortRange​​ 80​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Access​​ Allow​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Priority​​ 1010

 

# Creation d'un groupe de sécurité intrégrant nos 2 règles NSG(NetWork Security Group)

$nsg​​ =​​ New-AzureRmNetworkSecurityGroup​​ -ResourceGroupName​​ $GroupeRessource​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Location​​ westeurope​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Name ​​​​ GTEK-it-SecurityGroup​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -SecurityRules​​ $secEntrantWeb,$secEntrantRDP

 

#endregions

write-host​​ "Création du réseaux virtuel​​ $reseauVirtuel​​ et des sous-réseaux​​ $ssreso1,​​ $ssreso2"​​ -f​​ cyan

#création du réseaux virtuel

New-AzureRmVirtualNetwork​​ -ResourceGroupName​​ $groupeRessource​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Name​​ $reseauVirtuel​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -AddressPrefix​​ $ipReseauVirtuel​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Location​​ westeurope

#récupération du réseaux virtuel​​ 

$vnet=Get-AzureRmVirtualNetwork​​ -ResourceGroupName​​ $groupeRessource​​ -Name​​ $reseauVirtuel

#Ajout des sous-resaux dans le réseau virtuel

Add-AzureRmVirtualNetworkSubnetConfig​​ -Name​​ $ssreso1​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -VirtualNetwork​​ $vnet​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -AddressPrefix​​ $ipSsReso1​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -NetworkSecurityGroup​​ $nsg

Add-AzureRmVirtualNetworkSubnetConfig​​ -Name​​ $ssreso2​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -VirtualNetwork​​ $vnet​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -AddressPrefix​​ $ipSsReso2​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -NetworkSecurityGroup​​ $nsg

#prise en compte des modifications

Set-AzureRmVirtualNetwork​​ -VirtualNetwork​​ $vnet

#créer autant de machine publique que de VM a créer​​ 

#authentification pour les comptes locaux des VM (SAM locales)

Write-host​​ "création du compte local user​​ $nomAdminSrvVM"​​ -f​​ green

$auth=new-object​​ System.Management.Automation.PSCredential​​ $nomAdminSrvVM​​ ,​​ (convertTo-secureString​​ $mdpAdminSrvVM​​ -AsPlainText​​ -Force)

#Création du compte de stockage (storageAccount)

write-host​​ "création du compte de stockage​​ $storageAccount"​​ -f​​ yellow

$storageAccount=New-AzureRmStorageAccount​​ -ResourceGroupName​​ $groupeRessource​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Name​​ $storageaccount​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Location​​ "Westeurope"​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -SkuName​​ "Standard_LRS"

​​ Write-host​​ "Création des VM Windows en cours"​​ -f​​ red​​ -b​​ yellow

​​ #création des machines Windows  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ 

1..$nbVMWindows​​ |​​ %{

#création de l' ip publique, autant d'ip publique que de VM

write-host​​ "création VM Windows n°​​ $_"​​ -f​​ cyan

write-host​​ "Création de l'ip publique n°​​ $_"​​ -f​​ yellow

$pip​​ =​​ New-AzureRmPublicIpAddress ​​​​ -ResourceGroupName​​ $groupeRessource​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Location​​ westeurope​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -AllocationMethod​​ Static​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Name​​ $NomIpPublique$_

#créer autant de carte réseaux que de VM

$subnet=(Get-AzureRmVirtualNetwork​​ -ResourceGroupName​​ $groupeRessource​​ -Name​​ $reseauVirtuel).Subnets[0].id

$ippublic=(Get-AzureRmPublicIpAddress​​ -ResourceGroupName​​ $groupeRessource)[0].Id

#création des cartes réseaux (autant que de VM)

write-host​​ "Création de la carte réseau n°​​ $_"​​ -f​​ green

$resvirtuel​​ =​​ New-AzureRmNetworkInterface​​ -Name​​ carte$_-GTEK-it​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -ResourceGroupName​​ $groupeRessource​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Location​​ westeurope​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -SubnetId​​ $subnet​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -PublicIpAddressId​​ $pip.id `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -PrivateIpAddress​​ "$idssreso1.$($_​​ +​​ $ipresodep)"​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ 

#création de vhduri  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ 

$osDiskUri=$StorageAccount.PrimaryEndpoints.Blob.ToString()​​ +​​ "vhds/SRV$_.vhd"

#configuration de la VM

write-host​​ "Création de la VM n°​​ $_"​​ -f​​ cyan

$vm​​ =​​ New-AzureRmVMConfig​​ -VMName​​ VM$_​​ -VMSize​​ Standard_A1

$vm​​ =​​ Set-AzureRmVMOperatingSystem​​ `

 ​​ ​​ ​​​​ -VM​​ $vm​​ `

 ​​ ​​ ​​​​ -Windows​​ `

 ​​ ​​ ​​​​ -ComputerName​​ srv$_​​ `

 ​​ ​​ ​​​​ -Credential​​ $auth​​ `

 ​​ ​​ ​​​​ -ProvisionVMAgent​​ `

 ​​ ​​ ​​​​ -EnableAutoUpdate​​ 

 

$vm​​ =​​ Set-AzureRmVMSourceImage​​ `

 ​​ ​​ ​​​​ -VM​​ $vm​​ `

 ​​ ​​ ​​​​ -PublisherName​​ MicrosoftWindowsServer​​ `

 ​​ ​​ ​​​​ -Offer​​ WindowsServer​​ `

 ​​ ​​ ​​​​ -Skus​​ 2016-Datacenter​​ `

 ​​ ​​ ​​​​ -Version​​ latest

 

$vm​​ =​​ Set-AzureRmVMOSDisk​​ `

 ​​ ​​ ​​​​ -VM​​ $vm​​ `

 ​​ ​​ ​​​​ -Name​​ diskSystem​​ `

 ​​ ​​ ​​​​ -DiskSizeInGB​​ 128​​ `

 ​​ ​​ ​​​​ -CreateOption​​ FromImage​​ `

 ​​ ​​ ​​​​ -Caching​​ ReadWrite​​ `

 ​​ ​​ ​​​​ -VhdUri​​ $osDiskUri

 

$Nic​​ =​​ Get-AzureRmNetworkInterface​​ -ResourceGroupName​​ $groupeRessource​​ -Name​​ carte$_-Gtek-it

$vm​​ =​​ Add-AzureRmVMNetworkInterface​​ -VM​​ $vm​​ -Id​​ $nic.Id

New-AzureRmVM​​ -ResourceGroupName​​ $groupeRessource​​ -Location​​ westeurope​​ -VM​​ $vm​​ 

 

}

write-host​​ "Création des VM linux"​​ -f​​ cyan

#création des machines linux ubuntu

($nbVMWindows+1)..($nbVMWindows+$nbVMLinux+1)​​ |​​ %{

#création des ip publiques

write-host​​ "création VM linux n°​​ $_"​​ -f​​ cyan

write-host​​ "Création de l'ip publique n°​​ $_"​​ -f​​ yellow

 

$pip​​ =​​ New-AzureRmPublicIpAddress ​​​​ -ResourceGroupName​​ $groupeRessource​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Location​​ westeurope​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -AllocationMethod​​ Static​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Name​​ $NomIpPublique$_

#créer autant de carte réseaux que de VM

$subnet=(Get-AzureRmVirtualNetwork​​ -ResourceGroupName​​ $groupeRessource​​ -Name​​ $reseauVirtuel).Subnets[0].id

$ippublic=(Get-AzureRmPublicIpAddress​​ -ResourceGroupName​​ $groupeRessource)[0].Id

#création de 4 cartes réseaux

write-host​​ "Création de la carte réseau n°​​ $_"​​ -f​​ green

 

$resvirtuel​​ =​​ New-AzureRmNetworkInterface​​ -Name​​ carte$_-GTEK-it​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -ResourceGroupName​​ $groupeRessource​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -Location​​ westeurope​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -SubnetId​​ $subnet​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -PublicIpAddressId​​ $pip.id `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -PrivateIpAddress​​ "$idssreso1.$($_​​ +​​ $ipresodep)"​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ 

$osDiskUri=$StorageAccount.PrimaryEndpoints.Blob.ToString()​​ +​​ "vhds/SRV$_.vhd"

write-host​​ "Création de la VM n°​​ $_"​​ -f​​ cyan

 

$vm​​ =​​ New-AzureRmVMConfig​​ -VMName​​ VM$_​​ -VMSize​​ Standard_D1

$vm​​ =​​ Set-AzureRmVMOperatingSystem​​ `

 ​​ ​​ ​​​​ -VM​​ $vm​​ `

 ​​ ​​ ​​​​ -ComputerName​​ srv$_​​ `

 ​​ ​​ ​​​​ -Credential​​ $auth​​ `

 ​​ ​​ ​​​​ -Linux

 

$vm​​ =​​ Set-AzureRmVMSourceImage​​ `

 ​​ ​​ ​​​​ -VM​​ $vm​​ `

 ​​ ​​ ​​​​ -PublisherName​​ canonical​​ `

 ​​ ​​ ​​​​ -Offer​​ ubuntuserver​​ `

 ​​ ​​ ​​​​ -Skus​​ 14.04.4-LTS​​ `

 ​​ ​​ ​​​​ -version​​ latest

 

$vm​​ =​​ Set-AzureRmVMOSDisk​​ `

 ​​ ​​ ​​​​ -VM​​ $vm​​ `

 ​​ ​​ ​​​​ -Name​​ diskSystem​​ `

 ​​ ​​ ​​​​ -DiskSizeInGB​​ 128​​ `

 ​​ ​​ ​​​​ -CreateOption​​ FromImage​​ `

 ​​ ​​ ​​​​ -Caching​​ ReadWrite​​ `

 ​​ ​​ ​​​​ -VhdUri​​ $osDiskUri

 

$Nic​​ =​​ Get-AzureRmNetworkInterface​​ -ResourceGroupName​​ $groupeRessource​​ -Name​​ carte$_-Gtek-it

$vm​​ =​​ Add-AzureRmVMNetworkInterface​​ -VM​​ $vm​​ -Id​​ $nic.Id

New-AzureRmVM​​ -ResourceGroupName​​ $groupeRessource​​ -Location​​ westeurope​​ -VM​​ $vm​​ 

 

 ​​ ​​ ​​​​ }

 ​​ ​​ ​​​​ Write-host​​ "Fin du traitement"​​ -f​​ blue​​ -b​​ white

}

 

creat-VM-Azure​​ -GroupeRessource​​ gtekit-101​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -reseauVirtuel​​ vnetgtek​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -ipReseauVirtuel​​ 192.168.0.0/23​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -ssReso1​​ sr1vnetgtek​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -ipSsReso1​​ 192.168.0.0/24​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -ssreso2​​ sr2vnetgtek​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -ipSsReso2​​ 192.168.1.0/24​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -NomIpPublique​​ ippubliquegtek​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -ipresodep​​ 5​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -storageAccount​​ stockagegtek​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -nomAdminSrvVM​​ admingtek​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -nbVMWindows​​ 2​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -nbVMLinux​​ 2​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -mdpAdminSrvVM​​ P@ssword123!

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ 

 

Laisser un commentaire