Académique Documents
Professionnel Documents
Culture Documents
Pour cela, rendez-vous, une fois n’est pas coutume, dans le menu Démarrer, et
sélectionnez “Windows PowerShell ISE”. Vous devriez avoir la fenêtre suivante
ouverte au bout de quelques instants :
ISE PowerShell
Avant tout, sachez qu’un ISE est au script ce qu’un IDE est au développement : c'est-à-
dire un environnement dédié qui permet de simplifier l’écriture de scripts (Integrated
Script Environment pour ISE et Integrated Development Environment pour IDE).
L’ISE PowerShell se présente à sa première exécution avec un shell (en bleu) et
une zone de commande listant toutes les commandes PowerShell (telles que Get-
Volume, Enable-LocalUser, Set-StoragePool, Get-DnsClientCache) prises en charge
par votre système.
Vous allez pouvoir par exemple taper des commandes ou aller directement dans le
panneau de droite pour avoir plus d’informations sur la commande et une aide au
paramétrage.
Ajout d’une
fonctionnalité client Telnet via PowerShell
Vous remarquez qu’il faut importer le module ServerManager qui regroupe de
nombreuses commandes liées à l’administration d’un Windows Server.
Une commande pratique est Get-WindowsFeature , qui peut s’appliquer à tous les
serveurs accessibles, ou simplement au serveur local. Il est également possible
d’appliquer des filtres à l’affichage des résultats, comme par exemple ici avec l’affichage
uniquement des fonctionnalités installées :
Affichage des fonctionnalités installées sur le serveur SRVWDSNAN01
J’ai cette fois utilisé le script. Pour l’exécuter, il suffit simplement de cliquer sur la flèche
verte, le résultat de ce script s'affiche alors dans la partie shell.
C’est une fonctionnalité particulièrement pratique pour préparer un script long, sans
avoir à naviguer entre un éditeur de texte et le shell.
Utilisez des scripts existants
Une des forces de PowerShell est, comme pour le monde Unix/Linus, sa communauté !
Vous trouverez de nombreux scripts tout prêts, confectionnés par des administrateurs
ou techniciens soucieux d’optimiser leur temps afin de pouvoir se focaliser sur des
tâches d’ingénierie système, réseau, ou afin de se libérer du temps pour augmenter le
niveau de sécurité de leurs parcs.
Vous pourrez par exemple trouver des scripts permettant de vérifier l’état de santé de
votre Active Directory afin de vous envoyer un rapport par mail des éléments
récupérés par PowerShell. Pratique, non ?
Cela se fait notamment à travers la déclaration d’une configuration cible dans des
scripts.
La fonctionnalité PowerShell DSC permet de les compiler en fichiers MOF afin qu’ils
puissent être utilisés en mode PUSH ou PULL sur un serveur.
Ainsi, en mode PUSH la configuration désirée sera “poussée” sur le serveur,
appliquant les configurations désirées. L’objectif de cette fonctionnalité est de
s’assurer que votre serveur est correctement configuré.
En mode PULL, ce sera votre serveur qui ira chercher la bonne configuration à
appliquer.
Vous allez ainsi pouvoir gérer vos configurations via des scripts, et même versionner
ces configurations. Il devient ainsi possible de ne pas administrer directement un
serveur, mais de déclarer la configuration et de laisser le moteur PowerShell
DSC appliquer les modifications.
Là encore, la communauté sera un atout non négligeable pour vous, car de nombreuses
configurations désirées ont été décrites et mises à disposition.
Ensuite, vous aurez une liste de tous les modules répondant au critère que vous avez
entré. Vous retrouverez par exemple le module xActiveDirectory qui va vous permettre
de gérer un AD en ligne de commande intégralement.
Grâce à ces nombreux scripts, il vous est maintenant possible de vous tourner vers une
distribution “Core” sans interface graphique. Cela vous permettra de gérer vos serveurs
au travers de PowerShell, et d’utiliser les états désirés afin de garantir la bonne
configuration de vos serveurs.
Cela permet de préparer sereinement une transition vers le Cloud qui permet, au travers
d’API, de configurer une architecture complète en quelques lignes de script !
Processeur 2 2
Nombre de 16 16
cœurs
Nombre de 2 illimité
VM
Erreur de
validation pour le rôle Hyper-V
Trois options s’offrent à vous dans ce cas :
Le premier, sur la gauche, permet d’afficher le serveur et, plus tard, la liste des
machines virtuelles disponibles ;
Le deuxième, au milieu, permet de détailler le contenu de la sélection faite sur
le panneau de gauche, en affichant la liste des machines virtuelles ou les
caractéristiques d’une machine virtuelle en particulier ;
Enfin le dernier, sur la droite, regroupe les actions possibles en fonction de la
sélection faite sur le premier panneau. Si vous avez sélectionné le nom de votre
serveur, alors ce panneau vous permettra de créer une nouvelle machine, de
gérer la commutation virtuelle ou encore de gérer l’espace disque de stockage
des machines virtuelles.
Gestionnaire Hyper-V
La première chose à faire, lorsque vous travaillez avec de la virtualisation, est de
comprendre le mécanisme en jeu. En effet, vous ne devez plus voir l’ordinateur sur
lequel vous êtes comme un ordinateur classique (que ce soit un serveur ou non), mais
comme une zone d’hébergement de serveurs avec une gestion réseau complète,
une gestion du stockage et des ressources CPU et RAM. C’est d’ailleurs un point
très important à prendre en compte si vous installez cela en production.
Votre directeur vous donne un budget de 5 000 € pour installer 3 serveurs : un serveur
de fichier, un serveur d’identité et un serveur web. Le seul moyen de rentrer dans le
budget est (hors systèmes Cloud) d’opter pour la virtualisation sur un Windows Server
Standard sur une machine d’entrée de gamme. Vous trouverez bon nombre d’offres
chez des constructeurs de serveurs tels que Dell, HP, Fujitsu ou Lenovo, pour ne citer
que les plus connus (et répandus).
Une fois que vous avez fait l’acquisition de votre serveur avec sa licence Windows
Server 2019 Standard, vous disposez d’une licence pour la machine physique. Vous y
installerez donc le rôle Hyper-V. Vous monterez une machine virtuelle pour y héberger
un AD, puis une machine virtuelle pour y héberger votre serveur de fichier et votre
serveur web !
Pour imager un peu cela, voici un schéma logique de votre réseau avant et après
avoir activé le rôle Hyper-V :
Il est recommandé d’opter pour deux cartes physiques, une pour le serveur physique et
une pour le commutateur virtuel ; mais souvent, cela n’est pas réalisable pour des
questions de budget, surtout dans les toutes petites structures.
Alors, maintenant que vous avez compris le principe, nous allons configurer ce
commutateur virtuel. Pour cela, cliquez sur “Gestionnaire de commutateur virtuel…”
dans le menu Actions, en ayant sélectionné votre serveur sur le panneau de gauche.
Gestionnaire de commutateurs virtuels
Ici, vous retrouverez le nom de vos commutateurs virtuels ainsi que le mode de
fonctionnement (sous type de réseau). Trois modes existent :
Une fois ces considérations prises en compte, vous avez un choix de génération à faire.
La génération est liée au système d’exploitation qui sera installé sur la machine
virtuelle. Faites bien attention à ne pas vous tromper, ce choix ne peut se changer sans
supprimer la machine virtuelle.
Ensuite, il vous faut affecter une quantité de mémoire vive. Elle doit être suffisante pour
votre machine virtuelle, mais vous devez penser également à votre machine physique.
Elle doit conserver suffisamment de mémoire pour fonctionner. Commencez par une
valeur minimale comme 2 Gio et si vous observez des ralentissements, ou une
utilisation régulière de l’espace de swap, vous augmenterez cette valeur.
Pour cela, sélectionnez votre machine virtuelle et dans le menu “Actions”, dans la partie
sous le nom de votre machine virtuelle, sélectionnez “Paramètres”, vous
retrouverez les différents paramètres de votre machine, à savoir :
Le microprogramme ;
La sécurité ;
La mémoire ;
Le processeur ;
Les contrôleurs de stockage ;
La carte réseau.
Ainsi que des options de gestion, telles que :
Le nom ;
Les services d’intégration ;
Les points de contrôle ;
L’emplacement de stockage du fichier de pagination ;
Les actions de démarrage et d’arrêt automatique.
Pour cette première machine, vous n’êtes pas obligé de faire de modifications.
Par contre, dans l’exemple de Gift S.A., vous avez acquis un serveur du marché
disposant de nombreux cœurs physiques, vous auriez tout intérêt à passer à
2 processeurs pour chacune des machines virtuelles, afin d’obtenir de meilleurs temps
de traitement des demandes d’accès aux fichiers (dans le cas de la VM serveur de
fichiers), et d'authentification (dans le cas de la VM AD).
Une fois les modifications terminées, vous pouvez démarrer votre machine virtuelle avec
un clic droit sur le nom de la machine. Vous allez maintenant pouvoir vous y connecter
avec un clic droit à nouveau, en sélectionnant “Se connecter”.
Une fois que votre machine virtuelle démarre, vous vous retrouvez devant une machine
qui se comporte comme un serveur physique.
À vous d’installer votre système d’exploitation et les différents rôles nécessaires au bon
fonctionnement de votre réseau !
En résumé
Hyper-V est l’hyperviseur de Microsoft. Il est intégré à Windows
Server et Windows 10.
Une licence Windows Server 2019 Standard permet d’avoir deux machines
virtuelles sous Windows Server en plus du serveur physique.
La virtualisation permet d’optimiser les ressources processeur, mémoire,
disque et réseau de votre serveur physique en partageant ces ressources
entre les différentes machines virtuelles (il vous est également possible de
réserver ces ressources à l’usage d’une ou plusieurs machines virtuelles).
Une fois créée, une machine virtuelle Hyper-V se comporte comme un
serveur physique.
Une fois votre compte créé, vous avez accès au tableau de bord du portail Azure. Il
vous liste les options disponibles sur le menu de gauche, et vous offre une vue de vos
ressources sur le reste de l’écran :
1. Via le portail.
2. Via Azure PowerShell.
3. Via la ligne de commande Azure CLI.
Le premier onglet vous permet de choisir sur quel abonnement vous allez créer votre
machine, veillez à bien rester sur l’abonnement gratuit (pour ma part, j’ai déjà utilisé ce
crédit gratuit il y a bien longtemps, c’est pourquoi vous observerez sur la capture
suivante un abonnement Pay-As-You-Go où je suis facturé uniquement sur ce que je
consomme).
Création d’une machine virtuelle
Après avoir choisi l’abonnement, il vous faut définir un groupe de ressources. Il s’agit
d’un regroupement de ressources ayant un objectif identique.
Si votre direction vous demande un serveur web, vous pourrez appeler ce groupe de
ressources “Serveur Web” ; ainsi toutes les ressources nécessaires à la création d’un
serveur d’hébergement web y seront regroupées.
Ensuite, vous aurez à entrer le nom de la machine virtuelle. Encore une fois, un
nommage cohérent permettra de faciliter la recherche et l’identification de votre
instance. Azure vous demande également une région. Il s’agit du centre de données
dans lequel votre machine virtuelle sera provisionnée. Elle peut se trouver n’importe où
dans l’un des 54 centres de données disponibles à l’heure actuelle, et gérés par
Microsoft.
Sachez que cela peut avoir un impact sur le coût de votre architecture.
Le niveau de disponibilité se présente sous 3 options :
Maintenant que ces notions de conception sont faites, il va vous falloir choisir une image
qui corresponde au type de système d'exploitation que vous souhaitiez installer. Vous
avez une liste restreinte, mais qui devrait couvrir tous vos besoins.
Enfin, la taille de votre instance va vous être demandée et va également fortement
conditionner le tarif. Pour une image Windows 2019 Datacenter, vous avez près de
122 tailles différentes allant de 1 à 72 CPU et de 0,75 à 432 Gio de RAM, en passant
par des variantes avec des disques très haut de gamme capables de gérer des milliers
d’opérations de lecture/écriture par seconde.
Dans le cas d’une offre gratuite, vous n’aurez accès qu’à un nombre limité de tailles.
Une fois tous les détails de l’instance définis, vous allez rentrer dans la partie
Authentification administrateur, où vous serez amené à nommer votre compte
administrateur et générer un mot de passe. Une fois que cela est fait, vous pouvez
directement passer à la vérification et à la création de la machine, elle sera
approvisionnée en quelques minutes.
Attention, si vous vous arrêtez ici, vous n’aurez pas d’accès à votre machine autrement
que par la console fournie par le portail Azure. Il vous faudra activer au cas par cas, tout
comme avec le pare-feu Windows avec fonctionnalités avancées de Windows Server,
les ports et services qui pourront être accessibles à tout le monde, ou alors uniquement
à certaines adresses IP.
Sachez qu’il est possible de créer un réseau privé virtuel entre votre entreprise et Azure,
garantissant ainsi que vos flux ne soient pas disponibles pour d’autres entités ou
publiquement.
La première instance mettra plus de temps à se créer que les suivantes, car il sera
nécessaire de créer le groupe de ressources avec les différentes composantes
nécessaires à son bon fonctionnement. À savoir :
Un réseau virtuel ;
Une interface réseau ;
L’espace de stockage du disque virtuel ;
Une IP publique ;
Un pare-feu.
Récapitulatif
avant la création de ma machine virtuelle
Comme je vous l’ai annoncé, vous retrouverez, juste à côté du bouton “Créer”, la
possibilité de télécharger un modèle pour l’automation. Derrière cette dénomination
étrange se cache en fait la possibilité d’obtenir les différentes commandes à entrer
en PowerShell, Azure CLI ou d’autres langages, afin de créer la machine virtuelle que
vous venez de définir.
Pour mon cas, en PowerShell, il me faudra entrer les commandes suivantes :
<#
.SYNOPSIS
Deploys a template to Azure
.DESCRIPTION
.PARAMETER subscriptionId
.PARAMETER resourceGroupName
The resource group where the template will be deployed. Can be the name of an existing or
a new resource group.
.PARAMETER resourceGroupLocation
Optional, a resource group location. If specified, will try to create a new resource group
in this location. If not specified, assumes resource group is existing.
.PARAMETER deploymentName
.PARAMETER templateFilePath
.PARAMETER parametersFilePath
Optional, path to the parameters file. Defaults to parameters.json. If file is not found,
will prompt for parameter values based on template.
#>
param(
[Parameter(Mandatory=$True)]
[string]
$subscriptionId,
[Parameter(Mandatory=$True)]
[string]
$resourceGroupName,
[string]
$resourceGroupLocation,
[Parameter(Mandatory=$True)]
[string]
$deploymentName,
[string]
$templateFilePath = "template.json",
[string]
$parametersFilePath = "parameters.json"
<#
.SYNOPSIS
Registers RPs
#>
Function RegisterRP {
Param(
[string]$ResourceProviderNamespace
#******************************************************************************
# Script body
#******************************************************************************
$ErrorActionPreference = "Stop"
# sign in
Login-AzureRmAccount;
# select subscription
# Register RPs
$resourceProviders = @("microsoft.network","microsoft.compute","microsoft.storage");
if($resourceProviders.length) {
foreach($resourceProvider in $resourceProviders) {
RegisterRP($resourceProvider);
if(!$resourceGroup)
{
Write-Host "Resource group '$resourceGroupName' does not exist. To create a new resource
group, please enter a location.";
if(!$resourceGroupLocation) {
else{
if(Test-Path $parametersFilePath) {
} else {
Voilà pourquoi il faut commencer par l’utilisation du portail, c’est assez long. Mais une
fois maîtrisé, cela vous permettra de générer des machines en gagnant un temps
considérable !
Voilà, vous n’avez plus qu’à identifier vos besoins et à créer autant de machines dans
autant de groupes de ressources que nécessaire.
En résumé
Azure permet de créer des services hébergés dans les infrastructures de
Microsoft, dans un réseau de centres de données tout autour de la planète.
Il est possible de gérer Azure via trois modes au moins : ligne de
commande, PowerShell, ou le portail Web.
Il existe plus d’une centaine de services accessibles via Azure, de la machine
virtuelle “standard” au services de bases de données à la demande gérés par
Microsoft.
Azure permet de gérer des instances publiques ou privées accessibles à tous,
ou simplement aux réseaux que vous aurez définis.
Sachez que chez Gift S.A. (comme dans beaucoup de sociétés), vous disposez d’un
contrat support de Microsoft, et qu’il vous est donc imposé de travailler dans ce cadre-là.
Votre direction souhaite qu’en cas de souci et d’absence de votre part, une personne
lambda puisse appeler Microsoft à la rescousse. Il n’est donc pas possible d’utiliser un
autre système d’exploitation que Microsoft Windows.
L’autre contrainte est que vous ne disposez que de deux licences pour vos
machines virtuelles. Rappelez-vous, vous avez fait l’acquisition d’un serveur physique
avec une licence Windows Standard. Une machine virtuelle est dédiée à l’Active
Directory et la seconde à votre serveur de fichiers. Pour éviter d’utiliser le serveur Active
Directory, vous décidez donc d’héberger l’application web sur votre serveur de fichiers.
Première étape donc, vous installez le rôle Serveur web. Ce rôle est composé
notamment de IIS (Internet Information Service), qui n’est autre qu’un concurrent du
serveur Apache couramment utilisé sur les systèmes Unix/Linux. IIS va vous permettre
de servir des pages web à vos utilisateurs.
Nativement, il ne prendra en compte que les formats HTML, CSS, JS, ou ASPX qui est
un langage Microsoft similaire à PHP. Comme vous n’allez pas demander à votre
nouveau collègue de changer de langage de programmation, vous allez devoir intégrer
PHP à IIS.
Gestionnaire IIS
Je ne vous présenterai plus le gestionnaire qui est le même que pour les autres rôles
(DNS, DHCP…). Par défaut, IIS vous propose un site web afin de vous proposer une
configuration initiale fonctionnelle. Pour observer ce site, rendez-vous
sur http://localhost. Vous obtenez alors les informations de IIS10 :
<?php
phpinfo();
?>
En affichant cette page, vous devriez avoir, à ce stade, un message d’erreur 404.3 not
found, signifiant que ce type de fichier ne peut pas être traité par IIS. L’objectif est donc
d’avoir un traitement de ce fichier et d’obtenir ainsi la page phpinfo qui fournira de
nombreuses informations à votre développeur. Tant que cette page n’est pas traitée, il
est inutile de fournir un accès à votre collègue, car il n’est pas fonctionnel.
Deux méthodes peuvent maintenant s’offrir à vous pour activer PHP et plus
généralement pour configurer votre IIS :
Ensuite, vous pourrez installer l’extension Web Platform sur le gestionnaire IIS.
Vous trouverez alors votre page test.php correctement affichée. Vous pouvez
maintenant fournir un accès contrôlé à votre collègue. Et pour cela, plusieurs options
s’offrent à vous :