Comment exécuter Azure Cloud Shell dans Microsoft Teams ?

Introduction

Azure Cloud Shell est un outil si puissant que vous n’avez pas besoin d’installer Azure CLI ou des modules PowerShell en local sur votre machine pour automatiser vos tâches. Les modules sont constamment mis à jour par Microsoft.

Dans cet article nous allons voir comment exécuter Azure Cloud Shell dans Microsoft Teams. Ce scénario est utile si vous passez beaucoup de temps dans Teams et que vous souhaitez exécuter des commandes PowerShell et Azure CLI rapides. Pour ceux qui le découvrent, Microsoft Teams est un hub pour le travail d’équipe dans Office 365 dans lequel vous conservez tous les chats, réunions, fichiers et applications de votre équipe au même endroit.

Exécuter Cloud Shell dans Microsoft Teams

En supposant que Microsoft Teams soit déjà ouvert, choisissez le canal souhaitée et procédez comme suit :

Cliquez sur le signe plus pour ajouter un nouvel onglet, puis choisissez le site Web.

blog ai3 2-1-1 Comment exécuter Azure Cloud Shell dans Microsoft Teams ?

Dans la nouvelle fenêtre du site Web, attribuez un nom à l’onglet (Cloud Shell), puis saisissez l’URL du cloud shell (https://shell.azure.com). Cliquez ensuite sur Enregistrer .

blog ai3 3-1 Comment exécuter Azure Cloud Shell dans Microsoft Teams ?

Une fois que vous avez cliqué sur Enregistrer, il vous sera demandé de vous authentifier d’abord, puis de sélectionner l’annuaire Azure souhaité, afin que vous puissiez utiliser d’autres informations d’identification pour accéder à Cloud Shell si nécessaire.

Voilà, un nouvel onglet Azure Cloud Shell est affiché dans votre canal d’équipe. Vous pouvez agrandir l’onglet pour profiter d’une vue plus grande.

blog ai3 4-1-removebg-2 Comment exécuter Azure Cloud Shell dans Microsoft Teams ?

Veuillez noter que lorsque vous quittez l’onglet, puis que vous revenez, la page s’actualise à chaque fois et vous obtiendrez une nouvelle session Cloud Shell, mais vous n’avez pas besoin de vous authentifier à nouveau. Ce n’est pas très utile ou productif, mais c’est une fonctionnalité agréable. En fin de compte, il s’agit simplement d’un onglet qui actualise la page chaque fois que vous accédez à un autre onglet, puis que vous revenez.

Un scénario qui pourrait se produire est que si vous avez une réunion dans Teams et que vous la détachez, vous pouvez voir à la fois le contenu de la réunion et le nouvel onglet de Cloud Shell. Espérons qu’un jour Microsoft ajoutera cette fonctionnalité.

Si vous n’utilisez pas Microsoft Teams, vous pouvez utiliser le Connecteur Azure Cloud Shell dans le terminal Windows . Si vous êtes débutant avec Windows Terminal, vous pouvez lire cet article. Vous pouvez le télécharger gratuitement à partir du Microsoft Store .

Comment activer et désactiver Soft Delete dans Azure File Shares ?

Dans cet article, nous verrons comment activer et désactiver la fonctionnalité Soft Delete pour les partages de fichiers Azure (file share) dans un compte de stockage à l’aide de l’API REST, afin que vous puissiez automatiser ce processus dans le cadre de votre gestion quotidienne.

Introduction

Le 28 mai 2020, l’équipe Azure Backup en coordination avec l’équipe Azure Files a annoncé la disponibilité générale de la fonctionnalité tant attendue « Soft Delete » pour protéger vos partages de fichiers contre la suppression accidentelle et les acteurs malveillants.

Soft Delete est une nouvelle fonctionnalité qui active l’état intermédiaire « suppression logicielle » pour les partages de fichiers lorsqu’ils sont supprimés accidentellement ou par malveillance. Soft Delete est configurable au niveau du compte de stockage mais fonctionne uniquement au niveau du partage de fichiers. En d’autres termes, lorsque vous activez Soft Delete au niveau du compte de stockage, tous les partages de fichiers existants, ainsi que ceux nouvellement créés, seront protégés et adhéreront à cette politique. Lorsque Soft Delete est activé vous devez définir la politique de rétention (période) en jours, la politique de rétention détermine la fenêtre de temps pendant laquelle le contenu du partage de fichiers sera conservé avant la suppression définitive.

Prérequis

Pour suivre cet article, vous devez disposer des éléments suivants:

  1. Abonnement Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez en créer un gratuitement ici.
  2. Compte de stockage Azure – Pour créer un compte de stockage à usage général, suivez les instructions décrites ici.
  3. Session Azure Cloud Shell – (https://shell.azure.com), un environnement de shell interactif que vous pouvez utiliser via votre navigateur.
    La bonne nouvelle est que les appels d’API Azure REST natifs sont désormais disponibles dans le cadre de Cloud Shell.
    Si vous ne prévoyez pas d’utiliser Cloud Shell, vous devrez effectuer la mise à jour vers Azure CLI version 2.0.67+.
  4. Deux fichiers JSON, un pour activer Soft Delete et le second pour le désactiver.

Activer Soft Delete

Tout d’abord, vous devez enregistrer le contenu JSON suivant sur un fichier qui activera Soft Delete et définira la rétention sur 14 jours, vous pouvez modifier la période de rétention et la définir entre 1 et 365 jours.

Ensuite, téléchargez le fichier JSON dans votre répertoire cloud shell $Home.

blog ai3 AzFS-SoftDelete-API-01-1 Comment activer et désactiver Soft Delete dans Azure File Shares ?

Désactiver Soft Delete

Comme pour l’activation de Soft Delete, vous devez enregistrer le contenu JSON suivant dans un fichier qui désactivera Soft Delete pour les partages de fichiers dans un compte de stockage.
La valeur de enabled est « false » et celle de days est « 0 ».

Ensuite, téléchargez le fichier JSON dans votre répertoire cloud shell $Home.

blog ai3 AzFS-SoftDelete-API-02 Comment activer et désactiver Soft Delete dans Azure File Shares ?

Automatiser Soft Delete pour les partages de fichiers

Ouvrez le cloud shell et lancez une session PowerShell. Vous pouvez également utiliser Bash au lieu de PowerShell, mais vous risquez de rencontrer des problèmes de mise en forme liés aux guillemets.
Vous pouvez vous référer à ce document pour plus de détails sur les problèmes liés aux guillemets.

Définir des variables

Avant de commencer, vous devez définir trois variables dans la session Cloud Shell auxquelles vous devez vous référer lorsque vous commencez à automatiser ce processus via l’API REST.

Les variables sont:

  • $subId = « ID d’abonnement »
  • $rgName = « Nom du groupe de ressources »
  • $saName = « Nom du compte de stockage »

Obtenir Soft Delete pour les partages de fichiers

Une fois que toutes les variables sont en place, vous pouvez utiliser l’appel d’API suivant à l’aide de « az rest –method get » pour obtenir l’état du partage de fichiers Azure.

blog ai3 AzFS-SoftDelete-API-10 Comment activer et désactiver Soft Delete dans Azure File Shares ?

Comme vous pouvez le voir dans la figure ci-dessous, Soft Delete est désactivé.

blog ai3 AzFS-SoftDelete-API-03-1 Comment activer et désactiver Soft Delete dans Azure File Shares ?

Si vous regardez le portail Azure, vous verrez que Soft Delete pour les partages de fichiers est désactivé.

blog ai3 AzFS-SoftDelete-API-04 Comment activer et désactiver Soft Delete dans Azure File Shares ?

Activer Soft Delete pour les partages de fichiers

Pour activer Soft Delete pour les partages de fichiers, vous pouvez utiliser l’appel d’API suivant à l’aide de « az rest –method put » pour définir les propriétés du partage de fichiers Azure en bypassant le fichier JSON -body ‘@enableSoftDelete.json’

blog ai3 AzFS-SoftDelete-API-11 Comment activer et désactiver Soft Delete dans Azure File Shares ?

Comme vous pouvez le voir dans la figure ci-dessous, Soft Delete est activé pendant 14 jours.

blog ai3 AzFS-SoftDelete-API-05 Comment activer et désactiver Soft Delete dans Azure File Shares ?

Si vous regardez le portail Azure, vous verrez la même chose, Soft Delete pour le partage de fichiers est maintenant activé.

blog ai3 AzFS-SoftDelete-API-06 Comment activer et désactiver Soft Delete dans Azure File Shares ?

Pour désactiver Soft Delete, vous pouvez utiliser le même appel d’API en utilisant ‘az rest –method put’ pour définir les propriétés du partage de fichiers, mais cette fois, vous devez fournir le fichier -body ‘@disableSoftDelete.json’.

blog ai3 AzFS-SoftDelete-API-09 Comment activer et désactiver Soft Delete dans Azure File Shares ?

Comme vous pouvez le voir dans la figure ci-dessous, Soft Delete est à nouveau désactivé.

blog ai3 AzFS-SoftDelete-API-07 Comment activer et désactiver Soft Delete dans Azure File Shares ?

Résumé

Soft Delete protège vos partages de fichiers Azure contre la suppression accidentelle. Microsoft recommande d’activer Soft Delete pour la plupart des partages de fichiers. Si vous avez un workflow où la suppression de fichiers partagés est fréquente, vous pouvez décider d’avoir une période de rétention très courte ou de ne pas activer du tout Soft Delete.
Comme décrit dans cet article, vous pouvez automatiser votre flux de travail à l’aide des API REST.

Soft Delete fait partie d’une stratégie de protection des données et peut aider à prévenir la perte de données par inadvertance.
Actuellement le seul moyen d’automatiser ce processus consiste à utiliser les API REST, Azure PowerShell n’est pas encore disponible.
Il est possible que Microsoft ajoutera cette capacité à l’avenir.

Si vous utilisez Azure Backup, Soft Delete sera automatiquement activé pour toutes les instances de partage de fichiers protégées pendant 14 jours par défaut.
Soft Delete ne protège pas contre les suppressions de fichiers individuels. Pour celles-ci, vous devez restaurer à partir de vos sauvegardes de clichés.

Comment sauvegarder des référentiels Azure DevOps Git ?

DevOps est une tendance émergente dans le monde du développement logiciel depuis plusieurs années. Bien que le terme puisse être relativement nouveau, il s’agit en réalité d’une convergence d’un certain nombre de pratiques qui évoluent depuis des décennies. DevOps est un moyen révolutionnaire de publier des logiciels rapidement et efficacement tout en maintenant un haut niveau de sécurité.

Azure DevOps, anciennement connu sous le nom de Visual Studio Team Services (VSTS), est une plateforme de logiciel en tant que service (SaaS) de Microsoft qui fournit une chaîne d’outils DevOps de bout en bout pour le développement et le déploiement de logiciels. Il s’intègre également à la plupart des outils du marché et constitue une excellente option pour orchestrer une chaîne d’outils DevOps. Il s’intègre également parfaitement à Visual Studio et Visual Studio Code. Alors que le code est parfaitement sûr sur l’infrastructure Azure comme décrit par Microsoft ici (Azure DevOps data protection overview), y compris les sauvegardes périodiques et la géo-réplication. Cela n’empêche pas les actions non intentionnelles ou malveillantes pouvant entraîner une perte de données.

Il existe également des cas où une sauvegarde locale centralisée de tous les projets et référentiels est nécessaire. Celles-ci peuvent inclure des politiques d’entreprise, plans de continuité des activités et de reprise après sinistre (BC / DR : Business continuity and disaster recovery).
Malheureusement, il n’y a pas de solution de sauvegarde prête à l’emploi comme le confirme Microsoft ici.
Éventuellement, ce que nous pourrions faire est de télécharger le repo manuellement à partir d’Azure DevOps dans un fichier Zip, comme illustré dans l’image ci-dessous.

blog ai3 Auto-Backup-AzDevOps-Repo-01-1024x519 Comment sauvegarder des référentiels Azure DevOps Git ?

Cette solution fonctionne mais n’est pas pratique si nous avons un nombre considérable de projets et de référentiels et que nous avons besoin de les sauvegarder régulièrement.

Nous allons explorer d’autres méthodes et voir comment automatiser la sauvegarde des référentiels.

Prérequis

Pour suivre cet article, vous devez disposer des éléments suivants:
1) Abonnement Azure – Si vous n’avez pas d’abonnement Azure, vous pouvez en créer un gratuitement ici.
2) Compte de stockage Azure – Pour créer un compte de stockage à usage général, suivez les instructions décrites ici.
3) Azure DevOps – Si vous n’en avez pas, vous pouvez en créer un gratuitement ici.
– Vous avez un Azure Repos existant.
– Vous êtes familiarisé avec Azure Pipelines et la syntaxe YAML.

Automatiser la sauvegarde du référentiel Azure DevOps

Pour automatiser la sauvegarde d’un référentiel, vous avez les possibilités suivantes :
1) Sauvegarder par programme le code source d’Azure DevOps à l’aide de l’API REST Azure DevOps. Ensuite, vous pouvez utiliser Azure Functions avec un déclencheur temporel (time trigger) pour l’exécuter selon une planification.
2) Créez un script git bash pour faire du mirroring et sauvegarder le référentiel Git.
3) Cloner le dernier référentiel sur votre machine, puis automatiser la sauvegarde à l’aide de votre application de sauvegarde sur site préférée telle que SCDPM, Veeam, etc…
4) Tirer parti du service Azure DevOps pour automatiser la sauvegarde et copier le référentiel sur le stockage Blob Azure ou sur une machine virtuelle Azure.

Pour le reste de cet article, nous utiliserons l’option 4 pour automatiser la sauvegarde du référentiel à l’aide d’un pipeline YAML et des tâches en ligne de commande.

Le processus est le suivant :
1) Créer un jeton d’accès personnel Azure DevOps (PAT).
2) Créer un pipeline YAML avec les tâches suivantes :

  • Cloner le référentiel Git.
  • Archiver le référentiel Git.
  • Copier le fichier d’archive dans le stockage Blob Azure.

Créer un jeton d’accès personnel Azure DevOps

Connectez-vous au portail Azure DevOps et procédez comme suit :

Dans le coin supérieur droit du portail, vous avez des paramètres utilisateur à côté de l’image de votre compte. En cliquant dessus, vous affichez le menu du compte où vous pouvez trouver l’option « Personal access tokens » comme indiqué dans l’image ci-dessous.

blog ai3 Auto-Backup-AzDevOps-Repo-02-2 Comment sauvegarder des référentiels Azure DevOps Git ?

La page « Personal access tokens » s’ouvre.
Cliquez sur « New Token » pour créer un nouveau token.
Pour cet exemple, il suffit de cocher « Read » dans « Code » comme indiqué dans l’image ci-dessous.
Ensuite, donnez un nom au jeton, puis définissez la date d’expiration et cliquez sur « Create ».

blog ai3 Auto-Backup-AzDevOps-Repo-03 Comment sauvegarder des référentiels Azure DevOps Git ?

Une fois le jeton créé, vous obtiendrez sa valeur et ensuite il ne sera plus affiché, vous devez donc le copier et l’enregistrer ailleurs.
Nous aurons besoin de ce jeton dans la section suivante pour cloner le référentiel.

Créer un pipeline YAML

Azure Pipelines prend en charge l’intégration continue (CI) et la livraison continue (CD) pour tester et créer votre code de manière constante et cohérente et le déployer sur n’importe quelle cible. Pour cela vous devez utiliser un un pipeline.
Lorsqu’il y a une mise à jour de votre référentiel, le pipeline sera déclenché pour s’exécuter et copier l’intégralité du référentiel.

Pour créer un pipeline YAML, vous devez :

1) Accéder à votre projet d’équipe sur Azure DevOps dans un nouvel onglet de navigateur.
2) Accéder au hub Pipelines sur le côté gauche.
3) Cliquer sur « New pipeline ». Nous utiliserons l’assistant pour créer automatiquement la définition YAML basée sur notre projet.

blog ai3 Auto-Backup-AzDevOps-Repo-04 Comment sauvegarder des référentiels Azure DevOps Git ?

4) Ensuite, sélectionnez « Azure Repos Git » comme plate-forme d’hébergement source.

blog ai3 Auto-Backup-AzDevOps-Repo-05 Comment sauvegarder des référentiels Azure DevOps Git ?

5) Sélectionnez ensuite votre référentiel. Dans notre exemple, le dépôt s’appelle « infra-code-cn »

blog ai3 Auto-Backup-AzDevOps-Repo-06 Comment sauvegarder des référentiels Azure DevOps Git ?

6) Ensuite, sélectionnez le template « Starter pipeline » comme point de départ du pipeline de sauvegarde.

blog ai3 Auto-Backup-AzDevOps-Repo-07 Comment sauvegarder des référentiels Azure DevOps Git ?

7) Le pipeline de démarrage s’ouvrira avec la définition YAML par défaut suivante.

blog ai3 Auto-Backup-AzDevOps-Repo-08 Comment sauvegarder des référentiels Azure DevOps Git ?

8) Ensuite, nous devons mettre à jour la définition YAML. La syntaxe complète de la définition YAML pour surveiller et sauvegarder toutes les branches ressemble à ceci (le PAT, l’abonnement Azure et le compte de stockage ont été intentionnellement modifiés dans cet exemple).
Les détails de la configuration sont sous l’image.

blog ai3 Auto-Backup-AzDevOps-Repo-09-1 Comment sauvegarder des référentiels Azure DevOps Git ?
  • Trigger (intégration continue): le joker (*) peut surveiller toutes les branches. Donc, s’il y a une mise à jour du référentiel, le pipeline sera déclenché pour s’exécuter.
  • Pool (windows-latest): cette tâche est écrite dans PowerShell et ne fonctionne donc que lors de l’exécution sur des agents Windows.
  • La tâche CmdLine : Cette commande appelle ‘git clone –mirror’ pour faire une copie du référentiel git. Ici, il faut utiliser le jeton d’accès personnel (PAT) que nous avons créé au cours des étapes précédentes.
    La syntaxe complète de la tâche de ligne de commande ressemble à ceci : ‘git clone –mirror https: // {yourPAT} @ dev.azure.com / {yourOrganizationName} / {yourProjectName} / _git / {yourRepoName}’
  • La tâche d’archivage des fichiers : cela prendra le référentiel git qui a été cloné à partir de l’étape précédente, puis compressé dans un fichier Backup.zip et écrasera le fichier d’archive existant sur l’image de machine virtuelle utilisée dans le pool. La tâche d’archivage des fichiers comprend une gamme de formats d’archive standard tels que .zip, .jar, .war, .ear, .tar, .7z, etc.
  • La tâche de copie de fichier : la tâche de copie prend le fichier d’archive Backup.zip et l’envoie au stockage Blob Azure. Dans cette tâche, vous devez spécifier l’abonnement Azure cible, le compte de stockage et le nom du conteneur.

9) Enfin, cliquez sur « Save and run » puis faites un commit.

blog ai3 Auto-Backup-AzDevOps-Repo-10 Comment sauvegarder des référentiels Azure DevOps Git ?

10) Une fois que vous avez fait un commit, vous devez donner au pipeline l’autorisation nécessaire pour accéder à la ressource avant qu’elle ne puisse s’exécuter pour la première fois. Cliquez sur « View ».

blog ai3 Auto-Backup-AzDevOps-Repo-11 Comment sauvegarder des référentiels Azure DevOps Git ?

11) Sur la page « Waiting for review », cliquez sur « Permit », puis de nouveau sur « Permit » dans la fenêtre de confirmation d’accès.

blog ai3 Auto-Backup-AzDevOps-Repo-12 Comment sauvegarder des référentiels Azure DevOps Git ?

12) Une fois que vous avez cliqué sur « Permit », le pipeline démarre et exécute le travail. Il devrait être terminé en environ 2 minutes.

blog ai3 Auto-Backup-AzDevOps-Repo-13 Comment sauvegarder des référentiels Azure DevOps Git ?

13 ) Vous recevrez un e-mail si le build a échoué ou a réussi comme ci-dessous.

blog ai3 Auto-Backup-AzDevOps-Repo-14 Comment sauvegarder des référentiels Azure DevOps Git ?

Vérification du backup

Pour vérifier la sauvegarde, connectez-vous au portail Azure et accédez au compte de stockage. Allez dans « Containers » dans « Blob service« .

Vous verrez un nouveau conteneur nommé « azure-devops-container » comme nous l’avons défini dans la définition YAML.

blog ai3 Auto-Backup-AzDevOps-Repo-15 Comment sauvegarder des référentiels Azure DevOps Git ?

Cliquez sur le nom du conteneur, puis ouvrez le dossier qui est le préfixe Blob (az-devops-backup), vous verrez le fichier d’archive Backup.zip comme indiqué dans l’image ci-dessous.

blog ai3 Auto-Backup-AzDevOps-Repo-16 Comment sauvegarder des référentiels Azure DevOps Git ?

Restaurer depuis un backup

Pour restaurer à partir d’un backup, vous devez d’abord télécharger le fichier d’archive Backup.zip à partir du conteneur et l’extraire localement sur votre machine.

Une fois que vous avez extrait le fichier, vous verrez le nom du référentiel avec l’extension .git. Ouvrez la fenêtre d’invite de commande en supposant que Git est déjà installé sur votre machine, accédez au dossier .git, puis exécutez la commande suivante pour pousser et restaurer votre référentiel. Veuillez noter que vous pouvez restaurer dans le même projet / référentiel ou vous pouvez restaurer dans un nouveau projet / nouveau référentiel.

blog ai3 Auto-Backup-AzDevOps-Repo-17 Comment sauvegarder des référentiels Azure DevOps Git ?

L’option –mirror est utilisée avec la commande clone pour la sauvegarde et la commande push. Cette option garantit que toutes les branches et autres attributs sont répliqués dans le nouveau référentiel.

Une fois que vous restaurez le référentiel, il comporte également toutes les informations de révision comme indiqué dans l’image ci-dessous.

blog ai3 Auto-Backup-AzDevOps-Repo-18 Comment sauvegarder des référentiels Azure DevOps Git ?

Voilà c’est fini !

Résumé

La logique du pipeline YAML est que, s’il y a un changement dans votre référentiel source, le pipeline sera déclenché et il prendra la dernière copie dans System.DefaultWorkingDirectory (tâche CmdLine) et archivera cette copie dans un fichier Backup.zip, puis la tâche Azure File copy copiera le fichier .zip dans le stockage d’objets blob Azure. Vous pouvez également le copier sur une machine virtuelle Azure, ce qui vous permet de créer une sauvegarde quotidienne / hebdomadaire pour votre machine virtuelle.

À l’aide de tâches simples, nous pouvons automatiser et produire une copie complète du référentiel qui pourrait être facilement restaurée ou importée dans le nouveau projet.

Continuous integration for a SharePoint Framework Project

 

blog ai3 Header-1024x195 Continuous integration for a SharePoint Framework Project

 

SharePoint Framework is the development tooling used for the new SharePoint Modern Pages, it allow to create WebPart, List Field Customiser or Page extensions.

In the context of a development project, you may be need to increase the speed of your deployment and testing by using the Azure DevOps Tool Suite. You’ll find below a small tutorial to automate your build and release with Azure DevOps.

The SharePoint Framework package creation with Azure DevOps is splitted in two parts: the creation of the package itself and its deployment to the SharePoint Online App Catalog.

Build Setup :

From the Pipelines menu click on Builds and on New Pipeline, the configuration wizard is displayed:

blog ai3 Create-Build1-300x211 Continuous integration for a SharePoint Framework Project

From this screen, you should select your project, the repository and your target branch. On the next screen, you have the possibility to start from a template but we’ll start from a fresh template, so click one Empty Job

blog ai3 Create-Build2-300x70 Continuous integration for a SharePoint Framework Project

 

To do this job you should had the following steps :

 

  • Task Node Tool Installer

Here we will install the recommended Node Version for SharePoint Framework : 8.11.

blog ai3 Create-Build3-300x155 Continuous integration for a SharePoint Framework Project

  • Task NPM

Here we’re installing all Node Modules for our project

 

blog ai3 Create-Build4-300x182 Continuous integration for a SharePoint Framework Project

 

  • Task Gulp x2

Here we’re adding 2 gulp task to bundle and package our SPFX project

blog ai3 Create-Build5-300x273 Continuous integration for a SharePoint Framework Projectblog ai3 Create-Build6-270x300 Continuous integration for a SharePoint Framework Project

 

  • Task Publish Build Artifacts

Finally we’re publishing the build package to use it in the release pipeline

blog ai3 Create-Build7-279x300 Continuous integration for a SharePoint Framework Project

Release Setup:

There’s several ways to publish a SPFX package : Gulp, PowerShell and the Office 365 CLI. For this tutorial I’ll use the latest method because it is system agnostic ( based on NodeJS ) and easier to use.

First of All, you’ll have to grant the permissions on your tenant to the Office 365 CLI ( just connect to your tenant through this CLI from your computer ).
You can find an installation guide of Office 365 CLI here : https://pnp.github.io/office365-cli/

 

blog ai3 Create-Release1-1024x654 Continuous integration for a SharePoint Framework Project

Once it’s done, we’re ready to create our Release Pipeline.

 

From the Pipelines menu click on Releases, New, and then Release Pipeline: the Configuration Wizard is appearing :blog ai3 Create-Release2 Continuous integration for a SharePoint Framework Project

Click on Empty Job  and define a name for your stage ( for our example the stage name will be SharePoint Online ), once it’s done click on the hyperlink below the stage name and access to the task list:blog ai3 Create-Release3 Continuous integration for a SharePoint Framework Project

Add the following tasks :

 

  • Task Node Tool Installer :

We’re installing the recommended Node version for the Office 365 CLI

blog ai3 Create-Release4 Continuous integration for a SharePoint Framework Project

 

  • Task NPM :

We’re installing the Office 365 CLI

 

blog ai3 Create-Release5 Continuous integration for a SharePoint Framework Project

 

  • Task Command Line :

We’re first connecting to the tenant through a user / password authentication method: tenantUrl, password and username are here Custom Variables

blog ai3 Create-Release7 Continuous integration for a SharePoint Framework Project

  • Task Command Line :

Finally we’re adding the app to the app catalog ( _TestIC-CI is the Artifact Name )

blog ai3 Create-Release8 Continuous integration for a SharePoint Framework Project

To test your work create a new release and your package will be deployed in your tenant catalog !

Azure VM Scale Sets : 3 Création du scaleset à partir du vhd

Dans le dernier article de cette série nous allons :

  • Récupérer le blob du vhd modèle
  • Créer un scaleset à partir du vhd
  • Mettre à jour un scaleset à partir du vhd

Cet article s’inscrit dans une série d’articles visant à montrer comment créer un groupe de machines virtuelles identiques à partir d’une machine virtuelle modèle.

3ème étape créer ou mettre à jour le scaleset

1. Initialiser les variables

2. Récupérer le blob du vhd modèle

3. Créer le VMSS à partir du vhd

Nous allons vérifier si un groupe de machine existe déjà, sinon nous allons créer celui-ci.

Comme pour la copie de la vm nous utilisons un template ARM pour configurer la machine. Pour des informations plus détaillées sur celui-ci vous pouvez vous référer à la documentation officielle.

La partie intéressante est « virtualMachineProfile », c’est dans celle-ci que l’on indique que le scaleset se base sur le vhd de la machine modèle.

Le fichier suivant contient les paramètres du template ARM :

4. Mettre à jour le scaleset à partir du vhd

Si vous avez déjà créé le groupe de machines virtuelles il est possible de mettre à jour celui-ci à partir de votre nouvelle image modèle. Il faut ensuite déployer sur chaque instance de votre scaleset la mise à jour.

A l’issue de cette série d’articles nous avons, à l’aide de powershell et des templates ARM:

  • Créé une copie d’une vm existante
  • Généralisé celle-ci
  • Transféré le vhd d’un espace de stockage à un autre
  • Créé ou mis à jour un scale set à partir de l’image

J’espère que cette série d’article a pu vous éclairer sur ce processus !

 

Azure VM Scale Sets : 2 Création du vhd modèle

Dans ce second article sur Azure nous allons :

  • Généraliser notre VM modèle temporaire
  • Sauvegarder notre image modèle ainsi générée

Lors de la première étape nous avons créé une machine virtuelle, copie temporaire de notre modèle, sur laquelle nous avons automatiquement lancé un script de généralisation. Un fichier .vhd sera généré et sera prêt à être utilisé dans un scaleset azure à l’issue de cet article.

2ème étape généraliser la machine virtuelle temporaire

1. Récupérer et éteindre la vm modèle temporaire

2. Finaliser la généralisation de la vm temporaire

A l’étape précédente nous avons généralisé la vm à l’aide de sysprep.exe. Il faut indiquer à Azure que la machine a été généralisée.

3. Sauver la vm généralisée sous la forme d’un vhd

Maintenant que notre machine virtuelle est entièrement généralisée nous pouvons extraire l’image (vhd) que nous utiliserons pour le scaleset.

Le paramètre -Path correspond au chemin local du template arm automatiquement généré.

4. Supprimer la vm généralisée temporaire

La machine temporaire n’est plus d’aucune utilité et peut être supprimée.

 

Dans le prochain article nous verrons comment utiliser le vhd généré pour créer notre scaleset.

Si vous avez besoin de transférer le vhd d’un storage à un autre vous pouvez utiliser un outil tel que cloud berry. Ou aller voir cet article expliquant comment effectuer le transfert à l’aide de powershell.

Azure VM Scale Sets : 1 Copie de la VM modèle

Dans cette série d’article nous allons explorer les groupes de machines virtuelles identiques (scaleset) Azure à l’aide de powershell et des template ARM.

Dans ce premier article nous allons :

  • Créer une copie d’une machine virtuelle azure à l’aide de script powershell et de template arm
  • Configurer cette copie pour qu’un script de généralisation se lance automatiquement au démarrage

Rapide rappel sur les Scale Sets azure à partir de la documentation microsoft :

Les groupes identiques de machines virtuelles Azure vous permettent de créer et de gérer un groupe de machines virtuelles identiques et disposant d’une charge équilibrée. Le nombre d’instances de machine virtuelle peut augmenter ou diminuer automatiquement en fonction d’une demande ou d’un calendrier défini.

Nous allons nous baser sur un cas d’utilisation de cette technologie :

  • Le client dispose d’une vm sur azure et souhaite, à partir de celle-ci, créer une collection de machine afin de pouvoir simplement créer ou supprimer des machines de sa collection en fonction de la charge actuelle
  • Le client à deux options :
    • A partir de sa machine créer une image fixe et déployer celle-ci sur son scaleset :
      Pros : l’utilisateur aura une copie conforme de sa machine
      Cons : si l’utilisateur met à jour sa machine modèle il devra écraser chaque machine le scaleset pars sa nouvelle image
    • Créer un scaleset à partir d’une image par défaut. Lors de la création d’une image lancer un script qui installera les composants nécessaires
      Pros : les machines auront toujours la dernière version de Windows, en cas de mis à jour d’un service/application il suffit de propager uniquement cette mise à jour
      Cons : lors de la création d’une machine il est nécessaire de configurer et d’installer les composants nécessaires

Nous allons explorer la première option.

1ère  étape : créer une copie temporaire de la machine modèle

1. Installer le module azure de powershell (si nécessaire)

2. Initialiser les variables

3. Initialiser les accès

4. Récupérer la machine modèle et l’éteindre si nécessaire

5. Copier le vhd de la machine modèle

Le processus de généralisation d’une machine est définitif, une fois celle ci généralisée il n’est plus possible d’utiliser celle-ci. Nous allons donc d’abord créer une copie temporaire de notre modèle que nous utiliserons pour la généralisation, laissant ainsi notre machine modèle intacte. Pour cela nous allons d’abord copier le vhd de la machine modèle dans notre storage.

6. Créer un script de généralisation

Afin qu’une VM puisse être généralisée l’outil sysprep.exe doit être lancé. Pour éviter d’avoir à manuellement se connecter sur la VM pour lancer sysprep.exe nous allons copier le script powershell suivant dans notre storage. Ce script sera lancé automatiquement au démarrage de la VM.

7. Créer une VM temporaire

Remarquez que nous utilisons ici un template ARM json pour instancier notre nouvelle vm, vous pouvez récupérer celui ci directement depuis le portail azure, azure resource explorer, ou le créer vous même à partir de la documentation microsoft.

Deux parties sont importantes dans notre cas :

  • « storage profile » précise que la VM crée se base sur un vhd existant pointant vers l’url de notre copie temporaire
  • « CustomScriptExtension » ajoute une extension qui lancera le script de généralisation au démarrage de notre vm temporaire, notez qu’il est possible de passer des arguments à ce script pour, par exemple, s’assurer de la configuration de votre vm temporaire

Le fichier suivant contient les paramètres par défaut de votre template ARM, il doit être sur la machine lançant le script powershell :

Dans le prochain article nous verrons comment utiliser cette VM pour créer le vhd qui sera utilisé pour le scaleset.

 

Cost Management Service : Suivi et optimisation de votre consommation dans Azure

La nouvelle est passée relativement inaperçue : Microsoft a racheté Cloudyn en juin 2017. Cloudyn propose une solution de reporting sur les consommations Azure, AWS et Google Cloud, mais aussi de faire des recommandations pour optimiser les coûts en fonction de l’usage. Ce service a été intégré au portail Azure sous le terme « Cost Management ».

blog ai3 cloudyn-dashboard Cost Management Service : Suivi et optimisation de votre consommation dans Azure

Ajouter le service Cost Management dans le portail

La création du service dans le portail se fait par la marketplace : recherchez « Cost » ou « Cost Management »:

blog ai3 cloudyn-search-service-1024x304 Cost Management Service : Suivi et optimisation de votre consommation dans Azure

Sélectionner « Cost Management », puis cliquer sur le bouton « Créer ».

A partir d’ici, la procédure varie en fonction de votre situation :

  • le service est déjà activé sur le tenant Azure, mais votre compte n’y a pas accès.
  • le service n’est pas encore activé sur le tenant Azure.

L’écran ci-dessous se présente dans le cas où le service n’est pas encore activé :

blog ai3 cloudyn-setup-1024x717 Cost Management Service : Suivi et optimisation de votre consommation dans Azure

Pour compléter l’enregistrement, il n’y a que quelques étapes à suivre : l’activation du service ne prend que quelques minutes. Par contre, la mise à jour des statistiques peut prendre plusieurs heures en fonction des services Azure que vous utilisez.

Exemples de tableaux de bord

Les captures d’écran ci-dessous vous donnent quelques exemples significatifs des tableaux de bord proposés par « Cost Management ».

blog ai3 cloudyn-dashboard-2 Cost Management Service : Suivi et optimisation de votre consommation dans Azure

Evolution des coûts par service

blog ai3 cloudyn-dashboard-4 Cost Management Service : Suivi et optimisation de votre consommation dans Azure

Répartition des coûts par entité, type d’usage et région

blog ai3 cloudyn-dashboard-1-1024x770 Cost Management Service : Suivi et optimisation de votre consommation dans Azure

Répartition des coûts par service et par région

L’objectif de la solution étant in fine d’optimiser les coûts, Cloudyn a intégré une navigation par drilldown dans les rapports, ce qui permet de réaliser des analyses très précises sur les consommations :

blog ai3 cloudyn-drilldown Cost Management Service : Suivi et optimisation de votre consommation dans Azure

Au delà des axes d’analyse prévus par Cloudyn (Resource types, Services, Cost Types, etc), il est possible de détailler par « tag ». Aussi, je ne peut que vous conseiller de tagger l’ensemble de vos ressources Azure.

Autres features

Des alertes

Il est possible de définir des alertes (par mail) sur certains indicateurs permettant ainsi de mettre en place rapidement d’éventuelles actions correctives.

blog ai3 cloudyn-alerts Cost Management Service : Suivi et optimisation de votre consommation dans Azure

Conseils pour l’optimisation des coûts

En fonction de l’utilisation de vos ressources, Cost Management est en mesure de vous proposer des optimisations : le cas le plus parlant concerne la taille des VM : si une VM est sous utilisée, il vous proposera de changer sa taille.

blog ai3 cloudyn-cost-optimization Cost Management Service : Suivi et optimisation de votre consommation dans Azure

blog ai3 cloudyn-cost-optimization-2 Cost Management Service : Suivi et optimisation de votre consommation dans Azure

Unification

Comme indiqué en introduction, Cloudyn gère AWS, Azure et Google Cloud. Si vous utilisez plusieurs cloud providers, vous pouvez suivre vos consommations au sein d’un outil unique.

Editions et tarifs

Cost Manager existe en 2 éditions :

  • Standard
  • Premium

Ces 2 éditions sont gratuites pour les utilisateurs Azure, et payantes pour les utilisateurs AWS et Google Cloud.

Blockchain Article 1: concepts fondamentaux

Cet article a pour vocation de vulgariser le concept de blockchain. Il sera suivi d’un second article plus technique qui illustrera comment utiliser un service de blockchain avec les technologies Microsoft.

Concept

Née avec le bitcoin, la blockchain est une technologie de stockage et de transfert d’information sécurisée, décentralisée et sans intermédiation dans un réseau peer-to-peer.

Toute nouvelle information (transaction) est inscrite sous forme de bloc dans une chaîne (un livre de compte) réputée infalsifiable que chaque acteur de la chaîne partage.

A chaque instant, il est possible de connaître la chronologie d’une information échangée dans la chaîne (par qui) car les blocks contiennent la signature public d’un membre mais le contenu de la transaction reste privé. Il faut en posséder la clef privée pour le lire.

blog ai3 chain-1 Blockchain Article 1: concepts fondamentaux

Exemple d’une transaction dans la chaîne BitCoin.

 

Quelles applications pour une blockchain ?

On attribue 3 types d’application à la blockchain :

  • Le transfert d’actifs,
  • Le registre,
  • Les « smart contracts » (mini programmes distribués)

Dans tous les cas, l’objectif est de remplacer des tiers de confiance centralisés qui monopolisent parfois un pouvoir économique, politique ou social sans apporter de valeur ajoutée pour le consommateur final.

Comment fonctionne une blockchain ?

  1. Deux clients de la chaîne effectuent une transaction. A transmet une information à B.
  2. La transaction est inscrite dans un bloc.
  3. Des nœuds du réseau participant à la chaîne (mineurs) valident le bloc par des méthodes cryptographiques.
  4. Le bloc est validé et daté et la transaction est validée, B reçoit l’information.
  5. Le bloc est propagé à tous les membres de la chaîne.

Focus sur le consensus décentralisé : la preuve de travail

Il s’agit du mécanisme qui permet de garantir la validité d’une transaction  au sein de la chaîne et qui est une solution du problème des généraux byzantins . La preuve de travail consiste à fournir aux autres membres le résultat d’un calcul. Le calcul doit être couteux en ressources mais le résultat doit être facilement vérifiable.

Dans notre cas, il s’agit d’éviter que des nœuds du réseau mal intentionnés tentent de produire un bloc contenant de fausses informations.  Voici le fonctionnement :

 

  1. Certaines transactions sont en attente
  2. Des nœuds spéciaux du système (les mineurs) créent localement une version du prochain bloc en exécutant un calcul complexe (1)
  3. Le premier nœud qui résout le problème envoie le résultat à tous les autres nœuds du réseau qui peuvent vérifier facilement ce résultat (2)
  4. Le mineur victorieux peut être rémunéré (il prend une commission sur la transaction)
  5. Le bloc est ajouté à la chaîne
  6. La nouvelle version de la chaîne et propagée à tous les nœuds (3)

 

  • Dans le cas du bitcoin, le calcul consiste à trouver un double hash SHA-256 d’une chaîne qui contient les transactions en attente. Un nœud gagne si son hash commence à minima par n zéro
  • Il faudrait posséder une majorité de nœuds malveillants sur le réseau pour valider un faux bloc.
  • Pour cette raison, la chaîne est mise à jour de façon régulière (de 10 minutes à une heure pour le bitcoin) ce qui induit une latence dans la mise en œuvre des transactions.

blog ai3 Blockchain-1-1024x421 Blockchain Article 1: concepts fondamentaux

Focus sur les contrats

Dans certaines chaînes, une transaction peut contenir un programme avec une mini base de données : un contrat. Les contrats sont répliqués dans tous les nœuds par construction de la chaîne et si un utilisateur exécute une méthode du programme qui met à jour la base, alors cette commande est répliquée sur tout le réseau.

 

Par exemple, on peut implémenter un contrat de location d’un logement dans la chaîne en pré câblant les conditions du contrat :

  • Le bailleur reçoit le montant du loyer en caution à la date d’entrée
  • En fin de contrat, le bailleur retourne la caution
  • En cas de preuve de dégradation (*), le loueur transfert une somme d’argent au bailleur

(*) on pourrait imaginer automatiser ce point avec l’internet des objets.

 

Dans cet exemple, pas besoin d’agent immobilier pour rédiger le contrat ou de juge pour régler un problème de paiement.

 

Quelles sont les limitations d’une blockchain ?

Le choix de la sécurisation par preuve de travail induit une latence élevée pour la validation des transactions et limite le nombre de transactions par jour. Bitcoin atteint aujourd’hui 350000 transactions avec une latence d’environ 15 minutes (parfois une heure) loin du milliard de transactions quotidiennes par carte bancaire du système bancaire institutionnel. Une piste d’amélioration est un changement de paradigme dans la fourniture de la preuve de validité des blocs (la preuve d’état).

 

Quelques exemples d’implémentation

Les applications d’une blockchain sont nombreuses et devraient exploser avec l’avènement de l’internet des objets. Si certains services sont maintenant mieux connus du grand public comme la monnaie virtuelle Bitcoin, d’autres services restent encore au stade de l’expérimentation. On pense par exemple à Monegraph (propriété intellectuelle d’œuvre et conditions d’utilisation) ou La Zooz (un Uber décentralisé sans tiers pour prendre des taxes …).

 

 

Microsoft BAAS

Microsoft fournit des instances de blockchain sous forme de service dans Azure.

La création d’une application avec cette technologie fera l’objet du prochain article.

blog ai3 baas Blockchain Article 1: concepts fondamentaux

Guide de déploiement d’un template ARM

Bonjour, cet article est la suite de mon article concernant Azure Resource Manager. Au sein de celui-ci nous avions vu comment créer un template ARM avec Visual Studio. Ce que je vous propose dans ce nouvel article c’est de voir ensemble les différentes options permettant de déployer un template ARM. Mais trêve de bavardage, entrons dans le vif du sujet.

Le contenu de la solution utilisé pour la suite de cet article se trouve ici.

Déploiement d’un template ARM avec Visual Studio

Afin de déployer un template depuis Visual Studio, il vous suffit d’ouvrir une solution contenant un projet de déploiement, et de faire un clic droit sur celui-ci. Au niveau du menu, sélectionnez l’option « Deploy », et sélectionnez ensuite « New Deployment ».

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step1 Guide de déploiement d'un template ARM

Une nouvelle fenêtre s’ouvre dans laquelle les informations suivantes devront être saisies:

  • Compte utilisé pour effectuer le déploiement.
  • Abonnement dans lequel doit se faire le déploiement.
  • Groupe de ressources auquel sera rattaché les ressources. Vous pouvez soit créer un nouveau groupe de ressources, soit vous baser sur un groupe déjà existant au niveau de l’abonnement sélectionné.
  • Vous devez ensuite choisir le fichier JSON de déploiement et aussi le fichier de paramètres.

Création d’un groupe de ressources

Pour le déploiement de notre template, nous allons partir sur un nouveau groupe de ressources, cela facilitera notamment la suppression des ressources liées à cet article. Pour cela sélectionnez l’option new, et configurez votre nouveau groupe de ressources.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step2 Guide de déploiement d'un template ARM

Dés que vous aurez correctement saisie ces paramètres, vous pourrez alors déployer votre solution.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step3 Guide de déploiement d'un template ARM

Création d’un instance Key Vault

Editez les paramètres afin de pouvoir saisir les valeurs concernant le login et le mot de passe de l’instance SQL. Afin de pouvoir protéger notre mot de passe, nous allons nous appuyer sur une instance du service Key Vault. Pour faire bref, ce service permet de gérer des informations secrètes de manière sécurisée. Après avoir correctement saisie les informations demandées, cliquez sur OK pour continuer

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step4 Guide de déploiement d'un template ARM

Au niveau de la popup, Cliquez sur Oui pour valider l’utilisation de Key Vault.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step5 Guide de déploiement d'un template ARM

Ensuite, il vous restera ensuite les valeurs des différents autres paramètres qui sont utilisés au niveau du template. Une fois terminée, cliquez sur « Save » pour lancer le déploiement.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step6 Guide de déploiement d'un template ARM

Vous pouvez voir l’avancé du déploiement au niveau de la fenêtre de sortie de Visual Studio. Si tout se passe, au bout de quelques secondes, vous devriez avoir un message comme celui de l’image ci-dessous, si tout s’est déroulé sans erreur.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step7 Guide de déploiement d'un template ARM

Pour confirmer le bon déroulement de l’opération, connectez vous au portail Azure, et vérifiez que votre groupe de ressources a bien été créée et que celui-ci contient bien votre serveur SQL et votre base de données.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step8 Guide de déploiement d'un template ARM

Félicitation, vous venez de publié votre premier template sur Azure. Afin de vérifier la généricité de notre template, vous pouvez essayer de redéployer celui-ci en modifiant les paramètres.

Une fois vos tests terminés, supprimez les groupes de ressources afin d’éviter une facturation inutile. Ceci étant fait, nous allons pouvoir voir une autre méthode de déploiement en passant par le portail Azure. Ceci sera le sujet des prochains paragraphes.

Déploiement depuis le portail Azure

Afin de déployer votre template, au niveau du menu de gauche, cliquez sur « Nouveau », et au niveau du panneau venant de s’ouvrir entrer le texte « Template deployment » au niveau de la zone de recherche, et validez votre saisie.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step1 Guide de déploiement d'un template ARM

Au niveau du panneau de résultats, choisissez l’option « Déploiement de modèle ».

blog ai3 Deploiement-ARM-avec-portail-Azure-Step2 Guide de déploiement d'un template ARM

Au niveau du panneau qui vient de s’ouvrir cliquez sur la bouton Créer afin d’ouvrir le panneau qui va nous permettre de configurer les informations concernant notre nouveau déploiement.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step3 Guide de déploiement d'un template ARM

Création d’un nouveau modèle

Un nouveau panneau va alors s’ouvrir, vous permettant de configurer les différents éléments nécessaire à votre déploiement. Dans un premier temps vous devrez définir le contenu du template que vous désirez déployer. Afin de renseigner ce template vous pouvez soit construire votre template depuis le portail, comme nous l’avons vu au paragraphe 2.1, soit copier coller le contenu depuis un fichier existant, et adapter ce contenu à votre besoin, soit partir sur un modèle de création rapide préexistant et l’adapter suivant vos désirs. Pour ce dernier cas il vous suffira de cliquer sur le bouton « Modèle de démarrage rapide » et de sélectionner le template sur lequel vous désirez vous baser.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step4 Guide de déploiement d'un template ARM

Dans notre cas, nous allons copier le contenu du template que nous avons créé depuis Visual Studio et le coller au niveau du portail Azure.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step5 Guide de déploiement d'un template ARM

Gestion des paramètres

Dès que vous avez terminé les modifications de votre template vous pouvez sauvegarder celles-ci et passer à l’étape suivante. Vous pouvez ensuite passer au renseignement des différents paramètres définis au niveau de notre template comme illustré dans l’image ci-dessous.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step6 Guide de déploiement d'un template ARM

Gestion du groupe de ressources

Vos paramètres étant définis, il vous faudra ensuite choisir l’abonnement sur lequel vous désirez effectuer le déploiement, choisir le groupe de ressources dans lequel vous désirez déployer vos ressources (vous pouvez aussi choisir de créer un nouveau groupe), et enfin choisir l’emplacement où résidera votre groupe. La dernière étape consistera à accepter les conditions d’utilisation. Cliquer ensuite sur le bouton « Créer » pour lancer le déploiement de votre template.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step7 Guide de déploiement d'un template ARM

Il se pourrait que vous ayez certaines erreurs empêchant le bon déroulement de l’opération. Dans pareils cas vous verrez apparaître un petit encart vous informant du mauvais déroulement de la procédure de déploiement. Cliquez alors sur cet encart pour avoir les informations concernant les erreurs, et corrigez celles-ci. Réessayer de lancer le déploiement. Je vous le dit de suite les erreurs remontées ne sont pas très parlante, mais bon il faut faire avec.

Exécution du déploiement

blog ai3 Deploiement-ARM-avec-portail-Azure-Step8 Guide de déploiement d'un template ARM

Si tout se déroule comme prévue vous devriez voir apparaître une notification vous information que le déploiement de votre template a commencer.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step9 Guide de déploiement d'un template ARM

Après avoir attendu quelques instants vous pouvez cliquez sur les notifications pour voir si votre déploiement est terminé.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step10 Guide de déploiement d'un template ARM

Vous pouvez cliquer sur la notification pour voir le détails concernant l’exécution du déploiement.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step11 Guide de déploiement d'un template ARM

Voilà le déploiement de notre template depuis le portail Azure est maintenant terminé, il ne nous reste plus qu’a voir comment effectuer cette même tâche avec PowerShell. N’oubliez pas de supprimer le groupe de ressources que vous venez de créer pour éviter de dépenser de l’argent inutilement . Comme le dit si bien Guy Roux, je sais il y a mieux comme référence, il faut pas gâcher.

Déploiement d’un template existant

Dernière petite chose avant de passer à PowerShell. Si vous désirez redéployer votre template, il vous suffit de sélectionner le groupe de ressources créé lors du déploiement de ce template, ensuite d’aller sur déploiements et de cliquer sur le déploiement que vous venez d’effectuer.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step12 Guide de déploiement d'un template ARM

Ensuite au niveau du panneau regroupant les informations sur le déploiement, il vous suffit de cliquer sur le bouton Redéployer, renseigner les paramètres concernant votre nouveau déploiement, de sélectionner un groupe de ressources ainsi que la région qui sera concernée, et ensuite de cliquer sur le bouton créer pour lancer celui-ci.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step13 Guide de déploiement d'un template ARM

Voilà cette fois nous en avons vraiment finis avec le portail, et nous allons aborder la dernière partie de cet article qui concerne le déploiement d’un template à l’aide de PowerShell.

Déploiement d’un template ARM avec PowerShell

Avant d’exécuter le script PowerShell permettant d’effectuer le déploiement de notre template, nous allons ouvrir la solution Visual Studio.

Au niveau de Visual Studio, éditez le fichier de paramètres et renseignez ceux-ci. Cette opération doit être réalisée car ce fichier sera utilisé par notre Script PowerShell pour récupérer les valeurs des paramètres définis au niveau du template.

blog ai3 Deploiement-ARM-avec-PowerShell-Step1 Guide de déploiement d'un template ARM

Afin de procéder au déploiement de notre template à l’aide de PowerShell, nous allons utiliser le composant PowerShell ISE. Ouvrez une nouvelle instance de PowerShell ISE, et ouvrez ensuite le fichier PS1 provenant de la solution Visual Studio.

Connexion à votre abonnement Azure

Ayant récupérer notre script, nous allons maintenant procéder à l’ouverture d’une session sur notre abonnement Azure. Pour se faire entrez la commande suivante : Login-AzureRmAccount, et saisissez vos information de connexion.

blog ai3 Deploiement-ARM-avec-PowerShell-Step2 Guide de déploiement d'un template ARM

Gestion des paramètres

Dans un premier temps nous allons exécuter les commandes du script, permettant de déclarer les paramètres, unes à une au niveau de PowerShell. Pour se faire sélectionnez chacune des lignes concernant les paramètres et cliquez sur le bouton « Exécuter la sélection » comme montré dans l’image ci-dessous.

blog ai3 Deploiement-ARM-avec-PowerShell-Step3 Guide de déploiement d'un template ARM

Et en sortie vous devriez avoir quelque chose ressemblant à l’image ci-dessous.

blog ai3 Deploiement-ARM-avec-PowerShell-Step4 Guide de déploiement d'un template ARM

Création d’un groupe de ressources

Nous allons maintenant passé à l’exécution de la commande permettant de créer le groupe de ressources,

Pour cela entrez la commande suivante : New-AzureRmResourceGroup -Name $resourceGroupName -Location $localisation -Verbose -Force

Vous devriez avoir le résultat suivant au niveau de la sortie :

blog ai3 Deploiement-ARM-avec-PowerShell-Step5 Guide de déploiement d'un template ARM

Création du container Key Vault

Notre groupe de ressources étant créer nous allons passer à la création d’un container KeyVault. Pour faire court un container KeyVault permet d’héberger des données sensibles (tel un mot de passe d’instance SQL) de manière sécurisé, et nous allons utilisé ce container afin de gérer le mot de passe de notre instance SQL afin de ne pas l’avoir dans notre fichier template.

Afin de créer votre container KeyVault, veuillez sélectionné la commande suivante : New-AzureRmKeyVault -VaultName $keyVaultName -ResourceGroupName $resourceGroupName -Location $localisation -EnabledForDeployment et cliquez sur le bouton « Exécuter la sélection ».

Si tous se passe correctement vous devriez avoir une sortie à l’image de la copie d’écran ci-dessous :

blog ai3 Deploiement-ARM-avec-PowerShell-Step6 Guide de déploiement d'un template ARM

Gestion des droits sur le container Key Vault

Par contre si vous avez un résultat ressemblant à celui de l’image ci-dessous au niveau du résultat de l’exécution de la commande, vous allez devoir lancer une autre commande afin de mettre en place des droits sur le container que nous venons de créer.

blog ai3 Deploiement-ARM-avec-PowerShell-Step7 Guide de déploiement d'un template ARM

Dans le cas ou vous devez ajouter des droits sur le container Azure Vault, veuillez entrer la commande suivante :

Set-AzureRmKeyVaultAccessPolicy -VaultName $keyVaultName -UserPrincipalName ‘votreadressemail@hotmail.com’ -PermissionsToKeys create,import,delete,list -PermissionsToSecrets set,delete

Ajout de la chaine de connexion dans le container Key Vault

Notre container étant maintenant opérationnel, nous allons sauvegardé notre mot de passe à l’intérieur de celui-ci.

Pour cela exécuter la ligne suivante pour pouvoir convertir la chaine de caractères contenant notre mot de passe en type secureString :

$sqlAdminPassword = ConvertTo-SecureString -String $serverPassword -AsPlainText -Force

Lancer ensuite la commande suivante afin de sauvegarder le mot de passe au niveau de votre container :

Set-AzureKeyVaultSecret -VaultName $keyVaultName -Name $keyVaultSqlAdminPasswordSecretName -SecretValue $sqlAdminPassword

Vous devriez avoir un résultat semblable à ce que vous pouvez voir dans l’image ci-dessous :

blog ai3 Deploiement-ARM-avec-PowerShell-Step8 Guide de déploiement d'un template ARM

Nous allons maintenant remplacer les informations de paramètres concernant le container Key Vault au niveau du fichier template de paramètres.

Afin d’effectuer cette opération, veuillez entrer la commande suivante pour récupérer les informations concernant le container Key Vault : Get-AzureRmKeyVault -VaultName $keyVaultName

Au niveau de la sortie copier la valeur de la propriété Resource ID.

blog ai3 Deploiement-ARM-avec-PowerShell-Step9 Guide de déploiement d'un template ARM

Copier cette valeur au niveau du fichier de paramètre au niveau de la valeur du paramètre demodeploiementAdminLoginPassword.

blog ai3 Deploiement-ARM-avec-PowerShell-Step10 Guide de déploiement d'un template ARM

Exécution du déploiement

Nous allons maintenant pouvoir exécuter la partie du script concernant le déploiement. Pour se faire sélectionner la ligne correspondante :

New-AzureRmResourceGroupDeployment -Name $deploymentName -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath -TemplateParameterFile $templateParametersFilePath -Verbose -Force

Et cliquez sur le bouton « Exécuter la sélection ».

blog ai3 Deploiement-ARM-avec-PowerShell-Step11 Guide de déploiement d'un template ARM

Au niveau de la sortie d’exécution de la commande vous devriez avoir quelque chose ressemblant à l’image ci-dessous :blog ai3 Deploiement-ARM-avec-PowerShell-Step12 Guide de déploiement d'un template ARM

Vous pouvez voir au niveau du portail que vos ressources on bien été créées.

blog ai3 Deploiement-ARM-avec-PowerShell-Step13 Guide de déploiement d'un template ARM

Voilà cette dernière étape marque la fin de cet article concernant le déploiement de template ARM.

Rendez-vous bientôt pour un nouvel article.

David Moïsa