

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Tutoriel : Déployer une application sur une instance locale avec CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux)
<a name="tutorials-on-premises-instance"></a>

Ce didacticiel vous aide à acquérir de l'expérience en vous CodeDeploy guidant dans le déploiement d'un exemple de révision d'application sur une seule instance locale, c'est-à-dire un appareil physique autre qu'une instance Amazon EC2, exécutant Windows Server, Ubuntu Server ou Red Hat Enterprise Linux (RHEL). Pour plus d'informations sur les instances locales et leur mode de fonctionnement CodeDeploy, consultez[Utilisation d'instances locales pour CodeDeploy](instances-on-premises.md).

Ce n'est pas ce que vous recherchez ?
+ Pour vous entraîner au déploiement sur une instance Amazon EC2 exécutant Amazon Linux ou RHEL, consultez. [Tutoriel : Déploiement WordPress sur une instance Amazon EC2 (Amazon Linux ou Red Hat Enterprise Linux et Linux, macOS ou Unix)](tutorials-wordpress.md)
+ Pour vous entraîner au déploiement sur une instance Amazon EC2 exécutant Windows Server, consultez. [Tutoriel : Déployez un message « Bonjour tout le monde \$1 » application avec CodeDeploy (Windows Server)](tutorials-windows.md)

**Topics**
+ [Conditions préalables](tutorials-on-premises-instance-prerequisites.md)
+ [Étape 1 : Configuration de l'instance sur site](tutorials-on-premises-instance-1-configure-instance.md)
+ [Étape 2 : Création d'un exemple de révision d'application](tutorials-on-premises-instance-2-create-sample-revision.md)
+ [Étape 3 : Regroupez et chargez la révision de votre application sur Amazon S3](tutorials-on-premises-instance-3-bundle-sample-revision.md)
+ [Étape 4 : Déployez la révision de votre application](tutorials-on-premises-instance-4-deploy-sample-revision.md)
+ [Étape 5 : vérifier votre déploiement](tutorials-on-premises-instance-5-verify-deployment.md)
+ [Étape 6 : nettoyer les ressources](tutorials-on-premises-instance-6-clean-up-resources.md)

# Conditions préalables
<a name="tutorials-on-premises-instance-prerequisites"></a>

Avant de commencer ce didacticiel, vous devez remplir les conditions requises, notamment la configuration d'un utilisateur[Commencer avec CodeDeploy](getting-started-codedeploy.md), l'installation ou la mise à niveau du AWS CLI, et la création d'un rôle de service. Il n'est pas nécessaire de créer un profil d'instance IAM comme décrit dans les conditions préalables. Les instances locales n'utilisent pas de profils d'instance IAM.

L'appareil physique que vous allez configurer comme instance sur site doit exécuter l'un des systèmes d'exploitation répertoriés dans [Systèmes d'exploitation pris en charge par l' CodeDeploy agent](codedeploy-agent.md#codedeploy-agent-supported-operating-systems).

# Étape 1 : Configuration de l'instance sur site
<a name="tutorials-on-premises-instance-1-configure-instance"></a>

Avant de pouvoir effectuer un déploiement sur votre instance sur site, vous devez la configurer. Suivez les instructions de [Utilisation d'instances locales pour CodeDeploy](instances-on-premises.md), puis revenez à cette page.

## Installation de l' CodeDeploy agent
<a name="tutorials-on-premises-instance-1-configure-instance-agent"></a>

Après avoir configuré votre instance locale, suivez les étapes relatives aux instances locales dans [Installer l' CodeDeploy agent](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html) et revenez à cette page.

# Étape 2 : Création d'un exemple de révision d'application
<a name="tutorials-on-premises-instance-2-create-sample-revision"></a>

Dans cette étape, vous créez un exemple de révision d'application à déployer sur votre instance sur site. 

Comme il est difficile de savoir quels logiciels et quelles fonctionnalités sont déjà installés (ou autorisés à être installés conformément aux politiques de votre organisation) sur votre instance locale, l'exemple de révision d'application que nous proposons ici utilise simplement des scripts batch (pour Windows Server) ou des scripts shell (pour Ubuntu Server et RHEL) pour écrire des fichiers texte sur un emplacement de votre instance locale. Un fichier est écrit pour chacun des événements du cycle de vie du CodeDeploy déploiement, notamment **Install **AfterInstall****, **ApplicationStart**, et **ValidateService**. Au cours de l'événement relatif au cycle de vie du **BeforeInstall**déploiement, un script sera exécuté pour supprimer les anciens fichiers écrits lors des déploiements précédents de cet exemple et créer un emplacement sur votre instance locale où écrire les nouveaux fichiers. 

**Note**  
Cet exemple de révision d'application peut ne pas être déployé si l'une des affirmations suivantes est vraie :  
L'utilisateur qui démarre l' CodeDeploy agent sur l'instance locale n'est pas autorisé à exécuter des scripts.
L'utilisateur n'est pas autorisé à créer ou à supprimer des dossiers dans les emplacements répertoriés dans les scripts.
L'utilisateur n'est pas autorisé à créer des fichiers texte dans les emplacements répertoriés dans les scripts.

**Note**  
Si vous avez configuré une instance Windows Server et que vous souhaitez déployer un autre exemple, vous pouvez utiliser celui présenté [Étape 2 : configurer votre contenu source à déployer sur l'instance Amazon EC2 de Windows Server](tutorials-windows-configure-content.md) dans le [Tutoriel : Déployez un message « Bonjour tout le monde \$1 » application avec CodeDeploy (Windows Server)](tutorials-windows.md) didacticiel.  
Si vous avez configuré une instance RHEL et que vous souhaitez déployer un autre exemple, vous pouvez utiliser celui présenté [Étape 2 : configurer votre contenu source à déployer sur l'instance Amazon EC2 Amazon Linux ou Red Hat Enterprise Linux](tutorials-wordpress-configure-content.md) dans le [Tutoriel : Déploiement WordPress sur une instance Amazon EC2 (Amazon Linux ou Red Hat Enterprise Linux et Linux, macOS ou Unix)](tutorials-wordpress.md) didacticiel.  
Il n'existe actuellement aucun autre exemple pour Ubuntu Server.

1. Sur votre machine de développement, créez un sous-répertoire (sous-dossier) nommé `CodeDeployDemo-OnPrem`, qui stockera les exemples de fichiers de révision d'application, puis basculez vers ce sous-dossier. Pour cet exemple, nous supposons que vous utiliserez le `c:\temp` dossier comme dossier racine pour Windows Server ou le `/tmp` dossier comme dossier racine pour Ubuntu Server et RHEL. Si vous utilisez un autre dossier, veillez à le substituer aux nôtres tout au long de ce didacticiel : 

   Pour Windows :

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem
   cd c:\temp\CodeDeployDemo-OnPrem
   ```

   Pour Linux, macOS ou Unix :

   ```
   mkdir /tmp/CodeDeployDemo-OnPrem
   cd /tmp/CodeDeployDemo-OnPrem
   ```

1. A la racine du sous-dossier `CodeDeployDemo-OnPrem`, utilisez un éditeur de texte pour créer deux fichiers nommés `appspec.yml` et `install.txt` :

   `appspec.yml`pour Windows Server :

   ```
   version: 0.0
   os: windows
   files:
     - source: .\install.txt
       destination: c:\temp\CodeDeployExample
   hooks:
     BeforeInstall:
       - location: .\scripts\before-install.bat
         timeout: 900
     AfterInstall:
       - location: .\scripts\after-install.bat     
         timeout: 900
     ApplicationStart:
       - location: .\scripts\application-start.bat  
         timeout: 900
     ValidateService:
       - location: .\scripts\validate-service.bat    
         timeout: 900
   ```

   `appspec.yml`pour Ubuntu Server et RHEL :

   ```
   version: 0.0
   os: linux
   files:
     - source: ./install.txt
       destination: /tmp/CodeDeployExample
   hooks:
     BeforeInstall:
       - location: ./scripts/before-install.sh
         timeout: 900
     AfterInstall:
       - location: ./scripts/after-install.sh
         timeout: 900
     ApplicationStart:
       - location: ./scripts/application-start.sh
         timeout: 900
     ValidateService:
       - location: ./scripts/validate-service.sh
         timeout: 900
   ```

   Pour plus d'informations sur AppSpec les fichiers, reportez-vous [Ajouter un fichier de spécification d'application à une révision pour CodeDeploy](application-revisions-appspec-file.md) aux sections et[CodeDeploy AppSpec référence de fichier](reference-appspec-file.md).

   `install.txt`:

   ```
   The Install deployment lifecycle event successfully completed.
   ```

1. À la racine du sous-dossier `CodeDeployDemo-OnPrem`, créez un sous-dossier `scripts`, puis accédez-y :

   Pour Windows :

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem\scripts
   cd c:\temp\CodeDeployDemo-OnPrem\scripts
   ```

   Pour Linux, macOS ou Unix :

   ```
   mkdir -p /tmp/CodeDeployDemo-OnPrem/scripts
   cd /tmp/CodeDeployDemo-OnPrem/scripts
   ```

1. À la racine du `scripts` sous-dossier, utilisez un éditeur de texte pour créer quatre fichiers nommés`before-install.bat`, `after-install.bat``application-start.bat`, et `validate-service.bat` pour Windows Server, ou, `before-install.sh` `after-install.sh``application-start.sh`, et `validate-service.sh` pour Ubuntu Server et RHEL :

   Pour Windows Server :

   `before-install.bat`:

   ```
   set FOLDER=%HOMEDRIVE%\temp\CodeDeployExample
   
   if exist %FOLDER% (
     rd /s /q "%FOLDER%"
   )
   
   mkdir %FOLDER%
   ```

   `after-install.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The AfterInstall deployment lifecycle event successfully completed. > after-install.txt
   ```

   `application-start.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txt
   ```

   `validate-service.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ValidateService deployment lifecycle event successfully completed. > validate-service.txt
   ```

   Pour Ubuntu Server et RHEL :

   `before-install.sh`:

   ```
   #!/bin/bash
   export FOLDER=/tmp/CodeDeployExample
   
   if [ -d $FOLDER ]
   then
    rm -rf $FOLDER
   fi
   
   mkdir -p $FOLDER
   ```

   `after-install.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The AfterInstall deployment lifecycle event successfully completed." > after-install.txt
   ```

   `application-start.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txt
   ```

   `validate-service.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt
   
   unset FOLDER
   ```

1. Pour Ubuntu Server et RHEL uniquement, assurez-vous que les quatre scripts shell disposent des autorisations d'exécution :

   ```
   chmod +x ./scripts/*
   ```

# Étape 3 : Regroupez et chargez la révision de votre application sur Amazon S3
<a name="tutorials-on-premises-instance-3-bundle-sample-revision"></a>

Avant de déployer la révision de votre application, vous devez regrouper les fichiers, puis télécharger le bundle de fichiers dans un compartiment Amazon S3. Suivez les instructions de [Créez une application avec CodeDeploy](applications-create.md) et [Transférer une révision CodeDeploy pour Amazon S3 (déploiements EC2/sur site uniquement)](application-revisions-push.md). (Bien que vous puissiez donner un nom quelconque à l'application et au groupe de déploiement, nous vous recommandons d'utiliser `CodeDeploy-OnPrem-App` pour le nom de l'application et `CodeDeploy-OnPrem-DG` pour le nom du groupe de déploiement.) Une fois que vous avez suivi ces instructions, revenez à cette page. 

**Note**  
Vous pouvez également télécharger le bundle de fichiers dans un GitHub référentiel et le déployer à partir de là. Pour de plus amples informations, veuillez consulter [Intégration CodeDeploy avec GitHub](integrations-partners-github.md).

# Étape 4 : Déployez la révision de votre application
<a name="tutorials-on-premises-instance-4-deploy-sample-revision"></a>

Après avoir chargé la révision de votre application dans un compartiment Amazon S3, essayez de la déployer sur votre instance sur site. Suivez les instructions de [Créez un déploiement avec CodeDeploy](deployments-create.md), puis revenez à cette page.

# Étape 5 : vérifier votre déploiement
<a name="tutorials-on-premises-instance-5-verify-deployment"></a>

Pour vérifier que le déploiement a réussi, suivez les instructions de [Afficher les détails CodeDeploy du déploiement](deployments-view-details.md), puis revenez à cette page.

Si le déploiement a réussi, vous trouverez quatre fichiers texte dans le `c:\temp\CodeDeployExample` dossier (pour Windows Server) ou `/tmp/CodeDeployExample` (pour Ubuntu Server et RHEL). 

Si le déploiement a échoué, suivez les étapes de dépannage de [Afficher les détails de l'instance avec CodeDeploy](instances-view-details.md) et [Résolution des problèmes d'instance](troubleshooting-ec2-instances.md). Réalisez toutes les corrections requises, regroupez et chargez votre révision d'application, puis réessayez d'effectuer le déploiement.

# Étape 6 : nettoyer les ressources
<a name="tutorials-on-premises-instance-6-clean-up-resources"></a>

Pour éviter des frais permanents pour les ressources que vous avez créées pour ce didacticiel, supprimez le compartiment Amazon S3 si vous ne l'utilisez plus. Vous pouvez également nettoyer les ressources associées, telles que les enregistrements de l'application et du groupe de déploiement dans CodeDeploy et dans l'instance locale.

Vous pouvez utiliser les consoles Amazon S3 AWS CLI ou une combinaison de celles-ci AWS CLI pour nettoyer les ressources. CodeDeploy 

## Nettoyer les ressources (CLI)
<a name="tutorials-on-premises-instance-6-clean-up-resources-cli"></a>

**Pour supprimer le compartiment Amazon S3**
+ Appelez la commande [rm](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html) avec le commutateur `--recursive` sur le compartiment (par exemple, `amzn-s3-demo-bucket`). Le compartiment et tous les objets figurant dans le compartiment sont supprimés. 

  ```
  aws s3 rm s3://your-bucket-name --recursive --region region
  ```

**Pour supprimer les enregistrements de l'application et du groupe de déploiement dans CodeDeploy**
+ Appelez la commande [delete-application](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) sur l'application (par exemple,`CodeDeploy-OnPrem-App`). Les enregistrements pour le déploiement et le groupe de déploiement sont supprimés. 

  ```
  aws deploy delete-application --application-name your-application-name
  ```<a name="tutorials-on-premises-instance-6-clean-up-resources-deregister-cli"></a>

**Pour désenregistrer l'instance locale et supprimer l'utilisateur IAM**
+ Appelez la commande de [désenregistrement](https://docs.aws.amazon.com/cli/latest/reference/deploy/deregister.html) par rapport à l'instance et à la région locales :

  ```
  aws deploy deregister --instance-name your-instance-name --delete-iam-user --region your-region
  ```
**Note**  
Si vous ne souhaitez pas supprimer l'utilisateur IAM associé à cette instance locale, utilisez plutôt l'`--no-delete-iam-user`option.

**Pour désinstaller l' CodeDeploy agent et supprimer le fichier de configuration de l'instance locale**
+ À partir de l'instance locale, appelez la commande de [désinstallation](https://docs.aws.amazon.com/cli/latest/reference/deploy/uninstall.html) :

  ```
  aws deploy uninstall
  ```

Vous avez maintenant terminé toutes les étapes de nettoyage des ressources utilisées pour ce didacticiel.

## Nettoyer les ressources (console)
<a name="tutorials-on-premises-instance-6-clean-up-resources-console"></a>

**Pour supprimer le compartiment Amazon S3**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Choisissez l'icône à côté du compartiment que vous souhaitez supprimer (par exemple, `amzn-s3-demo-bucket`), mais ne choisissez pas le compartiment lui-même.

1. Choisissez **Actions**, puis **Supprimer**. 

1. Lorsque vous êtes invité à supprimer le compartiment, choisissez **OK**. 

**Pour supprimer les enregistrements de l'application et du groupe de déploiement dans CodeDeploy**

1. Connectez-vous à la CodeDeploy console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/codedeploy.](https://console.aws.amazon.com/codedeploy)
**Note**  
Connectez-vous avec le même utilisateur que celui que vous avez configuré[Commencer avec CodeDeploy](getting-started-codedeploy.md).

1. Dans le volet de navigation, choisissez **Applications**.

1. Choisissez le nom de l'application à supprimer (par exemple, `CodeDeploy-OnPrem-App`), puis choisissez **Supprimer l'application**.

1. À l'invite, entrez le nom de l'application pour confirmer que vous souhaitez la supprimer, puis choisissez **Supprimer**. 

Vous ne pouvez pas utiliser la AWS CodeDeploy console pour désenregistrer l'instance locale ou désinstaller l'agent. CodeDeploy Suivez les instructions de la section [Pour désenregistrer l'instance locale et supprimer l'utilisateur IAM](#tutorials-on-premises-instance-6-clean-up-resources-deregister-cli).