

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Come migrare un server OpsWorks for Puppet Enterprise su Amazon Elastic Compute Cloud (Amazon) EC2
<a name="opspup-migrate-ec2"></a>

**Importante**  
Il AWS OpsWorks for Puppet Enterprise servizio ha raggiunto la fine del ciclo di vita il 31 marzo 2024 ed è stato disabilitato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il Supporto AWS Team su [AWS re:post](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support). 

Le istruzioni seguenti descrivono come migrare i server Puppet Enterprise esistenti su Amazon EC2, nel caso in cui desideri continuare a utilizzare Puppet Enterprise per le tue esigenze di gestione della configurazione al di fuori di. OpsWorks

**Topics**
+ [Passaggio 1: contatta Puppet per acquistare una licenza](#opspup-migrate-ec2-contact)
+ [Passaggio 2: Ottieni dettagli sul tuo server OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details)
+ [Passaggio 3: Effettua un backup del tuo server OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-backup)
+ [Fase 4: Avviare una nuova istanza EC2](#opspup-migrate-ec2-launch)
+ [Passaggio 5: installa Puppet Enterprise sulla nuova istanza EC2](#opspup-migrate-ec2-install-puppet)
+ [Passaggio 6: ripristinare il backup sulla nuova EC2 istanza](#opspup-migrate-ec2-restore)
+ [Passaggio 7: configura la tua licenza Puppet](#opspup-migrate-ec2-configure-license)
+ [Fase 8: Migrazione dei nodi](#opspup-migrate-ec2-nodes)
+ [Passaggio 9: Elimina il tuo server OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-delete-server)

## Passaggio 1: contatta Puppet per acquistare una licenza
<a name="opspup-migrate-ec2-contact"></a>

 Quando esegui la migrazione dei server verso EC2, la nuova istanza non viene fornita con una licenza Puppet. Per acquistare una chiave di licenza, segui le istruzioni sul sito Web di [Puppet](https://www.puppet.com/docs/pe/2021.1/purchasing_and_installing_a_license_key.html).

## Passaggio 2: Ottieni dettagli sul tuo server OpsWorks for Puppet Enterprise
<a name="opspup-migrate-ec2-details"></a>

 Trova e salva i valori per il tuo server OpsWorks for Puppet Enterprise. 

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

   Copia il nome del bucket Amazon S3 esistente per il tuo server for Puppet OpsWorks Enterprise. Il nome del bucket ha il formato: `aws-opsworks-cm-server-name-random-string`

1. Esegui il **aws opsworks-cm describe-servers** comando per ottenere la configurazione per il tuo server OpsWorks for Puppet Enterprise.

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

   Memorizza i valori per `InstanceType``KeyPair`,`SubnetIds`,`SecurityGroupIds`,`InstanceProfileArn`, e `Endpoint` della risposta.

1. Usa SSH per connetterti al server OpsWorks for Puppet Enterprise esistente. Puoi usare Session Manager nella EC2 console anziché SSH.

   Eseguire il seguente comando seguente.

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

   La risposta fornisce la versione di Puppet Enterprise (ad esempio, 2019.8.10). Memorizza questo valore.

Utilizzerai SSH o Session manager per il passaggio successivo.

## Passaggio 3: Effettua un backup del tuo server OpsWorks for Puppet Enterprise
<a name="opspup-migrate-ec2-backup"></a>

1.  Esegui i seguenti comandi per effettuare un backup locale. 

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

1.  Esegui il comando seguente per memorizzare il nome per il backup. 

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

1.  Esegui il comando seguente per caricare il backup in un bucket S3. Sostituisci *S3-Bucket* con il valore del passaggio 1 in poi. [Passaggio 2: Ottieni dettagli sul tuo server OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details) 

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

   Memorizza `S3_BUCKET` i valori `PUPPET_BACKUP` and. Importerete questi valori nella nuova EC2 istanza.

È possibile uscire dalla sessione SSH o Session Manager.

## Fase 4: Avviare una nuova istanza EC2
<a name="opspup-migrate-ec2-launch"></a>

[Avvia una nuova EC2 istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html) dalla EC2 console [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)utilizzando la stessa configurazione del server OpsWorks for Puppet Enterprise.


| Nome del parametro | Valore | 
| --- | --- | 
|  **SISTEMA OPERATIVO**  |  Amazon Linux 2  | 
|  **Tipo di istanza**  |  Il `InstanceType` valore del passaggio 2 di. [Passaggio 2: Ottieni dettagli sul tuo server OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details)   | 
|  **Nome della coppia di chiavi**  |  Il `KeyPair` valore del passaggio 2 di[Passaggio 2: Ottieni dettagli sul tuo server OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details).   | 
|  **VPC**  |  Il VPC della fase 2 `SubnetIds` di. [Passaggio 2: Ottieni dettagli sul tuo server OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details)  | 
|  **Sottorete**  |  `SubnetIds`Dalla fase 2 di. [Passaggio 2: Ottieni dettagli sul tuo server OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details)  | 
|  **Seleziona il gruppo di sicurezza esistente** -> **Gruppi di sicurezza comuni**   |  `SecurityGroupIds`Dalla fase 2 di[Passaggio 2: Ottieni dettagli sul tuo server OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details).  | 
|  **Storage**  |  Almeno 120 GB.  | 
|  **Profilo dell'istanza IAM**  |  `InstanceProfileArn`Dalla fase 2 di[Passaggio 2: Ottieni dettagli sul tuo server OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details).  | 

Se desideri creare e collegare un IP elastico alla nuova istanza, copia l'ID dell'istanza della nuova istanza e completa i passaggi indicati in[(Facoltativo) Fase 4.1: Creare e collegare un IP elastico](#opspup-migrate-ec2-elastic-ip).

### (Facoltativo) Fase 4.1: Creare e collegare un IP elastico
<a name="opspup-migrate-ec2-elastic-ip"></a>

Mediante un indirizzo IP elastico, è possibile mascherare il guasto di un'istanza o di un software rimappando rapidamente l'indirizzo per un'altra istanza presente nell'account.

**Per creare e associare un indirizzo IP elastico**

1. Accedi a Console di gestione AWS e apri la EC2 console Amazon all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Scegli **Elastic IPs**.

1. Scegli **Alloca indirizzo IP elastico**.

1. Dalla pagina **Allocate Elastic IP address**, scegli **Allocate**. Questo crea un indirizzo pubblico IPv4 .

1. Copia l'** IPv4 indirizzo assegnato**.

1. Da **Azioni**, scegli **Associa indirizzo IP elastico**.

1. Ad **esempio**, inserisci l'ID dell'istanza per la nuova istanza.

1. Selezionare **Associate (Associa)**.

## Passaggio 5: installa Puppet Enterprise sulla nuova istanza EC2
<a name="opspup-migrate-ec2-install-puppet"></a>

Usa SSH per connetterti alla nuova EC2 istanza. È possibile utilizzare Session Manager nella EC2 console anziché 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
```

Puoi mantenere aperta la sessione SSH o Session Manager per il passaggio successivo.

## Passaggio 6: ripristinare il backup sulla nuova EC2 istanza
<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
```

Puoi accedere alla console Puppet per l' EC2 istanza ripristinata all'indirizzo https://*Public IPv4 of the instance*. Puoi trovare il IPv4 DNS pubblico nella pagina dei dettagli dell'istanza nella EC2 console. Le credenziali di accesso sono le stesse che usi per accedere al tuo server OpsWorks for Puppet Enterprise.

Puoi mantenere aperta la sessione SSH o Session Manager per il passaggio successivo.

## Passaggio 7: configura la tua licenza Puppet
<a name="opspup-migrate-ec2-configure-license"></a>

Segui i passaggi sul [sito web di Puppet](https://www.puppet.com/docs/pe/2021.1/purchasing_and_installing_a_license_key.html#install_a_license_key) per configurare la tua licenza.

Puoi tenere aperta la sessione SSH o Session Manager per il passaggio successivo.

## Fase 8: Migrazione dei nodi
<a name="opspup-migrate-ec2-nodes"></a>

Esistono due tipi di domini supportati dai quattro server Puppet OpsWorks Enterprise:
+ BYODC (Bring Your Own Domain and Certificate)
+ OpsWorks endpoint

### Passaggio 8.1: Per BYODC (porta il tuo dominio e il tuo certificato)
<a name="opspup-migrate-ec2-nodes-byodc"></a>

Per questi nodi, tutto ciò che devi fare è indirizzare il dominio personalizzato del tuo provider DNS al DNS pubblico IPv4 o all' IPv4 indirizzo pubblico della nuova istanza. EC2 

### Fase 8.2: Per endpoint OpsWorks
<a name="opspup-migrate-ec2-nodes-endpoint"></a>

Per un OpsWorks endpoint, la documentazione di Puppet consiglia di [disinstallare](https://www.puppet.com/docs/pe/2019.8/uninstalling.html#uninstall_agents) l'agente Puppet sul nodo e quindi [installare l'agente Puppet utilizzando il server](https://www.puppet.com/docs/pe/2019.8/installing_agents.html) Puppet Enterprise appena ripristinato.

**Nota**  
 [Sebbene Puppet non disponga di una procedura automatizzata per spostare un nodo agente, ci sono alcuni moduli che i membri della community di Puppet hanno pubblicato sul sito Web di Puppet Forge per eseguire la migrazione automatica dei nodi.](https://forge.puppet.com/) Questi moduli includono il [https://forge.puppet.com/modules/coreymbe/pe_migrate/readme](https://forge.puppet.com/modules/coreymbe/pe_migrate/readme)modulo e un secondo modulo di [migrazione di un altro autore](https://forge.puppet.com/modules/ffalor/migrate). I moduli sul sito web di Puppet Forge **non sono supportati da Puppet o a OpsWorks meno che non** sia esplicitamente indicato all'interno del modulo Forge. Consigliamo di usare cautela con questi moduli e di testarli prima di utilizzarli su larga scala. 

Le seguenti sezioni forniscono i passaggi per disinstallare e reinstallare gli agenti Puppet sulle istanze Linux.

**Topics**
+ [Passaggio 8.2.1: Copia il programma di disinstallazione dal server Puppet](#opspup-migrate-ec2-uninstall-copy)
+ [Passaggio 8.2.2: scarica il programma di disinstallazione ed eseguilo su un nodo](#opspup-migrate-ec2-uninstall-download)
+ [Passaggio 8.2.3: Reinstallare l'agente Puppet su un nodo](#opspup-migrate-ec2-reinstall-agent)

#### Passaggio 8.2.1: Copia il programma di disinstallazione dal server Puppet
<a name="opspup-migrate-ec2-uninstall-copy"></a>

Prima di disinstallare l'agente, assicurati che il profilo dell'istanza IAM del nodo fornisca le autorizzazioni S3. ReadOnly 

Esegui il comando seguente per copiare il programma di disinstallazione dal server Puppet al bucket S3.

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

Dopo aver eseguito il comando, puoi disconnetterti dalla sessione SSH o Session Manager del server Puppet.

#### Passaggio 8.2.2: scarica il programma di disinstallazione ed eseguilo su un nodo
<a name="opspup-migrate-ec2-uninstall-download"></a>

Usa SSH per connetterti al nodo. È possibile utilizzare Session Manager nella EC2 console anziché SSH se il nodo è un' EC2 istanza.

```
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
```

Puoi mantenere aperta la sessione SSH o Session Manager per il passaggio successivo.

#### Passaggio 8.2.3: Reinstallare l'agente Puppet su un nodo
<a name="opspup-migrate-ec2-reinstall-agent"></a>

Completa i seguenti passaggi per reinstallare l'agente Puppet su un nodo.

**Topics**
+ [Passaggio 8.2.3.1: Installa l'agente Puppet con la configurazione corretta](#w2ab1b7c41c23b9c15b7)
+ [Passaggio 8.2.3.2: Accetta il certificato nella console Puppet](#w2ab1b7c41c23b9c15b9)
+ [Passaggio 8.2.3.3: Controlla il nodo nel server Puppet Enterprise](#w2ab1b7c41c23b9c15c11)

##### Passaggio 8.2.3.1: Installa l'agente Puppet con la configurazione corretta
<a name="w2ab1b7c41c23b9c15b7"></a>

Esegui il comando seguente per installare l'agente Puppet.

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

Puoi mantenere aperta la sessione SSH o Session Manager per il passaggio 8.2.2.3.

##### Passaggio 8.2.3.2: Accetta il certificato nella console Puppet
<a name="w2ab1b7c41c23b9c15b9"></a>

1. Vai alla console del server Puppet all'indirizzo. `https://Public_IPv4_DNS`

1. Scegli **Certificati**, quindi Certificati **non firmati**.

1. Scegli **Accetta** per firmare il certificato dell'agente Puppet.

##### Passaggio 8.2.3.3: Controlla il nodo nel server Puppet Enterprise
<a name="w2ab1b7c41c23b9c15c11"></a>

Esegui il seguente comando sul nodo per archiviarlo nel server.

```
puppet agent -t
```

Il nodo dovrebbe ora essere visibile nella console del server Puppet.

## Passaggio 9: Elimina il tuo server OpsWorks for Puppet Enterprise
<a name="opspup-migrate-ec2-delete-server"></a>

Puoi utilizzare la OpsWorks console o AWS CLI eliminare il tuo server OpsWorks for Puppet Enterprise.

**Per eliminare il server utilizzando la console OpsWorks **

1. Accedi a Console di gestione AWS e apri la OpsWorks console all'indirizzo [https://console.aws.amazon.com/opsworks/](https://console.aws.amazon.com/opsworks/).

1. Scegli i **server Puppet Enterprise** dal pannello di navigazione.

1. Nella pagina dei **server Puppet Enterprise**, scegli il server che desideri eliminare.

1. Da **Azioni**, scegli **Elimina server Puppet Enterprise**.

**Per eliminare il server utilizzando il AWS CLI**

Eseguire il seguente comando seguente.

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