Blog de Florent Appointaire

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

    [Honolulu] Découverte de la preview

    Microsoft a rendu disponible la semaine dernière, avant Microsoft Ignite, la première preview publique de sa nouvelle interface de gestion de l'infrastructure Hyper-V, appelé Honolulu:

    https://docs.microsoft.com/en-us/windows-server/manage/honolulu/honolulu

    Pour commencer, téléchargez le fichier d'installation:

    https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-honolulu

    Une fois téléchargé, vous pouvez l'installer sur:

    • Windows 10
    • Windows Server 2016

    Que ce soit une VM dédié, ou un hôte Hyper-V, il n'y a pas d'importance. Lancez le fichier d'installation, et démarrez la:

    Choisissez d'autorisé l'interface à modifier les Trusted Hosts du serveur qui reçoit l'installation:

    Choisissez le port d'installation de l'interface, et choisissez le certificat SSL si vous en avez un, sinon ce sera un self-signed:

    L'installation commence:

    Après quelques minutes, l'installation est terminée:

    Quand ceci est terminé, il vous suffit, via Edge ou Chrome, d'aller sur le nom de votre serveur, suivi du port, en https. Vous devriez arriver sur une page similaire:

    Ajoutez un serveur Hyper-V, ou un cluster, ou un cluster S2D, en cliquant sur Add suivi de votre choix:

    Renseignez le nom du serveur ou cluster, et cliquez sur Submit:

    Vous pouvez maintenant gérer votre serveur/cluster directement depuis cette interface:

    Vous pouvez voir l'état des machines virtuelles sur l'hôte/cluster:

    Enfin, si des modules sont disponibles pour améliorer l'interface, ils se trouveront dans les Settings > Extension Manager:

    Cette nouvelle interface est très prometteuse et très simple d'utilisation. Vous pouvez, via une seule console, faire les mises à jour des serveurs, gérer les serveurs, et toutes les fonctionnalités du serveur/cluster. N'hésitez pas à donner votre feedback ici: https://windowsserver.uservoice.com/forums/295071-management-tools/category/319162-project-honolulu 

    • 18/9/2017

    [GitHub Enterprise] Renouveller le certificat rapidement avec Let's Encrypt

    Le problème du Github Enterprise est que c'est une black box. C'est à dire, que vous ne pouvez rien modifier sur la VM, sinon l'application ne fonctionnera plus.

    Du coup, si vous souhaitez utiliser un certificat signé publiquement, et ne pas payer (+/- 1500€ pour 2 ans avec tous les noms DNS à rajouter...), il reste la méthode Let's Encrypt. Seulement, le certificat est valable que 3 mois... et vous devez ajouter les enregistrements DNS de type TXT, à la main, sur votre hébergeur DNS. Pas très pratique, et pas très intéressant.

    Après quelques recherches, je suis tombé sur le projet Dehydrated, qui permet d'automatiser la chose:

    https://github.com/lukas2511/dehydrated

    Ce tool vous permet de mettre à jour vos DNS sur votre hébergeur, de façon automatique, avec Let's Encrypt, et le protocole ACME-Server. J'ai trouvé une liste qui supporte plusieurs hébergeurs, et qui fonctionne avec ce projet:

    https://github.com/lukas2511/dehydrated/wiki/Examples-for-DNS-01-hooks

    Pour ma part, mon hébergeur est Azure, j'ai donc utilisé ce projet: https://github.com/jangins101/letsencrypt-azuredns-hook

    Ce que je vais expliquer maintenant sera toujours pareil,pour n'importe quel hébergeur (il faudra juste adapter le nom). Utilisant Azure, je vais installer Azure CLI sur mon serveur Debian (étant donné que je ne peux rien installer sur mon serveur Github, j'utilise un serveur séparé), ainsi que le logiciel dehydrated, certbot (qui permet d'utiliser Let's Encrypt pour générer le certificat):

    echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ wheezy main" | sudo tee /etc/apt/sources.list.d/azure-cli.list
    curl -sL https://deb.nodesource.com/setup | sudo bash -
    sudo apt-key adv --keyserver packages.microsoft.com --recv-keys 417A0893
    sudo apt-get install apt-transport-https
    sudo apt-get update && sudo apt-get install nodejs-legacy git dehydrated letsencrypt certbot jq
    sudo apt-get install libssl1.0.0=1.0.1t-1+deb8u6 libssl-dev nodejs-dev node-gyp npm
    sudo npm install -g azure-cli

    Nous allons ensuite récupérer les sources de notre hébergeur (Azure pour moi):

    sudo mkdir /var/scripts/letsencrypt
    cd /var/scripts/letsencrypt
    sudo git clone https://github.com/jangins101/letsencrypt-azuredns-hook.git

    Si vous n'avez pas créé de SPN pour vous connecter à Azure, éditez le fichier createSPN.sh et créez ce dernier ou utilisez la version manuel

    Une fois ceci terminé, éditez le fichier config.sh pour utiliser la CA de production, et non de staging et modifiez le chemin BASEDIR avec le chemin où sera stocké les certificats:

    sudo vi /var/scripts/letsencrypt/letsencrypt-azuredns-hook/config.sh

    Il faut maintenant modifier le fichier azure.hook.sh avec les informations que vous avez récupéré lors de la création du SPN (nom de votre Azure AD, le nom d'utilisateur SPN et le mot de passe, le groupe de resource où est stocker la zone DNS, le nom de la zone DNS et la TTL):

    sudo vi /var/scripts/letsencrypt/letsencrypt-azuredns-hook/azure.hook.sh

    Le script va se connecter et mettre à jour les DNS avec la valeur TXT qu'il aura récupéré de Let's Encrypt. J'ai ensuite fait un petit script, qui va faire la demande du certificat, et mettre à jour le certificat automatiquement, via l'API Github Enterprise. Vous devez adapter la valeur où se trouve le script, ainsi que le nom DNS de votre Github Enterprise. Le script est disponible ici:

    https://github.com/Flodu31/Bash/blob/master/GithubRenewCert.sh

    Pour l'exécuter, utilisez la commande suivante, et fournissez le mot de passe de l'administration du Github:

    sudo bash /var/scripts/GithubRenewCert.sh

    Comme vous le voyez, le script va tout faire de façon automatique et après quelques minutes, votre certificat sera à jour:

      

    Si vous avez des questions, n'hésitez pas