

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como migrar um servidor OpsWorks for Puppet Enterprise para o Amazon Elastic Compute Cloud (Amazon) EC2
<a name="opspup-migrate-ec2"></a>

**Importante**  
O AWS OpsWorks for Puppet Enterprise serviço chegou ao fim da vida útil em 31 de março de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support). 

As instruções abaixo descrevem como migrar os servidores existentes do Puppet Enterprise para a Amazon EC2, caso você queira continuar usando o Puppet Enterprise para suas necessidades de gerenciamento de configuração fora da. OpsWorks

**Topics**
+ [Etapa 1: entre em contato com o Puppet para comprar uma licença](#opspup-migrate-ec2-contact)
+ [Etapa 2: Obtenha detalhes sobre seu servidor OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details)
+ [Etapa 3: Faça um backup do seu servidor OpsWorks para o Puppet Enterprise](#opspup-migrate-ec2-backup)
+ [Etapa 4: iniciar uma nova EC2 instância](#opspup-migrate-ec2-launch)
+ [Etapa 5: instalar o Puppet Enterprise na nova instância EC2](#opspup-migrate-ec2-install-puppet)
+ [Etapa 6: restaurar o backup na nova EC2 instância](#opspup-migrate-ec2-restore)
+ [Etapa 7: configurar sua licença do Puppet](#opspup-migrate-ec2-configure-license)
+ [Etapa 8: migrar seus nós](#opspup-migrate-ec2-nodes)
+ [Etapa 9: Exclua seu servidor OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-delete-server)

## Etapa 1: entre em contato com o Puppet para comprar uma licença
<a name="opspup-migrate-ec2-contact"></a>

 Quando você migra seus servidores para EC2, a nova instância não vem com uma licença do Puppet. Para comprar uma chave de licença, siga as instruções no [site do Puppet](https://www.puppet.com/docs/pe/2021.1/purchasing_and_installing_a_license_key.html).

## Etapa 2: Obtenha detalhes sobre seu servidor OpsWorks for Puppet Enterprise
<a name="opspup-migrate-ec2-details"></a>

 Encontre e salve os valores do seu servidor OpsWorks para o Puppet Enterprise. 

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

   Copie o nome do bucket Amazon S3 existente para o seu servidor OpsWorks para o Puppet Enterprise. O nome do bucket tem o formato: `aws-opsworks-cm-server-name-random-string`

1. Execute o **aws opsworks-cm describe-servers** comando para obter a configuração do seu servidor OpsWorks para o Puppet Enterprise.

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

   Armazene os valores para `InstanceType`, `KeyPair`, `SubnetIds`,`SecurityGroupIds`, `InstanceProfileArn`, e `Endpoint` da resposta.

1. Use SSH para se conectar ao servidor existente OpsWorks do Puppet Enterprise. Você pode usar o Gerenciador de Sessões no EC2 console em vez do SSH.

   Execute o comando a seguir.

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

   A resposta fornece a versão do Puppet Enterprise (por exemplo, 2019.8.10). Armazene esse valor.

Você usará o SSH ou o Gerenciador de sessões na próxima etapa.

## Etapa 3: Faça um backup do seu servidor OpsWorks para o Puppet Enterprise
<a name="opspup-migrate-ec2-backup"></a>

1.  Execute os comandos a seguir para fazer um backup local. 

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

1.  Execute o comando a seguir para armazenar o nome do backup. 

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

1.  Execute o comando a seguir para fazer upload do seu backup em um bucket S3. *S3-Bucket*Substitua pelo valor da etapa 1 em[Etapa 2: Obtenha detalhes sobre seu servidor OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details). 

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

   Armazene os valores `PUPPET_BACKUP` e `S3_BUCKET`. Você importará esses valores para a nova EC2 instância.

Você pode sair da sessão SSH ou do Gerenciador de sessões.

## Etapa 4: iniciar uma nova EC2 instância
<a name="opspup-migrate-ec2-launch"></a>

[Execute uma nova EC2 instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html) a partir do EC2 console [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)usando a mesma configuração do servidor do OpsWorks Puppet Enterprise.


| Nome do parâmetro | Valor | 
| --- | --- | 
|  **SO**  |  Amazon Linux 2  | 
|  **Tipo de instância**  |  O valor `InstanceType` da etapa 2 do [Etapa 2: Obtenha detalhes sobre seu servidor OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details).   | 
|  **Key pair name (Nome do par de chaves)**  |  O valor `KeyPair` da etapa 2 do [Etapa 2: Obtenha detalhes sobre seu servidor OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details).   | 
|  **VPC**  |  O VPC da etapa 2 `SubnetIds` do [Etapa 2: Obtenha detalhes sobre seu servidor OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details).  | 
|  **Sub-rede**  |  O `SubnetIds` da etapa 2 do [Etapa 2: Obtenha detalhes sobre seu servidor OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details).  | 
|  **Selecione um grupo de segurança existente** -> **Grupos de segurança comuns**   |  O `SecurityGroupIds` da etapa 2 do [Etapa 2: Obtenha detalhes sobre seu servidor OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details).  | 
|  **Armazenamento**  |  Pelo menos 120 GB.  | 
|  **Perfil de instância do IAM**  |  O `InstanceProfileArn` da etapa 2 do [Etapa 2: Obtenha detalhes sobre seu servidor OpsWorks for Puppet Enterprise](#opspup-migrate-ec2-details).  | 

Se você quiser criar e anexar um IP elástico à nova instância, copie o ID da instância da nova instância e conclua as etapas em [(Opcional) Etapa 4.1: criar e anexar um IP elástico](#opspup-migrate-ec2-elastic-ip).

### (Opcional) Etapa 4.1: criar e anexar um IP elástico
<a name="opspup-migrate-ec2-elastic-ip"></a>

Com um endereço IP elástico, é possível mascarar a falha de uma instância ou software remapeando rapidamente o endereço para outra instância na conta.

**Como criar e associar um endereço IP elástico**

1. Faça login no Console de gerenciamento da AWS e abra o EC2 console da Amazon em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Escolha **Elastic IPs**.

1. Escolha **Alocar endereço IP elástico**.

1. Na página **Alocar endereço IP elástico**, escolha **Alocar**. Isso cria um IPv4 endereço público.

1. Copie o ** IPv4 endereço alocado**.

1. Em **Ações**, escolha **Associar endereços IP elásticos**.

1. Em **Instância**, insira o ID da instância nova.

1. Selecione **Associar **.

## Etapa 5: instalar o Puppet Enterprise na nova instância EC2
<a name="opspup-migrate-ec2-install-puppet"></a>

Use SSH para se conectar à nova EC2 instância. Você pode usar o Gerenciador de Sessões no EC2 console em vez do 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
```

Você pode manter sua sessão SSH ou Gerenciador de sessão abertos para a próxima etapa.

## Etapa 6: restaurar o backup na nova EC2 instância
<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
```

Você pode acessar o console do Puppet para a EC2 instância restaurada em https://*Public IPv4 of the instance*. Você pode encontrar o IPv4 DNS público na página de detalhes da instância no EC2 console. As credenciais de login são as mesmas que você usa para acessar seu OpsWorks servidor do Puppet Enterprise.

Você pode manter sua sessão SSH ou Gerenciador de sessão abertos para a próxima etapa.

## Etapa 7: configurar sua licença do Puppet
<a name="opspup-migrate-ec2-configure-license"></a>

Siga as etapas no [site do Puppet](https://www.puppet.com/docs/pe/2021.1/purchasing_and_installing_a_license_key.html#install_a_license_key) para configurar sua licença.

Você pode manter sua sessão SSH ou Gerenciador de sessão abertos para a próxima etapa.

## Etapa 8: migrar seus nós
<a name="opspup-migrate-ec2-nodes"></a>

Há dois tipos de domínios suportados pelos servidores do OpsWorks Puppet Enterprise:
+ BYODC (traga seu próprio domínio e certificado)
+ OpsWorks endpoint

### Etapa 8.1: para BYODC (traga seu próprio domínio e certificado)
<a name="opspup-migrate-ec2-nodes-byodc"></a>

Para esses nós, tudo o que você precisa fazer é apontar o domínio personalizado em seu provedor de DNS para o IPv4 DNS público ou IPv4 endereço público da nova EC2 instância.

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

Para um OpsWorks endpoint, a documentação do Puppet recomenda [desinstalar](https://www.puppet.com/docs/pe/2019.8/uninstalling.html#uninstall_agents) o agente Puppet no nó e depois [instalar](https://www.puppet.com/docs/pe/2019.8/installing_agents.html) o agente Puppet usando o servidor Puppet Enterprise recém-restaurado.

**nota**  
 Embora o Puppet não tenha um procedimento automatizado para mover um nó de agente, há alguns módulos que os membros da comunidade do Puppet publicaram no [site do Puppet Forge](https://forge.puppet.com/) para realizar a migração automatizada de nós. Esses módulos incluem o módulo [https://forge.puppet.com/modules/coreymbe/pe_migrate/readme](https://forge.puppet.com/modules/coreymbe/pe_migrate/readme) e um segundo [módulo de migração](https://forge.puppet.com/modules/ffalor/migrate) de um autor diferente. Os módulos no site do Puppet Forge **não são suportados pelo Puppet ou** a OpsWorks menos que estejam explicitamente indicados no módulo Forge. Recomendamos ter cuidado com esses módulos e testá-los antes de usá-los amplamente. 

As seções a seguir fornecem as etapas para desinstalar e reinstalar agentes do Puppet em instâncias Linux.

**Topics**
+ [Etapa 8.2.1: copie o desinstalador do servidor Puppet](#opspup-migrate-ec2-uninstall-copy)
+ [Etapa 8.2.2: baixe o desinstalador e execute-o em um nó](#opspup-migrate-ec2-uninstall-download)
+ [Etapa 8.2.3: reinstalar o agente Puppet em um nó](#opspup-migrate-ec2-reinstall-agent)

#### Etapa 8.2.1: copie o desinstalador do servidor Puppet
<a name="opspup-migrate-ec2-uninstall-copy"></a>

Antes de desinstalar o agente, certifique-se de que o perfil da instância do IAM do nó forneça ReadOnly permissões do S3.

Execute o comando a seguir para copiar o desinstalador do servidor do Puppet para o bucket do S3.

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

Depois de executar o comando, você pode sair da sessão SSH ou do Gerenciador de sessões do servidor Puppet.

#### Etapa 8.2.2: baixe o desinstalador e execute-o em um nó
<a name="opspup-migrate-ec2-uninstall-download"></a>

Use o SSH para conectar ao nó. Você pode usar o Gerenciador de Sessões no EC2 console em vez do SSH se o nó for uma EC2 instância.

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

Você pode manter sua sessão SSH ou Gerenciador de sessão abertos para a próxima etapa.

#### Etapa 8.2.3: reinstalar o agente Puppet em um nó
<a name="opspup-migrate-ec2-reinstall-agent"></a>

Conclua as etapas a seguir para reinstalar o agente do Puppet em um nó.

**Topics**
+ [Etapa 8.2.3.1: instalar o agente Puppet com a configuração correta](#w2ab1b7c41c23b9c15b7)
+ [Etapa 8.2.3.2: aceitar o certificado no console do Puppet](#w2ab1b7c41c23b9c15b9)
+ [Etapa 8.2.3.3: verifique o nó no servidor Puppet Enterprise](#w2ab1b7c41c23b9c15c11)

##### Etapa 8.2.3.1: instalar o agente Puppet com a configuração correta
<a name="w2ab1b7c41c23b9c15b7"></a>

Execute o seguinte comando para instalar o agente do Puppet.

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

Você pode manter sua sessão SSH ou Gerenciador de sessão abertos para a etapa 8.2.2.3.

##### Etapa 8.2.3.2: aceitar o certificado no console do Puppet
<a name="w2ab1b7c41c23b9c15b9"></a>

1. Acesse o console do servidor Puppet em `https://Public_IPv4_DNS`.

1. Escolha **Certificados** e, em seguida, **Certificados não assinados**.

1. Escolha **Aceitar** para assinar o certificado do agente do Puppet.

##### Etapa 8.2.3.3: verifique o nó no servidor Puppet Enterprise
<a name="w2ab1b7c41c23b9c15c11"></a>

Execute o comando a seguir no nó para verificá-lo no servidor.

```
puppet agent -t
```

O nó agora deve estar visível no console do servidor Puppet.

## Etapa 9: Exclua seu servidor OpsWorks for Puppet Enterprise
<a name="opspup-migrate-ec2-delete-server"></a>

Você pode usar o OpsWorks console ou AWS CLI excluir seu OpsWorks servidor do Puppet Enterprise.

**Para excluir seu servidor usando o OpsWorks console**

1. Faça login no Console de gerenciamento da AWS e abra o OpsWorks console em [https://console.aws.amazon.com/opsworks/](https://console.aws.amazon.com/opsworks/).

1. No painel de navegação, escolha **Servidores Puppet Enterprise**.

1. Na página **Servidores Puppet Enterprise**, selecione o servidor que você deseja excluir.

1. Em **Ações**, selecione **Excluir servidor Puppet Enterprise**.

**Para excluir seu servidor usando o AWS CLI**

Execute o comando a seguir.

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