

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cómo migrar un servidor OpsWorks de Puppet Enterprise a Amazon Elastic Compute Cloud (Amazon EC2)
<a name="opspup-migrate-ec2"></a>

**importante**  
El AWS OpsWorks for Puppet Enterprise servicio llegó al final de su vida útil el 31 de marzo de 2024 y se ha inhabilitado tanto para los clientes nuevos como para los existentes. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en [AWS Re:post](https://repost.aws/) o a través de Premium [AWS Support](https://aws.amazon.com/support). 

Las instrucciones siguientes describen cómo migrar los servidores de Puppet Enterprise existentes a Amazon EC2, en caso de que desee seguir utilizando Puppet Enterprise para sus necesidades de administración de la configuración fuera de. OpsWorks

**Topics**
+ [Paso 1: Póngase en contacto con Puppet para adquirir una licencia](#opspup-migrate-ec2-contact)
+ [Paso 2: Obtén detalles sobre tu servidor OpsWorks de Puppet Enterprise](#opspup-migrate-ec2-details)
+ [Paso 3: Realice una copia de seguridad de su servidor OpsWorks de Puppet Enterprise](#opspup-migrate-ec2-backup)
+ [Paso 4: lanza una nueva EC2 instancia](#opspup-migrate-ec2-launch)
+ [Paso 5: Instale Puppet Enterprise en la nueva instancia EC2](#opspup-migrate-ec2-install-puppet)
+ [Paso 6: Restaure la copia de seguridad en la nueva instancia EC2](#opspup-migrate-ec2-restore)
+ [Paso 7: Configurar la licencia de Puppet](#opspup-migrate-ec2-configure-license)
+ [Paso 8: Migre sus nodos](#opspup-migrate-ec2-nodes)
+ [Paso 9: Elimine su servidor OpsWorks de Puppet Enterprise](#opspup-migrate-ec2-delete-server)

## Paso 1: Póngase en contacto con Puppet para adquirir una licencia
<a name="opspup-migrate-ec2-contact"></a>

 Al migrar los servidores a EC2, la nueva instancia no viene con una licencia de Puppet. Para comprar una clave de licencia, siga las instrucciones del sitio web de [Puppet](https://www.puppet.com/docs/pe/2021.1/purchasing_and_installing_a_license_key.html).

## Paso 2: Obtén detalles sobre tu servidor OpsWorks de Puppet Enterprise
<a name="opspup-migrate-ec2-details"></a>

 Busque y guarde los valores de su servidor OpsWorks de Puppet Enterprise. 

1. Inicie sesión en la consola de Amazon S3 Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   Copia el nombre del bucket de Amazon S3 existente OpsWorks para tu servidor de Puppet Enterprise. El nombre del bucket tiene el formato `aws-opsworks-cm-server-name-random-string`.

1. Ejecute el **aws opsworks-cm describe-servers** comando para obtener la configuración de su servidor OpsWorks de Puppet Enterprise.

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

   Guarde los valores de `InstanceType`, `KeyPair`, `SubnetIds`, `SecurityGroupIds`, `InstanceProfileArn` y `Endpoint` de la respuesta.

1. Utilice SSH para conectarse al servidor existente OpsWorks de Puppet Enterprise. Puede usar el administrador de sesiones en la EC2 consola en lugar de SSH.

   Ejecute el comando siguiente.

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

   La respuesta proporciona la versión de Puppet Enterprise (por ejemplo, 2019.8.10). Guarde este valor.

Utilizará SSH o el administrador de sesiones para el siguiente paso.

## Paso 3: Realice una copia de seguridad de su servidor OpsWorks de Puppet Enterprise
<a name="opspup-migrate-ec2-backup"></a>

1.  Ejecute los siguientes comandos para realizar una copia de seguridad local. 

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

1.  Utilice el siguiente comando para almacenar el nombre de la copia de seguridad. 

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

1.  Ejecute el siguiente comando para cargar la copia de seguridad en un bucket de S3. *S3-Bucket*Sustitúyalo por el valor indicado en [Paso 2: Obtén detalles sobre tu servidor OpsWorks de Puppet Enterprise](#opspup-migrate-ec2-details) el paso 1. 

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

   Guarde los valores `PUPPET_BACKUP` y `S3_BUCKET`. Importará esos valores a la nueva EC2 instancia.

Puede salir de la sesión de SSH o del administrador de sesiones.

## Paso 4: lanza una nueva EC2 instancia
<a name="opspup-migrate-ec2-launch"></a>

[Lance una nueva EC2 instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html) desde la EC2 consola [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)con la misma configuración que el servidor OpsWorks de Puppet Enterprise.


| Nombre del parámetro | Valor | 
| --- | --- | 
|  **SO**  |  Amazon Linux 2  | 
|  **Tipo de instancia**  |  El `InstanceType` valor del paso 2 de [Paso 2: Obtén detalles sobre tu servidor OpsWorks de Puppet Enterprise](#opspup-migrate-ec2-details).   | 
|  **Nombre del par de claves**  |  El `KeyPair` valor del paso 2 de [Paso 2: Obtén detalles sobre tu servidor OpsWorks de Puppet Enterprise](#opspup-migrate-ec2-details).   | 
|  **VPC**  |  La VPC de `SubnetIds` del paso 2 de [Paso 2: Obtén detalles sobre tu servidor OpsWorks de Puppet Enterprise](#opspup-migrate-ec2-details).  | 
|  **Subred**  |  El `SubnetIds` del paso 2 de [Paso 2: Obtén detalles sobre tu servidor OpsWorks de Puppet Enterprise](#opspup-migrate-ec2-details).  | 
|  **Seleccione un nuevo grupo de seguridad existente** -> **Grupos de seguridad comunes**.   |  El `SecurityGroupIds` del paso 2 de [Paso 2: Obtén detalles sobre tu servidor OpsWorks de Puppet Enterprise](#opspup-migrate-ec2-details).  | 
|  **Almacenamiento**  |  120 GB como mínimo.  | 
|  **Perfil de instancia IAM**  |  El `InstanceProfileArn` del paso 2 de [Paso 2: Obtén detalles sobre tu servidor OpsWorks de Puppet Enterprise](#opspup-migrate-ec2-details).  | 

Si desea crear y adjuntar una Elastic IP a la nueva instancia, copie el ID de instancia de la nueva instancia y complete los pasos de [(Opcional) Paso 4.1: Crear y adjuntar una IP elástica](#opspup-migrate-ec2-elastic-ip).

### (Opcional) Paso 4.1: Crear y adjuntar una IP elástica
<a name="opspup-migrate-ec2-elastic-ip"></a>

Con una dirección IP elástica, puede enmascarar los errores de una instancia o software volviendo a mapear rápidamente la dirección a otra instancia de su cuenta.

**Para crear y asociar una dirección IP elástica**

1. Inicia sesión en la EC2 consola de Amazon Consola de administración de AWS y ábrela en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Elige **Elastic IPs**.

1. Elija **Asignar dirección IP elástica**.

1. En la página **Asignar dirección IP elástica** elija **Asignar**. Esto crea una IPv4 dirección pública.

1. Copia la ** IPv4 dirección asignada**.

1. Desde **Acciones**, elija **Liberar direcciones IP elásticas**.

1. Por **ejemplo**, introduzca el ID de instancia de la nueva instancia.

1. Elija **Asociar **.

## Paso 5: Instale Puppet Enterprise en la nueva instancia EC2
<a name="opspup-migrate-ec2-install-puppet"></a>

Usa SSH para conectarte a la nueva EC2 instancia. Puedes usar el administrador de sesiones en la EC2 consola en lugar 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
```

Puede mantener abierta la sesión de SSH o del administrador de sesiones para el siguiente paso.

## Paso 6: Restaure la copia de seguridad en la nueva instancia EC2
<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
```

Puedes acceder a la consola de Puppet de la EC2 instancia restaurada en https://*Public IPv4 of the instance*. Puedes encontrar el IPv4 DNS público en la página de detalles de la instancia en la EC2 consola. Las credenciales de inicio de sesión son las mismas que utiliza para acceder a su OpsWorks servidor de Puppet Enterprise.

Puede mantener abierta la sesión de SSH o del administrador de sesiones para el siguiente paso.

## Paso 7: Configurar la licencia de Puppet
<a name="opspup-migrate-ec2-configure-license"></a>

Siga los pasos del [sitio web de Puppet](https://www.puppet.com/docs/pe/2021.1/purchasing_and_installing_a_license_key.html#install_a_license_key) para configurar su licencia.

Puede mantener abierta la sesión de SSH o del administrador de sesiones para el siguiente paso.

## Paso 8: Migre sus nodos
<a name="opspup-migrate-ec2-nodes"></a>

Los servidores de Puppet Enterprise admiten dos tipos OpsWorks de dominios:
+ BYODC - Bring Your Own Domain and Certificate (traiga su propio dominio y certificado)
+ OpsWorks endpoint

### Fase 8.1: Para BYODC - Bring Your Own Domain and Certificate (traiga su propio dominio y certificado)
<a name="opspup-migrate-ec2-nodes-byodc"></a>

Para estos nodos, lo único que tienes que hacer es apuntar el dominio personalizado de tu proveedor de DNS al IPv4 DNS público o a la IPv4 dirección pública de la nueva EC2 instancia.

### Paso 8.2: Para el OpsWorks punto final
<a name="opspup-migrate-ec2-nodes-endpoint"></a>

Para un OpsWorks punto final, la documentación de Puppet recomienda [desinstalar](https://www.puppet.com/docs/pe/2019.8/uninstalling.html#uninstall_agents) el agente de Puppet en el nodo y, a continuación, [instalar](https://www.puppet.com/docs/pe/2019.8/installing_agents.html) el agente de Puppet mediante el servidor de Puppet Enterprise recién restaurado.

**nota**  
 Aunque Puppet no tiene un procedimiento automatizado para mover un nodo agente, hay algunos módulos que los miembros de la comunidad Puppet han publicado en el [sitio web Puppet Forge](https://forge.puppet.com/) para realizar la migración automatizada de nodos. Estos módulos incluyen el [https://forge.puppet.com/modules/coreymbe/pe_migrate/readme](https://forge.puppet.com/modules/coreymbe/pe_migrate/readme)módulo y un segundo módulo de [migración de un autor](https://forge.puppet.com/modules/ffalor/migrate) diferente. Los módulos del sitio web de Puppet Forge **no son compatibles con Puppet o**, a menos que se OpsWorks indique explícitamente en el módulo Forge. Recomendamos tener precaución con estos módulos y probarlos antes de utilizarlos ampliamente. 

Las siguientes secciones proporcionan los pasos para desinstalar y reinstalar agentes Puppet en instancias Linux.

**Topics**
+ [Paso 8.2.1: Copiar el desinstalador desde el servidor Puppet](#opspup-migrate-ec2-uninstall-copy)
+ [Paso 8.2.2: Descargue el desinstalador y ejecútelo en un nodo](#opspup-migrate-ec2-uninstall-download)
+ [Paso 8.2.3: Reinstalar el agente de Puppet en un nodo](#opspup-migrate-ec2-reinstall-agent)

#### Paso 8.2.1: Copiar el desinstalador desde el servidor Puppet
<a name="opspup-migrate-ec2-uninstall-copy"></a>

Antes de desinstalar el agente, asegúrese de que el perfil de instancia de IAM del nodo proporciona permisos de S3. ReadOnly 

Utilice el siguiente comando para copiar el desinstalador del servidor de Puppet al bucket de S3.

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

Tras ejecutar el comando, puede cerrar sesión en la sesión SSH o del administrador de sesiones del servidor Puppet.

#### Paso 8.2.2: Descargue el desinstalador y ejecútelo en un nodo
<a name="opspup-migrate-ec2-uninstall-download"></a>

Utilice SSH para conectarse con el nodo. Puedes usar el administrador de sesiones en la EC2 consola en lugar de SSH si el nodo es una EC2 instancia.

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

Puede mantener abierta la sesión de SSH o del administrador de sesiones para el siguiente paso.

#### Paso 8.2.3: Reinstalar el agente de Puppet en un nodo
<a name="opspup-migrate-ec2-reinstall-agent"></a>

Siga los pasos a continuación para volver a instalar el agente de Puppet en un nodo.

**Topics**
+ [Paso 8.2.3.1: Instale el agente de Puppet con la configuración correcta](#w2ab1b7c41c23b9c15b7)
+ [Paso 8.2.3.2: Acepte el certificado en la consola de Puppet](#w2ab1b7c41c23b9c15b9)
+ [Paso 8.2.3.3: Inserte el nodo en el servidor de Puppet Enterprise](#w2ab1b7c41c23b9c15c11)

##### Paso 8.2.3.1: Instale el agente de Puppet con la configuración correcta
<a name="w2ab1b7c41c23b9c15b7"></a>

Ejecute el siguiente comando para instalar el agente de Puppet.

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

Puede mantener su sesión SSH o Session Manager abierta para el paso 8.2.2.3.

##### Paso 8.2.3.2: Acepte el certificado en la consola de Puppet
<a name="w2ab1b7c41c23b9c15b9"></a>

1. Vaya a la consola del servidor de Puppet en `https://Public_IPv4_DNS`.

1. Seleccione **Certificados** y, a continuación, **Certificados sin firmar**.

1. Seleccione **Aceptar** para firmar el certificado del agente de Puppet.

##### Paso 8.2.3.3: Inserte el nodo en el servidor de Puppet Enterprise
<a name="w2ab1b7c41c23b9c15c11"></a>

Ejecute el siguiente comando en el nodo para registrarlo en el servidor.

```
puppet agent -t
```

El nodo ahora debería estar visible en la consola del servidor Puppet.

## Paso 9: Elimine su servidor OpsWorks de Puppet Enterprise
<a name="opspup-migrate-ec2-delete-server"></a>

Puedes usar la OpsWorks consola o AWS CLI eliminar tu OpsWorks servidor de Puppet Enterprise.

**Para eliminar el servidor mediante la consola OpsWorks **

1. Inicie sesión en Consola de administración de AWS y abra la OpsWorks consola en [https://console.aws.amazon.com/opsworks/](https://console.aws.amazon.com/opsworks/).

1. En el panel de navegación, elija **Servidores de Puppet Enterprise**.

1. En la página **Servidores de Puppet Enterprise**, elija el servidor del que desea realizar una copia de seguridad.

1. En **Acciones**, elija **Eliminar servidor de Puppet Enterprise**.

**Para eliminar el servidor mediante el AWS CLI**

Ejecute el comando siguiente.

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