Blog de Florent Appointaire

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

7217.Windows-Azure-logo-v_6556EF52

Microsoft a rendu disponible fin Février une première version de Azure Pack Connector. Ce plugin vous permet, depuis l’interface de Windows Azure Pack, de déployer et gérer des VMs sur Azure. Le 5 Avril dernier, Microsoft a rendu disponible la version 1.1. C’est avec cette version que je vais vous montrer comment déployer cet outil.

Assurez vous d’avoir un Azure Active Directory avant de commencer. Ensuite, téléchargez le Azure Pack Connector: https://github.com/Microsoft/Phoenix/releases/tag/v1.1

Copiez les sources sur les serveurs qui hébergerons les 3 rôles que composent ce composant:

  • CMP Server
  • WAP Tenant Extension
  • WAP Admin Extension

Connectez vous sur un serveur qui contient IIS et générez un certificat de type Self-Signed ou d’entreprise, via une PKI. Exportez ce certificat, via IIS et importez le sur les serveurs qui hébergerons les 3 rôles précédent. Vous devez l’importer dans le Current User et dans le Local Machine, en incluant bien toutes les propriétés et en choisissant de placer automatiquement le certificat dans le bon magasin. Ensuite, ouvrez une MMC, et ajoutez le snap-in Certificates sur le Local Computer. Ouvrez les clés privées et ajoutez le groupe Everyone:

SNAGHTML960daa7

image

Ce certificat sera utilisé pour le chiffrement.

Vous devez maintenant télécharger et installer les Feature Pack suivante de SQL Server 2014, sur chaque serveur qui aura le plugin installé:

  • Shared Management Objects (SMO)
  • Transact-SQL ScriptDom (SQLDOM)
  • System CLR Types (SQLSysClrTypes)

Redémarrez les serveurs. Nous pouvons maintenant lancer l’installation du plugin. Décompressez l’archive que vous avez téléchargé sur le serveur où sera installé l’extension de la partie Admin et exécutez l’application SetupCMP.exe:

image

Choisissez d’ajouter de nouvelles fonctionnalités:

image

Ici, je vais sélectionner les 2 fonctionnalités suivantes:

  • CMP Server
  • WAP Admin Extension

image

Acceptez la licence:

image

Choisissez où installer les binaires:

image

Donnez le nom du serveur SQL qui hébergera la base de donnée, ainsi que son instance, pour la partie CMP Service:

image

Faites de même pour la partie WAP:

image

Je vais utiliser un compte de service pour faire tourner le service CMP. Ce compte doit être administrateur local de la machine. Choisissez également le certificat que vous avez généré au début:

image

Vous avez ici un résumé de votre installation:

image

L’installation est terminée:

image

Dans IIS Manager:

image

Dans la partie WAP Admin Portal:

image

Allez maintenant sur le serveur qui contient le site Tenant et exécutez le fichier SetupCMP.exe. L’installation est la même, sauf que vous allez choisir la partie WAP Tenant Extension:

image

Choisissez d’utiliser une base de donnée existante:

image

image

Et choisissez le certificat que vous avez importé:

image

Installez le dernier composant:

image

image

Allez maintenant sur l’instance SQL qui contient la base de donnée Microsoft.MgmtSvc.Store et exécutez la requête suivante pour créer un nouvel utilisateur et l’associer à la base de donnée. Vous pouvez changer le nom d’utilisateur/mot de passe:

USE [master]
GO
CREATE LOGIN [MgmtSvc-CmpWapExtension] WITH PASSWORD=N'pass@word1', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [Microsoft.MgmtSvc.Store]
GO
CREATE USER [MgmtSvc-CmpWapExtension] FOR LOGIN [MgmtSvc-CmpWapExtension]
ALTER USER [MgmtSvc-CmpWapExtension] WITH DEFAULT_SCHEMA=[dbo]
ALTER ROLE [db_owner] ADD MEMBER [MgmtSvc-CmpWapExtension]
GO

image

Il faut maintenant fournir la bonne chaine de connexion SQL à notre plugin. Allez sur le serveur qui contient l’extension CMP et ouvrez le fichier Web.config (en tant qu’administrateur) dans le dossier C:\inetpub\MgmtSvc-CmpWapExtension. Remplacez la chaine de connexion MicrosoftMgmtSvcStoreContext par la suivante, en adaptant avec vos données:

<add name="MicrosoftMgmtSvcStoreContext" connectionString="Data Source=DEVOC-SQL-001\WAP;Initial Catalog=Microsoft.MgmtSvc.Store;Persist Security Info=True;User ID=MgmtSvc-CmpWapExtension;Password=pass@word1;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>

image

Modifiez les 2 chaines de connexions précédentes en ajoutant après la base de donnée, ;MultipleActiveResultSets=True”

image

Faites les 2 étapes précédentes sur chaque serveur CMP. Associez le certificat utilisé lors de l’installation au site IIS, sur chaque serveur:

image

Exécutez sur chaque serveur un iisreset pour prendre en compte les modifications. Sur un des serveurs, nous allons lancer le script qui permet d’enregistrer ce nouveau Resource Provider. Allez dans C:\inetpub\MgmtSvc-CmpWapExtension et exécutez le script Register-ResourceProvider.ps1. Vous devez fournir le nom du serveur qui contient l’extension d’administration et l’extension tenant:

image

Dans votre portail d’administration, le RP est enregistré correctement:

image

Téléchargez maintenant le script suivant : https://github.com/Microsoft/Phoenix/blob/master/tools/Create-AADSPN.ps1 et exécutez le sur un ordinateur qui contient le module AzureRM. Ce script va créer une application personnalisée dans votre Azure AD.

SNAGHTML92708a6

Nous allons maintenant ajouter le plugin à un plan. Vous aurez besoin des informations suivantes (ces informations sont disponibles dans la sortie du script que vous avez exécuté juste avant) :

  • Le numéro de la suscription Azure (subscriptionId)
  • Le numéro de votre Azure AD (tenantId)
  • La clé que vous avez renseigné lors de la création de l’application (appKey)
  • Le numéro de l’application de l’Azure AD (App ID)

Depuis le portail d’administration, ajoutez le service CMP à un plan:

image

Vous devriez avoir une page semblable à celle ci, en ajoutant un compte:

image

Remplissez chaque case avec les informations que vous avez récolté:

SNAGHTML93f812d

Cliquez sur le bouton Add Subscription. Si tout est OK, vous aurez un bandeau vert avec un message de succès:

SNAGHTML941ec03

Ajoutez la suscription au Plan en cliquant sur Add Selected Subscription To Plan:

image

Choisissez les images disponibles ainsi que les tailles et cliquez sur Save:

SNAGHTML94378bd

Dans le portail client, vous pouvez maintenant déployer une VM sur Azure:

image

image

image

image

Et avec le détail:

SNAGHTML972cc38

Ce nouveau plugin est très intéressant pour avoir la possibilité de déployer rapidement une VM sur Azure, mais certaines fonctionnalités sont manquantes, comme la possibilité de déployer une VM sur un Datacenter européen, des VMs linux, etc…

Troubleshooting

Erreur 1

Après le déploiement, j’ai eu l’erreur suivante dans le journal d’évènement:

Exception in SyncWorker.SynchWithCmp() : Exception in CmpClient.FetchCmpRequests() : Exception in GetAzureContainers() : The underlying provider failed on Open. - Cannot open database "CMP_DB" requested by the login. The login failed.
Login failed for user 'DOMAIN\DEVOC-WAPTNT-01$'. :

SNAGHTML9468d8f

Les comptes ordinateurs de mes 2 VMs n’avaient pas les droits sur l’instance qui contient les DBs CMP. Je les ai donc rajouté sysadmin, et l’erreur a disparu.

Erreur 2

Si vous avez l’erreur suivante:

Exception in SyncWorker.SyncWithAzure() : Exception in FetchServiceProviderAccountList() : Exception in Decrypt() : Keyset does not exist
:

SNAGHTML96a6121

Assurez vous d’avoir bien donné la permission à Everyone en Full pour gérer les clés privés du certificat importé.

Facebook Like
Anonymous