Tour d’horizon de Nano Server (partie 2) : déployer un projet web ASP.NET 5

Dans le précédent post, nous avons créer notre première image Nano Server. Dans ce post nous allons créer une image Nano Server comprenant un serveur web IIS pleinement fonctionnel et y déployer un site ASP.NET 5.

IMPORTANT : ce post a été réalisé avec la CTP 4 de Windows Server 2016. Il sera mis à jour ultérieurement.

IMPORTANT : Le site ASP.NET 5 s’exécute directement sur Nano Server (VM ou physique) mais pas dans un container. Dans un prochain post, nous verrons comment faire tourner un projet web ASP.NET 5 dans un container (déploiement qui sera certainement privilégiée par Microsoft). Attention, la différence de procédure peut-être importance, que vous soyez ou non dans un container.

Voici l’état de la documentation d’aujourd’hui sur http://aspnetmvc.readthedocs.org :

image

Alors prenez ce guide en attendant que la documentation soit complétée pour déployer et exécuter une application ASP.NET 5 sur Nano Server.

Création de l’image NanoServer avec IIS

Nous avons deux options pour installer IIS sur un Nano Server : hors ligne (Nano Server est éteint) ou en ligne (Nano Server est en cours d’exécution). Dans ce post nous allons utiliser l’installation hors ligne et créer une image directement avec IIS intégré (nous aurions également pu ajouter IIS à une image déjà existante).

1. Reprenez les étapes de création de la partie 1 de cette série, à l’étape 5 exécutez à la place la ligne de commande suivante : New-NanoServerImage -MediaPath D:\ -BasePath .\Base -TargetPath ‘.\NanoImage\NanoVM.vhdx’ -GuestDrivers –EnableRemoteManagementPort –Language en-us –ComputerName NanoServerNode1 –Packages Microsoft-NanoServer-IIS-Package –ReverseForwarders

A propos du package ReverseForwarders : Pour pouvoir exécuter HttpPlatformHandler et Kestrel (c’est à dire libuv.dll) sur Windows Server, vous allez devoir ajouter un package ReverseForwarders. Les appels à kernel32.dll et advapi32.dll (DLLs qui n’existent pas dans Nano Server) seront ainsi redirigés vers les nouvelles de ces APIs qui ont été déplacés dans d’autres composants. Ce package n’est pas installé par défaut dans Nano Server (alors que c’est le cas sur Win10 IoT) puisque l’objectif est de n’avoir que le strict minimum d’embarqué, il vous faut donc le rajouter.

Création de la machine virtuelle Hyper-V Nano Server

Créer une nouvelle machine virtuelle Hyper-V et connectez une machine virtuelle avec ce nouveau VHD. Vous devriez voir la recovery console.

image

Exemple de script PowerShell de création de VM :

New-VM -VHDPath ‘.\NanoImage\NanoVM.vhdx’ -MemoryStartupBytes 512MB -Name NanoServerNode1 -Generation 2

Set-VMMemory -VMName NanoServerNode1 -DynamicMemoryEnabled $True -MaximumBytes 512MB -MinimumBytes 256MB

Set-VMProcessor -Count 2 -VMName NanoServerNode1

Note : N’oubliez pas mettre le bon switch virtuel pour avoir du réseau et vous connecter à la VM (cf étape suivante pour le vérifier).

Vérifier le fonctionnement de IIS

1. La première chose à faire est de récupérer l’adrese IP de la machine, pour cela, deux options :
- Récupérer l’IP depuis la console de restauration (recovery console) en vous connectant sur la machine et en vous authentifiant
- Récupérer l’IP depuis Hyper-V avec la ligne de commande suivante :  Get-VM –name <Nom de votre VM>| Select -ExpandProperty networkadapters | Select IPAddresses

image

2. Connectez vous avec un navigateur web sur cet IP, vous devriez observer une page de bienvenue IIS :

image

Vous voilà avec un serveur IIS fonctionnel.

Se connecter à Nano Server

Bien qu’il existe plusieurs façons de pouvoir se connecter à distance avec Nano Server, nous allons utiliser le module de gestion IIS PowerShell pour gérer notre serveur IIS. Tout d’abord

1. Pour pouvoir vous connecter au Nano Server avec une session PS, vous devez d’abord l’ajouter dans la liste des hôtes de confiance.  Exécuter la commande PowerShell (toujours dans une console en tant qu’administrateur) : Set-Item WSMan:\localhost\Client\TrustedHosts "<IP de votre serveur>"

image

2. Exécutez la ligne de commande suivante dans PowerShell :
$session = New-PSSession –ComputerName <IP de votre serveur> –Credential Administrator
Enter-PSSession $session

Un prompt vous demandera le mot de passe de l’administrateur.

image

3. (facultatif )Dans la session distante, importez le module de gestion IIS puis récupérer les sites IIS avec les commandes :
Import-Module IISAdministration
Get-IISSite

image

Vous êtes connectez à Nano Server, nous allons pouvoir créer le projet ASP.NET 5 et le déployer.

Création du projet ASP.NET 5

Nano Server ne contient pas de Framework .NET justement parce que celui-ci possède trop de dépendance avec Windows et qu’il fallait couper sévèrement dans les composants. Néanmoins, pour faire fonctionner Powershell, Nano Server utilise une partie de .NET Core (la version open source et portable du framework .NET) mais qui ne suffira pour exécuter votre application.

Note : vous pouvez aussi récupérer le projet ASPNET5WebHello.

Installer la dernière version de .NET Core

Avant de créer votre projet ASP.NET 5 sur votre machine de développement, assurez vous que vous avez bien la dernière version de .NET Core (surtout en ces temps de Beta et RC) avec la commande : dnvm list

image

Si vous n’avez pas la dernière version (ou disons la version que vous souhaitez déployer) de la Core CLR (et en version x64, Nano Server ne s’exécutant qu’en 64 bits), exécuter le commande :

dnvm install latest –r coreclr –arch x64 –alias coreclr-latest

image

image

Projet ASP.NET 5 avec Visual Studio 2015

Dans Visual Studio 2015 (toutes éditions confondues) :

1. Créez un nouveau projet Visual C# > Web > ASP.NET Web Application :

image

2. Choisissez ASP.NET 5 Preview Templates :

image

3. Dans les propriétés du projet, vérifiez que la cible du DNX est bien celle que vous souhaitez :

image

Dans l’onglet de Debug (pour les tests sur l’environnement de développement) :

image

4. Lancez l’application (F5), pour voir un magnifique texte “hello world” apparaître dans votre navigateur.

image

5. Avant de publier votre application, il reste un détail important (sans quoi Nano Server ne servira pas vos pages web) : remplacez l’URL du projet. Dans le fichier project.json, changer la ligne :

"commands": {
"web": "Microsoft.AspNet.Server.Kestrel server.urls=
http://localhost:5000"
  },

par

"commands": {
"web": "Microsoft.AspNet.Server.Kestrel server.urls=
http://<ip de votre serveur Nano Server>:5000"
  },

Enregistrez les modifications du fichier.

6. Nous allons maintenant pouvoir publier l’application web sur notre disque dur avant de copier les fichiers vers Nano Server. Ouvrez une console PowerShell dans le répertoire de votre projet :

image

Dans la console excutez les commandes suivantes pour restaurer les packages (normalement Visual Studio a dû le faire pour vous mais nous ne sommes jamais trop prudent) et publier l’application avec le runtime dnx-coreclr-win-x64.1.0.0-rc1-update1  :

dnu restore
dnu publish –out <chemin vers répertoire de sortie>--runtime C:\Users\<nom de l’utilisateur>\.dnx\runtimes\dnx-coreclr-win-x64.1.0.0-rc1-update1

Remarque : Publiez votre projet si possible à la racine d’un disque, la technique de copie à suivre ne permettra pas les chemins d’accès de plus de 260 caractères.

6. Vous devriez avoir dans votre répertoire cible, un contenu similaire à celui-ci :

image

Publication du projet vers Nano Server

A ce stade, la seule option que j’ai trouvé pour publier le site est de faire un copier/coller du répertoire publié vers IIS sur le Nano Server. La possibilité d’utiliser un WebDeploy n’est aujourd’hui pas supporté sur le IIS de Nano Server.

Remarque : pour procéder à la copie vers une session distante, si vous êtes sur Windows 8.1 ou 7, vous devrez installer Windows Management Framework 5.0.

Nous allons donc procéder à une copie entre le système de fichier de la machine de développement et le serveur Nano Server :

- Ouvrez une session avec :  $session = New-PSSession –ComputerName <ip de voter serveur> –Credentials Administrator

image

- Exécutez la commande de copie : Copy-item –ToSession $session –Path <chemin vers votre projet publié> –Destination C:\Users\Administrator\Documents –Recurse

image

La copie des fichiers devraient prendre un peu de temps. Les fichiers de votre projet sont maintenant publiés sur Nano Server.

Configurer le pare-feu de Nano Server

Nous avons configurer le site sur le port 5000 qui n’est pas encore ouvert (les ports HTTP et HTTPS sont déjà ouverts). Pour ouvrir le port 5000, vous avez deux options : la ligne de commande ou la console de restauration (recovery console) :

netsh advfirewall firewall add rule name="HTTP (5000)" dir=in action=allow protocol=TCP localport=5000

image

Démarrer le site web

Le démarrage va être effectuer via le fichier web.cmd qui a été créé lors de la publication du projet. Ce fichier contient les commandes nécessaires pour démarrer votre projet en analysant le fichier project.json.

Naviguez dans le répertoire approot de votre projet et exécuter le fichier web.cmd pour démarrer le serveur :

image

image

Ouvrez un navigateur avec l’adresse http://<ip de votre serveur>:5000 , et voilà :

image

Important : une fois que vous aurez lancé la commande web.cmd, vous devriez observer un écran noir dans votre machine virtuelle. Une fois le serveur arrêté (Ctrl+C), la recovery console réaffichera l’écran en cours. Nous verrons dans un prochain post comment faire éviter cela.

 

Nano Server est définitivement le futur du serveur IIS pour les applications ASP.NET 5. Bien que cette édition soit pour le moment assez limitée en termes d’interface et d’outil de gestion, Microsoft devrait améliorer cet aspect là dans les prochaines versions de son OS.

A ce stade, le manque de documentation se fait sentir ! La communauté et Microsoft devrait combler cette lacune rapidement au vu de l’engouement pour Nano Server. Tous les contributeurs de docs.asp.net sont les bienvenus sur le projet Github.

La solution présentée dans ce post n’est pas définitive, mais permet de montrer comment exécuter une application web ASP.NET 5 dans Nano Server.

Dans un prochain post nous verrons l’hébergement d’un application web ASP.NET 5 dans un container Nano Server et également comment bénéficier de IIS pour l’exécution en production.

Ressources

En attendant, voici quelques ressources qui m’ont bien aidé (malgré que tout ne fonctionne pas) à faire fonctionner un site ASP.NET 5 sur le IIS de Nano Server :

- Pour plus de détails sur les commandes et fichier de configuration IIS : https://msdn.microsoft.com/en-us/library/mt627783.aspx

- Channel 9 “Nano Server in a container running IIS & ASP.NET 5” : https://channel9.msdn.com/Series/Nano-Server-Team/Demo-Nano-Server-in-a-Container-running-IIS-ASPNET5

Tour d’horizon de Nano Server (partie 1) : création d’une image

Dans ce post nous allons démarrer par créer un VHD minimal de Nano Server. Dans un prochain post, nous verrons la personnalisation des images et la mise en container de Nano Server avec le déploiement d’une application ASP.NET 5.

Nano Server ?

Nano Server est une version de Windows Server ultra minimaliste, plus sécurisée et optimisée pour le déploiement Cloud / Datacenter (c’est surtout cette partie qui va nous intéresser). Nano Server est encore plus réduit que la version Core de Windows Server : taille disque minime, ressource mémoire moindre mais aucune interface, pas de connexion directe à l’OS, support des applications 64 bits uniquement (donc exit vos applications 32 bits … enfin si vous en avez encore), aucun rôle préinstallé (rôle sur mesure à ajouter via des packages), etc. Tout cela amène à des (re)démarrages plus rapides, moins de mises à jour et un espace/transfert des VHD beaucoup plus léger et donc souple à maintenir.

Nano Server sera donc un système hôte de choix pour héberger un serveur IIS, un stockage de fichiers, héberger NodeJS et autre plateforme applicative, créer un cluster de reprise, un DNS, etc. Tout cela se configure via les packages qui seront disponibles avec Nano Server (et Microsoft à annoncer l’arrivée d’autres packages dans les mois à venir, sans compter sur les tierces parties).

Création du fichier VHD

Les étapes suivantes permettent de créer le fichier de disque dur virtuel VHD qui sera monté ensuite dans une VM puis dans un container Windows Server.

1. Télécharger une ISO de Windows Server 2016

2. Monter l’image dans votre système de fichier (sur Windows : clic droit sur le fichier .iso > Monter). Pour la suite de ce post, mon lecteur DVD est D:\.

3. A la racine de l’ISO, copier les scripts Convert-WindowsImage.ps1 et le nanoServerImageGenerator.psm1 vers un répertoire sur votre disque dur (dans mon cas c:\NanoServer ) :

image => image

4. Ouvrez une console PowerShell en mode administrateur et placez vous dans le répertoire que vous avez copié (celui où vous avez le fichier Convert-WindowsImage.ps1 et le nanoServerImageGenerator.psm1). Pour importer le module de génération d’image Nano Server, exécutez la ligne de commande : Import-Module .\NanoServerImageGenerator.psm1 –Verbose

image

Note : sur Windows 8.1, vous aurez sûrement à exécuter la commande Set-ExecutionPolicy -ExecutionPolicy Unrestricted pour permettre l’utilisation du module et du script PowerShell.

5. Pour créer un VHD NanoServer avec les drivers de VM hôte (et rien de plus !), exécutez la ligne de commande suivante : New-NanoServerImage -MediaPath D:\ -BasePath .\Base -TargetPath '.\NanoImage\NanoVM.vhd' -GuestDrivers –EnableRemoteManagementPort –Language en-us –ComputerName NanoServerNode1

Lorsque le script vous le demande, saisissez le mot de passe administrateur qui vous permettre de vous connecter à la console de gestion (recovery console).

image

Cette ligne de commande utilise le fichier WIM situé sur le media monté sur D:\ (l’ISO montée) et utilisera le répertoire \Base situé dans le même répertoire que les scripts. Dans notre cas, nous ajoutons les drivers de machine virtuelle et activons la gestion à distance.

Note : si vous spécifiez .vhd pour votre VHD cible, vous aurez un VHD avec un support MBR. Si vous spécifiez .vhdx, vous aurez un support GPT, de génération 2 de machine virtuelle Hyper-V. La taille des fichiers VHD varient entre ces deux schémas de partitionnement :

image

Remarque :  le script prenant les paramètres locales de la machine, étant sur un système local fr-fr et les packages n’étant disponibles qu’en EN-US, nous devons spécifier le paramètre –Language en-us. Les packages devraient être localisés dans les mois à venir. Si vous ne spécifiez pas ce paramètre sur un système autre que en-us, vous aurez un message d’erreur.

Vous pouvez aussi exécuter la ligne de commande pour ne pas avoir à spécifier le mot de passe administrateur :

New-NanoServerImage -MediaPath D:\ -BasePath .\Base -TargetPath .\NanoImage\NanoVM.vhd -Compute -GuestDrivers -ComputerName 1stNano -AdministratorPassword ("P@ssw0rd" | ConvertTo-SecureString -AsPlainText -Force)

Attention : vous ne pouvez pas créer une image sur deux OS/versions d’Hyper-V différentes (par exemple créer l’image sur un Windows Server 2016 et l’exécuter Windows 8.1) car les drivers invités qui sont injectés sont ceux de la version d’Hyper-V de l’OS qui crée l’image.

Exécuter la machine virtuelle

Une fois le fichier VHD généré, nous allons créer une nouvelle machine virtuelle pour exécuter Nano Server :

1. Créer une machine virtuelle dans Hyper-V :

image

Ici nous allons utiliser le fichier .vhd et donc sélectionner la génération 1 :

image

Nano Server ayant besoin de peu de ressources, nous allons laisser 512 Mo de RAM (à dimensionner en fonction de vos besoins) :

image

image

Sélectionner le disque VHD NanoServer créé plus haut :

image

image

Une fois la machine virtuelle créée, n’hésitez pas éventuellement à modifier les paramètres tel que le nombre de processeurs, etc.

2. Démarrez et connectez vous la machine virtuelle Hyper-V pour afficher la console restauration vous permettant d’accéder à voter système même si vous avez un problème réseau :

image

3. Saisissez Administrator comme nom d’utilisateur et le mot de passe que vous aviez spécifié pendant la création de l’image (attention : clavier QWERTY de rigueur !) :

image

Pour naviguer dans l’interface, utilisez les touches de direction, Tab et Echap (pour sortir d’un menu).

Voilà ! Nous venons de créer notre image NanoServer fonctionnelle. Dans les posts à venir, nous allons voir comment personnaliser cette image pour héberger un IIS dans un Windows Server Container.

Ressources

Vous pourrez retrouver de nombreux détails sur la page https://msdn.microsoft.com/en-us/library/mt126167.aspx

Déployer ASP.NET 5 dans un container Docker

image

Docker et bientôt Windows Server Container vont vous permettre de délivrer et d’exécuter des applications plus rapidement et avec moins de ressources. La “containerization” des applications embrace l’approche DevOps en permettant d’exécuter des centaines d’applications en parallèle alors que même un cluster de VMs en seraient incapable et de surcroit difficile à gérer. Le container permet aussi de rendre l’architecture microservices plus fiable et plus accessible aux équipes réduites.

imageCette série de post vous proposer une première approche au déploiement d’une application ASP.NET 5 dans un container Docker. Ainsi vous serez capable de déployer votre application sur vos serveurs de production ou dans le Cloud (AWS, Azure, etc) rapidement et de façon fiable.

Introduction sur les containers

L’avantage des containers, en dehors d’une densification plus importante des serveurs en applications, est aussi l’utilisation des images. Une image contient aussi bien l’OS que les dépendances de l’application (CoreCLR, ASP.NET MVC, etc) et est de de petite taille. Cela permet de créer des containers rapidement et de les démarrer tout aussi rapidement. Aujourd’hui le hub Docker contient plus de 100 000 images.

Bien que Docker se limite aujourd’hui à délivrer des containers Linux (OS du container et OS hôte), l’arrivée de Windows Container et de Nano Server devraient faire évoluer le paysage de cette technologies dans les prochains mois.

Pour ce post, .NET Core étant multi plateforme, nous allons créer une application ASP.NET 5 MVC puis l’exécuter un container Docker sous Linux.

Prérequis

Vous devez disposer :

  • D’une machine hébergeant Docker. Pour ce blog, j’ai utilisé une machine hébergée sur  Azure mais une VM Hyper-V avec Ubuntu ou autre fait tout aussi bien l’affaire.
  • Eventuellement d’un projet ASP.NET 5 à déployer. Pour ce post, j’ai créé une application excessivement simple affichant une page de bienvenue et disponible sur Github.

Création du fichier Dockerfile

Le fichier Dockerfile permet de créer des containers en industrialisant sa composition par un script de création. Ces fichiers peuvent être versionnés et mis à jour en fonction de l’évolution de vos plateformes et applications.

FROM microsoft/aspnet:1.0.0-rc1-final-coreclr

COPY . /app
WORKDIR /app
RUN ["dnu", "restore"]

EXPOSE 5004
ENTRYPOINT ["dnx", "-p", "project.json", "kestrel"]

L’instruction FROM permet de spécifier l’image Docker de base utilisée. Dans notre cas, une image préconfigurée avec la version CoreCLR 1.0.0 RC1.

L’instruction COPY va exécuter une copie des fichiers situés à la racine dans le répertoire app avant de devenir le répertoire courant (instruction WORKDIR) dans lequel nous allons restaurer les packages de l’application à partir du fichier project.json.

L’instruction EXPOSE spécifie que le container aura un port 5004 exposé (ce port est configuré dans le fichier project.json comme étant celui du serveur web). Le point d’entrée ENTRYPOINT spécifie la commande à exécuter lors du lancement du container. Dans notre cas, nous exécutons un serveur kestrel.

Créer le container

A partir  de ce fichier Docker, vous allez maintenant pouvoir construire votre container, voir automatiser ce processus afin d’effectuer des tests automatisés de votre application (nous aurons l’occasion d’en parler plus tard).

Dans votre machine Docker (ici dans une console d’une VM Azure connectée en SSH) :

1. Exécuter la commande Git afin de récupérer un projet simple et le fichier Dockerfile prêt à l’emploi sur votre serveur :
git clone https://github.com/NCITNoumea/docker-ressources.git

2. Une fois les fichiers récupérés depuis github sur votre serveur
cd docker-ressources/images/mvc-hello/
sudo docker build -t mvc-hello .

La construction du container devrait prendre quelques minutes, nécessaires au téléchargement de l’image de base et des dépendances .NET. Au bout de quelques minutes, vous devriez avoir un message indiquant le succès de l’opération :

image
Remarque : dans cette capture, vous pourrez observer que l’image et les dépendances sont déjà contenues dans le cache (“Using cache”). Lors de la première exécution, vous verrez défiler les téléchargements.

3. Votre container nommé mvc-hello est maintenant prêt à être déployer et exécuter dans le Docker Engine.

Exécuter le container

Toujours dans votre machine Docker (ici dans une console d’une VM Azure connectée en SSH) :

1. Exécuter le commande de démarrage du container :
sudo docker run –t –d –p 80:5004 mvc-hello

L’exécution de cette commande devrait vous renvoyer un identifiant excessivement long :

image

Cette commande propose différent paramètres, le plus important dans notre cas est le mapping des ports entre le container et l’hôte Docker. Nous spécifions que le port 80 de l’hôte sera redirigé vers le port 5004 (que nous avons exposé précédemment) du container.

Vérifier le déploiement

Vous pouvez vous connecter sur l’IP de votre VM (port 80) avec un navigateur web pour constater l’exécution du serveur web et de votre application ASP.NET 5 :

image

En cas d’erreur …

L’exécution d’un container n’est pas sans mauvaise configuration de notre part, aussi vous pouvez demander à Docker d’afficher les logs d’exécution d’un container afin de diagnostiquer la source de l’erreur :

1. Exécuter le commande de démarrage du container :
sudo docker logs <identifiant de votre container>

Vous pouvez récupérer l’identifiant de votre container de plusieurs façons, la plus simple est de copier/coller celui-ci lorsqu’il s’est affiché à l’exécution de la commande run. Il s’agit bien de l’ “identifiant excessivement long” évoqué précédemment.

image

Arrêter le container

Dans votre machine Docker (ici dans une console d’une VM Azure connectée en SSH) :

1. Exécuter le commande de démarrage du container :
sudo docker ps

Cette commande liste les containers en cours d’exécution. Vous devriez trouver le vôtre :

image

2. Exécuter le commande de démarrage du container :
sudo docker stop <nom de votre container>

L’arrêt devrait prendre quelques secondes le temps que le serveur web s’arrête. Si vous réexécuter la commande sudo docker ps, le container devrait avoir disparu.

Conclusion

Bien qu’attendu au premier semestre 2016, ASP.NET 5 est d’ores et déjà fonctionnel que ce soit au travers d’un serveur IIS ou d’un serveur web Linux (kestrel).

L’utilisation d’application “containeriser” devrait apporter une nouvelle bouffée d’air aux process DevOps des projets .NET. L’arrivée de Windows Server Container (dont nous parlerons dans un prochain post) devrait encore ajouter de l’agilité à ces projets, comme c’est déjà le cas avec l’intégration des extensions Docker dans Visual Studio et Azure.

Alors que le déploiement de services .NET (site web, services SOAP/REST/OData, etc) avait un TCO plus élevé que des homologues tels que PHP, Java, Ruby, etc (hébergés le plus souvent sur Linux/Apache), le déploiement d’une application .NET dans un container Linux devrait radicalement changer la donne et permettre à toutes les entreprises et développeurs de pouvoir utiliser la puissante et la flexibilité de .NET et de ses framework (ASP.NET MVC, Entity Framework, etc) à coûts d’hébergement identiques.

Cela devrait permettre à .NET de devenir enfin une plateforme de service compétitive : économique tout en continuant de garantir la productivité acquises avec les frameworks .NET et ses outils (notamment Visual Studio) pour apporter plus et plus rapidement de la valeur utilisateur à ses utilisateurs / clients.

Note : ce post se base sur des versions préliminaires des images ASP.NET , par conséquent les instructions pourront changer en cours de temps. Néanmoins, n’hésitez pas à consulter le repository Docker des images officielles : https://hub.docker.com/r/microsoft/aspnet/

Création d’une VM Docker dans Azure

Azure propose aujourdh’ui une VM préconfigurée pour exécuter Docker sur un Ubuntu 15.04 Server afin de vous épargner la création d’une machine et l’installation des différents composants.

Voici les étapes à suivre pour avoir une machine disponible en quelques minutes :

1. Connectez vous sur votre compte Azure : http://portal.azure.com

2. Dans le portail, cliquez sur Nouveau

image

3. Rechercher l’image “Docker on Ubuntu Server” dans le marketplace

image

image

4. Cliquez sur Créer en bas de page, puis saisissez le nom d’hôte, le nom d’utilisation et mot de passe. Gardez le type d’authentification en Mot de passe plutôt que clé publique SSH pour des raisons de simplicité. Si vous êtes familiarisé avec SSH et les clés publiques, changez de mode. Sélectionnez votre niveau de tarification selon vos besoins, le groupe de ressources et l’emplacement du data center.

image

5. Cliquez sur Créer puis attendez la création de la VM qui devrait prendre quelques minutes.

6. Une fois la VM créée, connectez-vous à l’interface d’administration de celle-ci dans le portail Azure

image

7. Naviguez dans Gérer > Adresses IP pour récupérer l’adresse IP avec laquelle vous vous connecterez en SSH

image

8. Créez un point de terminaison pour autoriser la connexion sur le port HTTP (80) si vous déployer un container avec un serveur web en naviguant dans Gérer > Points de terminaison :

image

9. Pour tester la connexion SSH avec le serveur, utilisez un client SSH (par exemple Putty) et essayer de vous connecter pour valider la bon fonctionnement de votre nouvel VM Docker :

image

10. Exécuter la commande sudo docker pour vérifier le bon fonctionnement de Docker :

image

Votre VM Docker est maintenant fonctionnelle. Vous allez pouvoir héberger des containers (voir prochains posts).

Réaffichage de l’export des clefs produits MSDN

Alors que la fonctionnalité d’export des clefs MSDN au format XML existait depuis longtemps et rendait très pratique l’utilisation des clefs produits MSDN hors connexion. La version française ne propose plus l’option :

image

Qu’à cela ne tienne, utilisez l’URL de la version américaine pour voir réapparaitre la fonctionnalité : https://msdn.microsoft.com/en-us/subscriptions/keys/

image

Afterworks des communautés MS @Nouméa

L’édition de décembre de l’afterworks des communautés Microsoft aura lieu le Lundi 14 Décembre à 18h dans la petite salle du bout du monde.

12341205_10153829715659711_1896417378656081362_n

Au programme de cet afterwork de Décembre :

- Introduction à DevOps avec Docker for Windows et Hyper-V Container (Julien Chable)

- Windows Nano Server (Sylver Schorgen)

Inscrivez vous sur l’event FB

Live Writer est maintenant open source !

Outil de prédilection pour écrire les posts de blogs, Windows Live Writer n’avait plus été mis à jour depuis 2012 et cela semblait être la dernière version de cet outil.

Cela n’a semble t-il pas été facile, mais un groupe de volontaires à Microsoft l’a fait : ouvrir le code de Windows Live Writer. Ce fork appelé logiquement : Open Live Writer (licence MIT).

openlivewriter-purpleheader_f6470329-c239-4f06-b466-805d65b9bd70

Le site officiel pour le téléchargement http://openlivewriter.org/

L’équipe de développement travaille sur Github (où vous pourrez également trouver les sources et contribuer) : https://github.com/OpenLiveWriter

Vous pourrez également retrouver plus d'informations, notamment les fonctionnalités supprimées (obsolètes, liées à des dépendances lourdes ou sous copyright) et les perspectives d’évolution sur le post de Scott hanselman.

A ce jour, à part quelques bugs non bloquants, l’outil fonctionne parfaitement sous Windows 8.1 et 10.

Migration de vos courriers Gmail vers Office 365 : colonne EmailAddress manquante dans votre csv

Toute personne qui souhaite migrer son compte Gmail vers Office 365 consultera le très bon tutorial disponible sur technet : https://technet.microsoft.com/fr-fr/library/dn568114.aspx

Néanmoins, si comme moi vous avez cette erreur :

o365errorCSV

Sachez qu'il y a deux causes à cela :

  • Que vous n’ayez pas correctement formaté vos noms de champ
  • Que vous n’avez pas le bon séparateur dans votre CSV

Le séparateur de champs doit être une virgule  ‘,’ et non un point-virgule comme cela peut-être le cas lorsque vous exportez votre feuille de données depuis Excel. Tachez de bien respecter le nom des colonnes pour que celles-ci soient reconnues :

EmailAddress,UserName,Password julien.chable@ncit.nc,julien.chable@ncit.nc,MoNmOtDePa$$e 

En vous souhaitant une bonne migration vers Office 365.

“SYSTEM.IO.FILENOTFOUNDEXCEPTION: COULD NOT LOAD FILE OR ASSEMBLY ‘MICROSOFT.SHAREPOINT.CLIENT. WORKFLOWSERVICES”

Vous lancez votre application ou solution SharePoint utilisant CSOM et Workflow Manager 1.0(WorkflowServicesManager, Workflow Definition), vous avez le message suivant qui s’affiche : “System.IO.FileNotFoundException: Could not load file or assembly ‘Microsoft.SharePoint.Client.WorkflowServices, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c’ or one of its dependencies. The system cannot find the file specified.”

Solution 1 (application seulement) :

Vous copiez les DLLs suivantes à la racine de votre applications (si c’est une solution SharePoint, cette solution n’est pas applicable) :

  • - Microsoft.SharePoint.Client.dll
  • - Microsoft.SharePoint.Client.Runtime.dll
  • - Microsoft.SharePoint.Client.WorkflowServices.dll

Solution 2 :

Si gacutil.exe n’est pas sur votre serveur de production/qualification, copiez depuis le répertoire de votre machine de développement “C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools” (ou d’un répertoire v8.0, v8.1A) les fichiers suivants :

- gacutil.exe
- gacutil.exe.config
- 1033\gacutlrc.dll

Ouvrez une console en tant qu’administrateur. Depuis l’emplacement où vous avez copier gacutil.exe (ou depuis n’importe quel emplacement si vous avez mis gacutil dans le PATH), saisissez :

gacutil -i “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll”

gacutil -i “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll”

gacutil -i “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.WorkflowServices.dll”

Pour chaque commande, vous devriez avoir le message suivant : Assembly successfully added to the cache

Toutes les DLLs requises pour votre solution utilisant CSOM / Workflow Manager sont maintenant disponibles dans le GAC et votre solution devrait fonctionner.

Sway en General Availabilty

Sway vient de passé de la version Preview à la GA (General Availability) et est maintenant disponible pour Office 365, Windows 10 et plus encore. Sway est un nouvel outil de production permettant de réaliser des présentations de qualité professionelle et dynamique en quelques minutes pour vos projets, rapports, etc. Les présentations n'ont jamais été aussi interactives 🙂

L'annonce du jour concernant ce produit :

- Passage de la Preview à la GA

- Sway est maintenant éligible à tous les clients businne ou éduction

- Sway pour Windows 10 est disponible

- Un nouveau gabarit Sway est disponible, orienté vers les présentations "selfie'

- Publication vers docs.com intégrée