

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.

# Comment migrer un serveur OpsWorks pour Puppet Enterprise vers Amazon Elastic Compute Cloud (Amazon EC2)
<a name="opspup-migrate-ec2"></a>

**Important**  
Le AWS OpsWorks for Puppet Enterprise service a atteint sa fin de vie le 31 mars 2024 et a été désactivé pour les nouveaux clients et les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur [AWS Re:Post](https://repost.aws/) ou via le [AWS Support](https://aws.amazon.com/support) Premium. 

Les instructions ci-dessous décrivent comment migrer les serveurs Puppet Enterprise existants vers Amazon EC2, au cas où vous souhaiteriez continuer à utiliser Puppet Enterprise pour vos besoins de gestion de configuration en dehors de. OpsWorks

**Topics**
+ [Étape 1 : contactez Puppet pour acheter une licence](#opspup-migrate-ec2-contact)
+ [Étape 2 : Obtenez des informations sur votre serveur OpsWorks pour Puppet Enterprise](#opspup-migrate-ec2-details)
+ [Étape 3 : effectuez une sauvegarde de votre serveur OpsWorks pour Puppet Enterprise](#opspup-migrate-ec2-backup)
+ [Étape 4 : Lancer une nouvelle EC2 instance](#opspup-migrate-ec2-launch)
+ [Étape 5 : Installation de Puppet Enterprise sur la nouvelle instance EC2](#opspup-migrate-ec2-install-puppet)
+ [Étape 6 : restauration de la sauvegarde sur la nouvelle EC2 instance](#opspup-migrate-ec2-restore)
+ [Étape 7 : Configuration de votre licence Puppet](#opspup-migrate-ec2-configure-license)
+ [Étape 8 : migrez vos nœuds](#opspup-migrate-ec2-nodes)
+ [Étape 9 : Supprimer votre serveur OpsWorks pour Puppet Enterprise](#opspup-migrate-ec2-delete-server)

## Étape 1 : contactez Puppet pour acheter une licence
<a name="opspup-migrate-ec2-contact"></a>

 Lorsque vous migrez vos serveurs vers EC2, la nouvelle instance n'est pas fournie avec une licence Puppet. Pour acheter une clé de licence, suivez les instructions sur le [site Web de Puppet](https://www.puppet.com/docs/pe/2021.1/purchasing_and_installing_a_license_key.html).

## Étape 2 : Obtenez des informations sur votre serveur OpsWorks pour Puppet Enterprise
<a name="opspup-migrate-ec2-details"></a>

 Recherchez et enregistrez les valeurs pour votre serveur OpsWorks pour Puppet Enterprise. 

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/).

   Copiez le nom du compartiment Amazon S3 existant pour votre serveur OpsWorks pour Puppet Enterprise. Le nom du bucket est au format suivant : `aws-opsworks-cm-server-name-random-string`

1. Exécutez la **aws opsworks-cm describe-servers** commande pour obtenir la configuration de votre serveur OpsWorks for Puppet Enterprise.

   ```
   aws opsworks-cm describe-servers \
      --server-name server-name \
      --region region
   ```

   Stockez les valeurs pour `InstanceType``KeyPair`,`SubnetIds`,, `SecurityGroupIds``InstanceProfileArn`, et `Endpoint` issues de la réponse.

1. Utilisez SSH pour vous connecter au serveur existant OpsWorks pour Puppet Enterprise. Vous pouvez utiliser le gestionnaire de session dans la EC2 console au lieu de SSH.

   Exécutez la commande suivante.

   ```
   rpm -qa | grep opsworks-cm-puppet-enterprise | cut -d '-' -f 5
   ```

   La réponse fournit la version de Puppet Enterprise (par exemple, 2019.8.10). Enregistrez cette valeur.

Vous utiliserez SSH ou le gestionnaire de session pour l'étape suivante.

## Étape 3 : effectuez une sauvegarde de votre serveur OpsWorks pour Puppet Enterprise
<a name="opspup-migrate-ec2-backup"></a>

1.  Exécutez les commandes suivantes pour effectuer une sauvegarde locale. 

   ```
   mkdir /tmp/puppet-backup/
   sudo /opt/puppetlabs/bin/puppet-backup create --dir=/tmp/puppet-backup/
   ```

1.  Exécutez la commande suivante pour enregistrer le nom de la sauvegarde. 

   ```
   ls /tmp/puppet-backup/
   PUPPET_BACKUP=$(ls /tmp/puppet-backup/)
   ```

1.  Exécutez la commande suivante pour télécharger votre sauvegarde dans un compartiment S3. Remplacez *S3-Bucket* par la valeur de l'étape 1 dans[Étape 2 : Obtenez des informations sur votre serveur OpsWorks pour Puppet Enterprise](#opspup-migrate-ec2-details). 

   ```
   aws s3 cp /tmp/puppet-backup/PUPPET_BACKUP s3://S3_Bucket/tmp/puppet-backup/
   ```

   Stockez les `S3_BUCKET` valeurs `PUPPET_BACKUP` et. Vous allez importer ces valeurs dans la nouvelle EC2 instance.

Vous pouvez quitter la session SSH ou le gestionnaire de session.

## Étape 4 : Lancer une nouvelle EC2 instance
<a name="opspup-migrate-ec2-launch"></a>

[Lancez une nouvelle EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html) depuis la EC2 console [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)en utilisant la même configuration que celle du OpsWorks serveur Puppet Enterprise.


| Nom du paramètre | Value | 
| --- | --- | 
|  **SE**  |  Amazon Linux 2  | 
|  **Type d’instance**  |  La `InstanceType` valeur de l'étape 2 de[Étape 2 : Obtenez des informations sur votre serveur OpsWorks pour Puppet Enterprise](#opspup-migrate-ec2-details).   | 
|  **Nom de la paire de clés**  |  La `KeyPair` valeur de l'étape 2 de[Étape 2 : Obtenez des informations sur votre serveur OpsWorks pour Puppet Enterprise](#opspup-migrate-ec2-details).   | 
|  **VPC**  |  Le VPC de l'étape 2 `SubnetIds` de. [Étape 2 : Obtenez des informations sur votre serveur OpsWorks pour Puppet Enterprise](#opspup-migrate-ec2-details)  | 
|  **Sous-réseau**  |  À `SubnetIds` partir de l'étape 2 de[Étape 2 : Obtenez des informations sur votre serveur OpsWorks pour Puppet Enterprise](#opspup-migrate-ec2-details).  | 
|  **Sélectionnez un groupe de sécurité existant** -> **Groupes de sécurité communs**   |  À `SecurityGroupIds` partir de l'étape 2 de[Étape 2 : Obtenez des informations sur votre serveur OpsWorks pour Puppet Enterprise](#opspup-migrate-ec2-details).  | 
|  **Stockage**  |  Au moins 120 Go.  | 
|  **Profil d'instance IAM**  |  À `InstanceProfileArn` partir de l'étape 2 de[Étape 2 : Obtenez des informations sur votre serveur OpsWorks pour Puppet Enterprise](#opspup-migrate-ec2-details).  | 

Si vous souhaitez créer et associer une adresse IP élastique à la nouvelle instance, copiez l'ID d'instance de la nouvelle instance et suivez les étapes décrites dans[(Facultatif) Étape 4.1 : créer et associer une adresse IP élastique](#opspup-migrate-ec2-elastic-ip).

### (Facultatif) Étape 4.1 : créer et associer une adresse IP élastique
<a name="opspup-migrate-ec2-elastic-ip"></a>

En utilisant une adresse IP Elastic, vous pouvez contourner un problème de défaillance d’une instance ou d’un logiciel en remappant rapidement l’adresse à une autre instance de votre compte.

**Pour créer et associer une adresse IP élastique**

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

1. Choisissez **Elastic IPs**.

1. Choisissez **Allocate Elastic IP address (Allouer l’adresse IP Elastic)**.

1. Sur la page **Allouer une adresse IP élastique**, choisissez **Allocate**. Cela crée une IPv4 adresse publique.

1. Copiez l'** IPv4 adresse allouée**.

1. Dans **Actions**, sélectionnez **Associer une adresse IP élastique**.

1. Pour **Instance**, entrez l'ID d'instance pour la nouvelle instance.

1. Choisissez **Associer**.

## Étape 5 : Installation de Puppet Enterprise sur la nouvelle instance EC2
<a name="opspup-migrate-ec2-install-puppet"></a>

Utilisez SSH pour vous connecter à la nouvelle EC2 instance. Vous pouvez utiliser le gestionnaire de session dans la EC2 console au lieu de SSH.

```
# switch to sudo user
sudo -i

# Setup environment variables
PUPPET_ENTERPRISE_VERSION=Puppet Enterprise version from step 2.3
hostname Public IPv4 DNS or Custom Domain if available

# Install Puppet Enterprise
curl -JLO https://pm.puppetlabs.com/puppet-enterprise/$PUPPET_ENTERPRISE_VERSION/puppet-enterprise-$PUPPET_ENTERPRISE_VERSION-el-7-x86_64.tar.gz
tar -xf puppet-enterprise-$PUPPET_ENTERPRISE_VERSION-el-7-x86_64.tar.gz

./puppet-enterprise-$PUPPET_ENTERPRISE_VERSION-el-7-x86_64/puppet-enterprise-installer
```

Vous pouvez garder votre session SSH ou Session Manager ouverte pour l'étape suivante.

## Étape 6 : restauration de la sauvegarde sur la nouvelle EC2 instance
<a name="opspup-migrate-ec2-restore"></a>

```
# Setup environment variables
S3_BUCKET=S3 bucket name from step 2.1
PUPPET_BACKUP=Puppet backup file name from step 3.2

# download backup
aws s3 cp s3://$S3_BUCKET/tmp/puppet-backup/$PUPPET_BACKUP

# Prepare Puppet Enterprise backup to remove OpsWorks metadata
mkdir output
tar -xf $PUPPET_BACKUP -C output/
cd output/
rm -f opt/puppetlabs/facter/facts.d/opsworks.json
tar -cf ../$PUPPET_BACKUP *
cd ..
rm -rf output/

# Restore from backup
PATH=$PATH:/opt/puppetlabs/puppet/bin/
puppet-backup restore $PUPPET_BACKUP
puppet agent -t
```

Vous pouvez accéder à la console Puppet pour l' EC2 instance restaurée à l'adresse https ://*Public IPv4 of the instance*. Vous trouverez le IPv4 DNS public sur la page de détails de l'instance dans la EC2 console. Les informations de connexion sont les mêmes que celles que vous utilisez pour accéder à votre serveur OpsWorks pour Puppet Enterprise.

Vous pouvez garder votre session SSH ou Session Manager ouverte pour l'étape suivante.

## Étape 7 : Configuration de votre licence Puppet
<a name="opspup-migrate-ec2-configure-license"></a>

Suivez les étapes indiquées sur le [site Web de Puppet](https://www.puppet.com/docs/pe/2021.1/purchasing_and_installing_a_license_key.html#install_a_license_key) pour configurer votre licence.

Vous pouvez garder votre session SSH ou Session Manager ouverte pour l'étape suivante.

## Étape 8 : migrez vos nœuds
<a name="opspup-migrate-ec2-nodes"></a>

Deux types de domaines sont pris en charge par les serveurs OpsWorks for Puppet Enterprise :
+ BYODC (apportez votre propre domaine et certificat)
+ OpsWorks point de terminaison

### Étape 8.1 : Pour le BYODC (apportez votre propre domaine et certificat)
<a name="opspup-migrate-ec2-nodes-byodc"></a>

Pour ces nœuds, il vous suffit de faire pointer le domaine personnalisé de votre fournisseur DNS vers le IPv4 DNS public ou l' IPv4 adresse publique de la nouvelle EC2 instance.

### Étape 8.2 : Pour le OpsWorks terminal
<a name="opspup-migrate-ec2-nodes-endpoint"></a>

Pour un OpsWorks point de terminaison, la documentation de Puppet recommande de [désinstaller](https://www.puppet.com/docs/pe/2019.8/uninstalling.html#uninstall_agents) l'agent Puppet sur le nœud, puis d'[installer](https://www.puppet.com/docs/pe/2019.8/installing_agents.html) l'agent Puppet à l'aide du serveur Puppet Enterprise récemment restauré.

**Note**  
 Bien que Puppet ne dispose pas de procédure automatique pour déplacer un nœud d'agent, les membres de la communauté Puppet ont publié quelques modules sur le [site Web de Puppet Forge](https://forge.puppet.com/) pour effectuer la migration automatique des nœuds. Ces modules incluent le [https://forge.puppet.com/modules/coreymbe/pe_migrate/readme](https://forge.puppet.com/modules/coreymbe/pe_migrate/readme)module et un second [module de migration](https://forge.puppet.com/modules/ffalor/migrate) créé par un autre auteur. Les modules du site Web de Puppet Forge **ne sont pas pris en charge par Puppet ou OpsWorks** sauf indication contraire explicite dans le module Forge. Nous vous recommandons de faire preuve de prudence avec ces modules et de les tester avant de les utiliser à grande échelle. 

Les sections suivantes décrivent les étapes à suivre pour désinstaller et réinstaller les agents Puppet sur les instances Linux.

**Topics**
+ [Étape 8.2.1 : Copiez le programme de désinstallation depuis le serveur Puppet](#opspup-migrate-ec2-uninstall-copy)
+ [Étape 8.2.2 : Téléchargez le programme de désinstallation et exécutez-le sur un nœud](#opspup-migrate-ec2-uninstall-download)
+ [Étape 8.2.3 : Réinstaller l'agent Puppet sur un nœud](#opspup-migrate-ec2-reinstall-agent)

#### Étape 8.2.1 : Copiez le programme de désinstallation depuis le serveur Puppet
<a name="opspup-migrate-ec2-uninstall-copy"></a>

Avant de désinstaller l'agent, assurez-vous que le profil d'instance IAM du nœud fournit ReadOnly les autorisations S3.

Exécutez la commande suivante pour copier le programme de désinstallation du serveur Puppet vers le compartiment S3.

```
aws s3 cp \
   /opt/puppetlabs/bin/puppet-enterprise-uninstaller \
   s3://$S3_BUCKET/tmp/puppet-enterprise-uninstaller
```

Après avoir exécuté la commande, vous pouvez vous déconnecter de la session SSH ou du gestionnaire de session du serveur Puppet.

#### Étape 8.2.2 : Téléchargez le programme de désinstallation et exécutez-le sur un nœud
<a name="opspup-migrate-ec2-uninstall-download"></a>

Utilisez SSH pour vous connecter au nœud. Vous pouvez utiliser le gestionnaire de session dans la EC2 console au lieu de SSH si le nœud est une EC2 instance.

```
sudo -i

S3_BUCKET=aws-opsworks-cm-abcdefg-uuhtyn6messn
aws s3 cp s3://$S3_BUCKET/tmp/puppet-enterprise-uninstaller /opt/puppetlabs/bin/
chmod 700 /opt/puppetlabs/bin/puppet-enterprise-uninstaller
/opt/puppetlabs/bin/puppet-enterprise-uninstaller
```

Vous pouvez garder votre session SSH ou Session Manager ouverte pour l'étape suivante.

#### Étape 8.2.3 : Réinstaller l'agent Puppet sur un nœud
<a name="opspup-migrate-ec2-reinstall-agent"></a>

Procédez comme suit pour réinstaller l'agent Puppet sur un nœud.

**Topics**
+ [Étape 8.2.3.1 : Installation de l'agent Puppet avec la bonne configuration](#w2ab1b7c41c23b9c15b7)
+ [Étape 8.2.3.2 : Accepter le certificat dans la console Puppet](#w2ab1b7c41c23b9c15b9)
+ [Étape 8.2.3.3 : Vérifiez le nœud dans le serveur Puppet Enterprise](#w2ab1b7c41c23b9c15c11)

##### Étape 8.2.3.1 : Installation de l'agent Puppet avec la bonne configuration
<a name="w2ab1b7c41c23b9c15b7"></a>

Exécutez la commande suivante pour installer l'agent Puppet.

```
curl -k https://Public_IPv4_DNS:8140/packages/current/install.bash | bash
```

Vous pouvez garder votre session SSH ou Session Manager ouverte pour l'étape 8.2.2.3.

##### Étape 8.2.3.2 : Accepter le certificat dans la console Puppet
<a name="w2ab1b7c41c23b9c15b9"></a>

1. Accédez à la console du serveur Puppet à l'adresse`https://Public_IPv4_DNS`.

1. Choisissez **Certificats**, puis **Certificats non signés**.

1. Choisissez **Accepter** pour signer le certificat de l'agent Puppet.

##### Étape 8.2.3.3 : Vérifiez le nœud dans le serveur Puppet Enterprise
<a name="w2ab1b7c41c23b9c15c11"></a>

Exécutez la commande suivante sur le nœud pour l'intégrer au serveur.

```
puppet agent -t
```

Le nœud devrait maintenant être visible dans la console du serveur Puppet.

## Étape 9 : Supprimer votre serveur OpsWorks pour Puppet Enterprise
<a name="opspup-migrate-ec2-delete-server"></a>

Vous pouvez utiliser la OpsWorks console ou AWS CLI supprimer votre serveur OpsWorks pour Puppet Enterprise.

**Pour supprimer votre serveur à l'aide de la OpsWorks console**

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

1. Choisissez les **serveurs Puppet Enterprise** dans le volet de navigation.

1. Sur la page des **serveurs Puppet Enterprise**, choisissez le serveur que vous souhaitez supprimer.

1. Dans **Actions**, choisissez **Supprimer le serveur Puppet Enterprise**.

**Pour supprimer votre serveur à l'aide du AWS CLI**

Exécutez la commande suivante.

```
aws opsworks-cm delete-server \
   --server-name server-name \
   --region region
```