Lab 01 : Création d'instances de Machines Virtuelles (VM)
Objectifs
Section intitulée « Objectifs »Dans cet atelier, vous allez découvrir comment utiliser le Cloud 3DS OUTSCALE pour créer et utiliser les machines virtuelles.
Architecture du lab
Section intitulée « Architecture du lab »
Dans cette partie, vous allez apprendre à créer une VM en :
- Créant une paire de clés
- Lançant une instance de serveur Web avec les exigences suivantes :
- Elle devra utiliser une OMI Ubuntu 22.04
- Elle devra posséder 1 processeur virtuel et 1 Gio de mémoire
- Lorsque de son démarrage, elle devra installer le package
apache2
- En lui donnant un nom de type “[votre nom]-webserver”
- En autorisant le flux HTTP (port 80) depuis n’importe où
Vous devrez ensuite vous connecter à votre instance à l’aide d’un terminal.
Provisionnement
Section intitulée « Provisionnement »Création d’une paire de clés
Section intitulée « Création d’une paire de clés »Vous allez apprendre à créer une paire de clés SSH unique que nous utiliserons dans cet atelier.
- Connectez-vous au Cockpit V2 :
cockpit.outscale.com à l’aide de vos identifiants
de connexion puis choisir la région eu-west-2.


- Ouvrir un nouveau dashboard +
- Choisir Sécurité - Keypairs. Cela affichera une page pour gérer vos paires de clés SSH.

- Pour créer une paire de clés SSH, cliquez sur le bouton [Créer une Keypair] en haut de la fenêtre. +
- Saisissez [Votre nom]-lab dans la zone de texte Nom: (Nom de la Keypair :) et cliquez sur le bouton [Créer].

- Cette action lancera le téléchargement d’un fichier
outscale_[votre compte]-lab.rsa. Suivez les instructions du navigateur pour enregistrer le fichier.
Création d’un Security Group
Section intitulée « Création d’un Security Group »Le Security Group fait office de pare-feu réseau. Les groupes de sécurité spécifieront les protocoles et les adresses que vous souhaitez autoriser dans votre politique de pare-feu. Pour le groupe de sécurité que vous êtes en train de créer, il s’agit de la règle qui s’applique à l’instance qui sera créée.
- Ouvrir un nouveau dashboard
- Choisir Sécurité – Security Groups. Cela affichera une page pour gérer les groupes de sécurités
- Dans le dashboard Security Groups, cliquez sur [Créer un security group].

- Introduisez les paramètres suivants :
- Dans le champ Nom, entrez [nom]-webserver pour le security group.
- Dans le champ Description, entrez sa description.
- Dans la liste Net, effectuez une des actions suivantes :
- Pour créer un security group pour le Cloud public, sélectionnez
no Netdans la liste de Net. - Pour créer un security group pour un Net, sélectionnez ce Net dans la liste de Net.
- Dans notre cas nous allons créer choisir
no Net
- Cliquez sur [Créer]. Le security group sera créé avec le nom et la description fournis. Les règles des security groups peuvent être définies dans les détails des security groups.
Ajout des règles à un security group
Section intitulée « Ajout des règles à un security group »Dans le dashboard Security Groups, cliquez sur l’ID du security group ❶ auquel vous voulez ajouter une règle.
- Le volet des règles du security group apparaît +
- Cliquez sur Créer des règles d’entrée ❷
- La boîte de dialogue CRÉER DES RÈGLES D’ENTRÉE apparaît.

- Pour définir une règle, spécifiez les informations suivantes : ❸
- Autorisez le protocole TCP/80 pour le service Web en ajoutant une règle de sécurité (Service : HTTP - Plage 0.0.0.0/0)
- Autorisez également le protocole SSH/22 pour le service Web avec la règle suivante (Service : SSH - Plage myIp/32)
- Cliquez sur Créer des règles d’entrée. Les règles sont ajoutées au security group.
Création d’une instance de serveur Web
Section intitulée « Création d’une instance de serveur Web »Nous allons lancer une instance Ubuntu 22.04, qui au démarrage installera le package Apache/PHP et un fichier html qui affichera des informations sur notre instance.
- Ouvrir un nouveau dashboard, dans Puissance de calcul cliquez VMs

- Un nouvel onglet s’ajoute à notre dashboard.
- Dans le dashboard VM, cliquez sur Créer des VMs.

- La fenêtre CRÉER DES VM apparaît.
- Configurer votre VM
- Dans Nom de la VM, saisissez la valeur [Votre nom]-webserver. Ensuite,
cliquez sur suivant et laissez les paramètres par défaut.

- Dans Nom de la VM, saisissez la valeur [Votre nom]-webserver. Ensuite,
cliquez sur suivant et laissez les paramètres par défaut.
- L’écran de sélection d’une image apparaît.
- Choisir l’image ubuntu-22.04 qui a comme propriétaire Outscale

- Cliquez sur Suivant.
- L’écran de sélection du type de VM apparaît
https://docs.outscale.com/fr/userguide/Types-d-instances.html\
- Spécifiez les attributs suivants pour la VM.
- Pour notre atelier nous allons utiliser les valeurs suivantes :
- Génération du CPU : GEN 4
- Performance : L’indicateur de performance High.
- Highest : Capacité de calcul maximum sur tous les vCPU de la VM. Cette valeur est idéale pour les applications de calcul intensif demandant des performances stables durant le cycle de vie de la VM.
- High : Haute capacité de calcul sur tous les vCPU de la VM. Cette valeur s’applique à la plupart des cas et offre des performances variables dans le temps.
- Medium : Performance à variation significative sur tous les vCPU de la VM. Cette valeur ne garantit pas des performances constantes, mais est idéale pour les machines à faible demande CPU.
- Cœur(s) : 1
- Mémoire (Gio) : 1
- Nombre de VM : 1
- Cliquez sur Suivant. L’écran Net apparaît.
- Nous avons le choix entre le Cloud public, un Net et une sous-région
- Laissez Cloud public activé.

- Sélectionnez la sous-région dans laquelle vous voulez lancer la VM. (Dans le Cloud public, vous ne pouvez pas définir l’IP privée de vos VM.)
- Cliquez sur Suivant. L’écran de sélection d’un volume système apparaît.

- Sélectionnez Poursuivre avec un volume système par défaut.
- (optionnel) Dans le champ Nom du volume, tapez un nom pour votre volume système.
- Si vous voulez personnaliser le volume système de vos VM :
- Sélectionnez Personnaliser le volume système.
- Sélectionnez une des valeurs suivantes dans la liste Volume Type :
- standard pour un volume Magnetic
- gp2 pour un volume Performance
- io1 pour un volume Enterprise
- Dans le champ Taille du volume, spécifiez la taille du volume (en Gio).
- Cliquez sur Suivant. L’écran Security group apparaît.

- Sélectionner un ou plusieurs security groups existant et sélectionnez le Security group créé précédemment.
- Cliquez sur Suivant.
- L’écran de sélection d’une keypair apparaît.

- Sélectionnez la paire de clés que vous avez créée au début de cet atelier dans le champ Keypair.
- Cliquez sur Suivant. L’écran User data apparaît.

- Copier-coller le script suivant dans le champ section libre des User data :
#!/bin/bash
apt-get updateapt-get install -y apache2 php libapache2-mod-php
mv /var/www/html/index.html /var/www/html/index1.html
cat > /var/www/html/index.php << END<?php//header('Content-Type: text/plain');session_start();setcookie("outscale","lab" );?>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><title>Simple PHP App</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"><style>body {margin-top: 40px; background-color: #333;}</style><!--[if lt IE 9]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--></head>
<body><div class="container"><div class="jumbotron"><h1>Simple PHP App</h1><h2>Congratulations!</h2>
<ul><li>Your PHP application is now running on the host “<?php echo gethostname(); ?></li><li>This host is running PHP version <?php echo phpversion(); ?>.</li><li><?php echo "Server IP: ".$_SERVER['SERVER_ADDR']; ?></li><li><?php echo "Client IP: ".$_SERVER['REMOTE_ADDR']; ?></li><li><?php echo "X-Forwarded-for: ".$_SERVER['HTTP_X_FORWARDED_FOR']; ?></li>
<?phpif(!isset($_SESSION['visit'])){echo "<li> This is the first time you're visiting this server </li>";$_SESSION['visit'] = 0;}else{echo " <li>Your number of visits: ".$_SESSION['visit']."</li>";}
$_SESSION['visit']++;
foreach($_COOKIE as $key=>$value){echo "<li>".$key. " => " .$value. "</li>";}?></ul></div></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script></body></html>END- Cliquez sur Suivant. L’écran Récapitulatif apparaît.

- Vérifiez l’ensemble des paramètres des VM.
- Cliquez sur Créer des VM.
Une fois votre instance lancée, cliquez sur l’id de la VM pour afficher les détails de cette instance. Dans la partie réseau, nous verrons le nom d’hôte externe ainsi que l’IP publique de la VM.
Validation du lab
Section intitulée « Validation du lab »Attendez que l’instance passe les contrôles de l’état pour terminer le chargement. Ouvrez un nouvel onglet de navigateur et parcourez le serveur Web en saisissant le nom d’hôte externe ou l’IP publique de l’instance dans le navigateur.
Vous devriez voir une page Web qui ressemble à ce qui suit.

Challenge
Section intitulée « Challenge »Lancez une instance EC2 avec les exigences suivantes :
- Créer une paire de clés
- Lancer une instance de serveur Web
- Windows Server 2019
- Type d’instance : choisissez-en une qui possède 2 processeurs virtuels et 4 Gio de mémoire
- Lorsque l’instance démarre, elle doit :
- Installez IIS et configurez une page web
- Se connecter à votre instance à l’aide d’un client RDP
- USERDATA
<powershell>Import-Module ServerManager;Install-WindowsFeature Web-Server -IncludeManagementTools -IncludeAllSubFeature
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRoleEnable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerEnable-WindowsOptionalFeature -Online -FeatureName IIS-CommonHttpFeaturesEnable-WindowsOptionalFeature -Online -FeatureName IIS-HttpErrorsEnable-WindowsOptionalFeature -Online -FeatureName IIS-HttpRedirectEnable-WindowsOptionalFeature -Online -FeatureName IIS-ApplicationDevelopment
Enable-WindowsOptionalFeature -online -FeatureName NetFx4Extended-ASPNET45Enable-WindowsOptionalFeature -Online -FeatureName IIS-NetFxExtensibility45
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HealthAndDiagnosticsEnable-WindowsOptionalFeature -Online -FeatureName IIS-HttpLoggingEnable-WindowsOptionalFeature -Online -FeatureName IIS-LoggingLibrariesEnable-WindowsOptionalFeature -Online -FeatureName IIS-RequestMonitorEnable-WindowsOptionalFeature -Online -FeatureName IIS-HttpTracingEnable-WindowsOptionalFeature -Online -FeatureName IIS-SecurityEnable-WindowsOptionalFeature -Online -FeatureName IIS-RequestFilteringEnable-WindowsOptionalFeature -Online -FeatureName IIS-PerformanceEnable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerManagementToolsEnable-WindowsOptionalFeature -Online -FeatureName IIS-IIS6ManagementCompatibilityEnable-WindowsOptionalFeature -Online -FeatureName IIS-MetabaseEnable-WindowsOptionalFeature -Online -FeatureName IIS-ManagementConsoleEnable-WindowsOptionalFeature -Online -FeatureName IIS-BasicAuthenticationEnable-WindowsOptionalFeature -Online -FeatureName IIS-WindowsAuthenticationEnable-WindowsOptionalFeature -Online -FeatureName IIS-StaticContentEnable-WindowsOptionalFeature -Online -FeatureName IIS-DefaultDocumentEnable-WindowsOptionalFeature -Online -FeatureName IIS-WebSocketsEnable-WindowsOptionalFeature -Online -FeatureName IIS-ApplicationInitEnable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIExtensionsEnable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIFilterEnable-WindowsOptionalFeature -Online -FeatureName IIS-HttpCompressionStatic
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASPNET45remove-item -recurse c:\inetpub\wwwroot\*(New-Object System.Net.WebClient).DownloadFile("https://static.us-east-1.prod.workshops.aws/public/b2083843-9bc2-4f94-bf8e-c4f6238d04f4//static/common/ec2_web_hosting/ec2-windows.zip", "c:\inetpub\wwwroot\ec2-windows.zip")
$shell = new-object -com shell.application$zip = $shell.NameSpace("c:\inetpub\wwwroot\ec2-windows.zip")foreach($item in $zip.items()){$shell.Namespace("c:\inetpub\wwwroot\").copyhere($item)}</powershell>