Blog de Florent Appointaire

Blog sur les technologies Microsoft (Windows Server, System Center, Azure, Windows Azure Pack/Azure Stack, etc;)

A partir de l’article suivant, je vais vous expliquer comment importer un item personnalisé dans le Market Place de Azure Stack.

Pour commencer, créez une image personnalisé avec l’article suivant: http://scug.be/florent/2016/02/04/azure-stack-add-a-custom-image-to-your-library/

Quand l’image est prête, récupérez les valeurs qui sont dans le manifest, au même endroit que votre VHD:

image

Nous pouvons maintenant créer notre Template. Téléchargez l’archive Azure Gallery Packaging Tool and a Sample Gallery Package avant de commencer la création. Ouvrez l’archive et renommer le fichier SimpleVMTemplate par le nom du Template que vous allez mettre dans Azure Stack:

image

Maintenant, créez un ARM template ou téléchargez en un depuis GitHub ou bien sur ce Github. Pour ma part, je vais en créer un nouveau, basé sur celui de Windows Server 2012 R2 qui est déjà déployé dans Azure Stack. Remplacez les valeurs de votre Template ARM dans la partie imageReference par les valeurs que vous avez récupéré dans le manifest du VHD:

"imageReference": {
  "publisher": "FlorentAppointaire",
  "offer": "WindowsServer",
  "sku": "2016-TP4"
},

Vous pouvez tester votre Template ARM avant pour être sur qu’il fonctionne sans problème. Sauvegardez votre template dans le dossier DeploymentTemplates:

image

Vous pouvez changer les îcones dans le dossier Icons en utilisant des tailles bien spécifiques, disponibles ici. Vous pouvez également modifier les différents textes, dans le fichier strings/resources.json, avec les références suivantes.

image

Maintenant, nous allons modifier le manifest. Ouvrez le et modifiez le comme ceci:

1 – Le même nom que votre nom de dossier
2 – Le nom du Publisher, sans espace
3 – La version de votre template
4 – Le nom du Template que le client verra
5 – Le nom du Publisher que le client verra
6 – Le nom du Publisher légal
7 – Le chemin où le fichier UIDefinition.json est stocké
8 – Le chemin et le nom de votre Template ARM
9 – Si vous en avez un second, renseignez le ici
10 – Le chemin et le nom de chaque icones, small, medium et large sont obligatoires
11 – Le nom de la catégorie où ce Template sera affiché. Vous pouvez ajouter plusieurs catégories

image

Sauvegardez votre fichier et ouvrez un command prompt. Déplacez vous dans le dossier qui contient AzureGalleryPackageGenerator:

image

Exécutez la commande suivante, en remplaçant par vos propre valeurs, pour générer un nouveau Template avec l’extension .azpkg:

AzureGalleryPackager.exe package –m <path to manifest.json> -o <output location for the package>

Dans mon cas:

AzureGalleryPackager.exe package -m "C:\Users\flore\Downloads\Azure Stack Marketplace Item Generator and Sample\Azure Stack Marketplace Item\WindowsServer-2016-TP4\manifest.json" -o "C:\Users\flore\Downloads\Azure Stack Marketplace Item Generator and Sample\Azure Stack Marketplace Item"

image

Si aucune erreur n’apparait, ouvrez le dossier que vous avez renseigné comme chemin de sorti. Vous avez un nouveau fichier, avec la structure suivante:

publisher.name.version.azpkg

image

Maintenant que nous avons le fichier, il est temps de l’importer dans Azure Stack. Copiez le fichier sur votre vm  ClientVM. Vous devez également avoir un compte administrateur pour l’importer. Assurez-vous également qu’un ResourceGroup est disponible. Pour la paramètre Name, donnez le nom de votre fichier, sans l’extension .azpkg.  Et pour le chemin, donnez le chemin où se trouve le fichier .azpkg. Ouvrez un prompt PowerShell et exécutez le script suivant pour importer la ressource dans la galerie, en l’adaptant avec vos valeurs:

# Add the Microsoft Azure Stack environment
[net.mail.mailaddress]$AadFullMailAddress="azurestack@azurelabdvo.onmicrosoft.com"
$AadTenantId=(Invoke-WebRequest -Uri ('https://login.windows.net/'+($AadFullMailAddress.Host)+'/.well-known/openid-configuration') -UseBasicParsing|ConvertFrom-Json).token_endpoint.Split('/')[3]

# Configure the environment with the Add-AzureRmEnvironment cmdlt
Add-AzureRmEnvironment -Name 'Azure Stack' `
    -ActiveDirectoryEndpoint ("https://login.windows.net/$AadTenantId/") `
    -ActiveDirectoryServiceEndpointResourceId "https://azurestack.local-api/"`
    -ResourceManagerEndpoint ("https://api.azurestack.local/") `
    -GalleryEndpoint ("https://gallery.azurestack.local/") `
    -GraphEndpoint "https://graph.windows.net/"

# Authenticate a user to the environment (you will be prompted during authentication)
$privateEnv = Get-AzureRmEnvironment 'Azure Stack'
$privateAzure = Add-AzureRmAccount -Environment $privateEnv -Verbose
Select-AzureRmProfile -Profile $privateAzure

# Select an existing subscription where the deployment will take place
$Subscription = Get-AzureRmSubscription -SubscriptionName "Default Provider Subscription"  | Select-AzureRmSubscription
$subId = Get-AzureRmSubscription -SubscriptionName "Default Provider Subscription" | Select SubscriptionId

Add-AzureRMGalleryItem -SubscriptionId $subId.SubscriptionId -ResourceGroup MarketplaceItems -Name FlorentAppointaire.WindowsServer-2016-TP4.1.0.0 -Path C:\Temp\FlorentAppointaire.WindowsServer-2016-TP4.1.0.0.azpkg  -Apiversion "2015-04-01" –Verbose

image

Si le déploiement retourne un StatusCode à OK, votre fichier est bien importé. Allez sur https://portal.azurestack.local et dans le Market Place, allez dans la catégorie mentionnée dans le manifest. Vous devriez voir votre nouveau template:

imageimage

Ci-dessous, 2 Template que j’ai créé pour Azure Stack:

Dites-moi si vous en souhaitez d’autres ou si vous avez des remarques/questions Sourire

Facebook Like
Anonymous