

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á.

# Opcional: Use AWS CodeCommit como um repositório de controle remoto do Puppet r10k
<a name="opspup-puppet-codecommit"></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). 

Você pode criar um novo repositório usando AWS CodeCommit e usá-lo como seu repositório de controle remoto r10k. Para concluir as etapas desta seção e trabalhar com um CodeCommit repositório, você precisa de um usuário que tenha as permissões fornecidas pela política **AWSCodeCommitReadOnly**gerenciada.

**Topics**
+ [Etapa 1: Usar CodeCommit como um repositório com um tipo de conexão HTTPS](#codecommit-puppet-https)
+ [Etapa 2: (Opcional) Usar CodeCommit como repositório com um tipo de conexão SSH](#codecommit-puppet-ssh)

## Etapa 1: Usar CodeCommit como um repositório com um tipo de conexão HTTPS
<a name="codecommit-puppet-https"></a>



1. No CodeCommit console, crie um novo repositório.  
![\[Criando um novo repositório em CodeCommit.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/opspup_cc_remote.png)

1. Escolha **Skip** para ignorar a configuração de um tópico do Amazon SNS.

1. Na página **Code**, escolha **Connect to your repository**.

1. Na página **Connect to your repository**, escolha **HTTPS** como o **Connection type** e selecione seu sistema operacional.  
![\[Criando um novo repositório no CodeCommit.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/opspup_cc_connect.png)

   Na área **Steps to clone your repository (Etapas para clonar seu repositório)**, seu `git clone` URL deverá se parecer com o seguinte: `https://git-codecommit.region.amazonaws.com/v1/repos/control-repo`. Copie esse URL para um local conveniente para uso na configuração do servidor Puppet.

1. Feche a página **Conectar-se ao seu repositório** e retorne à configuração do OpsWorks servidor do Puppet Enterprise.

1. Cole o URL que você copiou na Etapa 4 na caixa de strings **r10k remote** na página **Configure credentials** do assistente de configuração do Puppet master. Deixe a caixa **r10k private key** vazia. Conclua a criação e a inicialização do Puppet master.

1. No console do IAM, anexe a **AWSCodeCommitReadOnly**política à função de perfil da instância do seu mestre do Puppet. Para obter mais informações sobre como acrescentar uma política de permissões a um perfil do IAM, consulte [Adicionar permissões de identidade do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) no *Guia do usuário do IAM*.

1. Siga as etapas em [Configuração para usuários HTTPS usando credenciais do Git](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) no *Guia do AWS CodeCommit usuário* para enviar seu `control-repo` conteúdo existente para o novo repositório. CodeCommit 

1. Agora, você pode continuar seguindo as instruções no [Configurar o Puppet master usando o Starter Kit](opspup-starterkit.md), e usar o Starter Kit para implantar o código para o Puppet master. O comando a seguir é um exemplo.

   ```
   puppet-code deploy --all --wait --config-file .config/puppet-code.conf
   ```

## Etapa 2: (Opcional) Usar CodeCommit como repositório com um tipo de conexão SSH
<a name="codecommit-puppet-ssh"></a>

Você pode configurar um repositório de controle remoto AWS CodeCommit r10k para usar a autenticação de key pair SSH. Os pré-requisitos a seguir devem ser concluídos antes de iniciar esse procedimento.
+ Você deve ter iniciado seu servidor OpsWorks for Puppet Enterprise com um repositório de controle HTTPS, conforme descrito na seção anterior,. [Etapa 1: Usar CodeCommit como um repositório com um tipo de conexão HTTPS](#codecommit-puppet-https) Isso deve ser concluído primeiro para que você possa fazer upload da configuração necessária para o Puppet master.
+ Verifique se você tem um usuário com a política **AWSCodeCommitReadOnly**gerenciada anexada. Para obter mais informações sobre como criar um usuário, consulte Como [criar um usuário do IAM em sua AWS conta](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) no *Guia do usuário do IAM*.
+ Crie e associe uma chave SSH ao usuário do . *Siga as instruções para criar um par de public/private chaves `ssh-keygen` na [Etapa 3: Configurar credenciais no Linux, macOS ou](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html#setting-up-ssh-unixes-keys) Unix no AWS CodeCommit Guia do Usuário.*

1. Em uma AWS CLI sessão, execute o comando a seguir para carregar o conteúdo do arquivo de chave privada no AWS Systems Manager Parameter Store. Seu servidor OpsWorks for Puppet Enterprise consulta esse parâmetro para obter um arquivo de certificado necessário. *private\$1key\$1file*Substitua pelo caminho para seu arquivo de chave privada SSH.

   ```
   aws ssm put-parameter --name puppet_user_pk --type String --value "`cat private_key_file`"
   ```

1. Adicione permissões do Parameter Store do Systems Manager para o Puppet master.

   1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. No painel de navegação à esquerda, selecione **Perfis**.

   1. Escolha **aws-opsworks-cm-ec2 funções**.

   1. Na guia **Permissions (Permissões)**, escolha **Attach policies (Anexar políticas)**.

   1. Na barra **Search (Buscar)**, insira **AmazonSSMManagedInstanceCore**.

   1. Nos resultados da pesquisa, escolha **Amazon SSMManaged InstanceCore**.

   1. Escolha **Anexar política**.

1. Crie o manifesto do arquivo de configuração. Se você estiver usando o repositório `control-repo-example` fornecido no kit de inicialização, crie os arquivos a seguir nos locais mostrados no repositório de exemplo. Caso contrário, crie-os de acordo com sua própria estrutura do repositório de controle. Substitua o *IAM\$1USER\$1SSH\$1KEY* valor pelo ID da chave SSH que você criou nos pré-requisitos desse procedimento.

   ```
   control-repo-example/site/profile/manifests/codecommit.pp
   ```

   ```
   class profile::codecommit {
     $configfile = @(CONFIGFILE)
         Host git-codecommit.*.amazonaws.com
         User IAM_USER_SSH_KEY
         IdentityFile /etc/puppetlabs/puppetserver/ssh/codecommit.rsa
         StrictHostKeyChecking=no
         | CONFIGFILE
   
     # Replace REGION with the correct region for your server.
     $command = @(COMMAND)
         aws ssm get-parameters \
         --region REGION \
         --names puppet_user_pk \
         --query "Parameters[0].Value" \
         --output text >| /etc/puppetlabs/puppetserver/ssh/codecommit.rsa
         | COMMAND
   
     $dirs = [
               '/opt/puppetlabs/server/data/puppetserver/.ssh',
               '/etc/puppetlabs/puppetserver/ssh',
             ]
   
     file { $dirs:
       ensure => 'directory',
       group  => 'pe-puppet',
       owner  => 'pe-puppet',
       mode   => '0750',
     }
   
     file { 'ssh-config':
       path    => '/opt/puppetlabs/server/data/puppetserver/.ssh/config',
       require => File[$dirs],
       content => $configfile,
       group   => 'pe-puppet',
       owner   => 'pe-puppet',
       mode    => '0600',
     }
   
     exec { 'download-codecommit-certificate':
       command => $command,
       require => File[$dirs],
       creates => '/etc/puppetlabs/puppetserver/ssh/codecommit.rsa',
       path    => '/bin',
       cwd     => '/etc/puppetlabs',
     }
   
     file { 'private-key-permissions':
       subscribe => Exec['download-codecommit-certificate'],
       path      => '/etc/puppetlabs/puppetserver/ssh/codecommit.rsa',
       group     => 'pe-puppet',
       owner     => 'pe-puppet',
       mode      => '0600',
     }
   }
   ```

1. Envie seu repositório de controle para o. CodeCommit Execute os comandos a seguir para enviar o novo arquivo manifesto para o seu repositório.

   ```
   git add ./site/profile/manifests/codecommit.pp
   git commit -m 'Configuring for SSH connection to CodeCommit'
   git push origin production
   ```

1. Implante os arquivos manifesto. Execute os comandos a seguir para implantar a configuração atualizada no seu OpsWorks servidor do Puppet Enterprise. *STARTER\$1KIT\$1DIRECTORY*Substitua pelo caminho para seus arquivos de configuração do Puppet.

   ```
   cd STARTER_KIT_DIRECTORY
   
   puppet-access login --config-file .config/puppetlabs/client-tools/puppet-access.conf
   
   puppet-code deploy --all --wait \
   --config-file .config/puppet-code.conf \
   --token-file .config/puppetlabs/token
   ```

1. Atualize OpsWorks a classificação do servidor do Puppet Enterprise. Por padrão, o agente do Puppet é executado em nós (incluindo o principal) a cada 30 minutos. Para evitar espera, você pode executar manualmente o agente no Puppet master. Executar o agente seleciona o novo arquivo manifesto.

   1. Faça login no console do Puppet Enterprise.

   1. Selecione **Classification (Classificação)**.

   1. Expanda **PE Infrastructure (Infraestrutura do PE)**.

   1. Selecione **PE Master**.

   1. Na guia **Configuration (Configuração)**, insira **profile::codecommit** em **Add new class (Adicionar nova classe)**.

      A nova classe, `profile::codecommit`, pode não aparecer imediatamente após a execução de `puppet-code deploy`. Selecione **Refresh (Atualizar)** nesta página, se ela não for exibida.

   1. Selecione **Add class (Adicionar classe)** e selecione **Commit 1 change (Confirmar 1 alteração)**.

   1. Execute manualmente o agente Puppet no servidor OpsWorks for Puppet Enterprise. Selecione **Nodes (Nós)**, escolha seu servidor na lista, selecione **Run Puppet (Executar Puppet)** e selecione **Run (Executar)**.

1. No console do Puppet Enterprise, altere o URL do repositório para usar SSH em vez de HTTPS. A configuração que você executa nessas etapas é salva OpsWorks durante o processo de backup e restauração do Puppet Enterprise, portanto, você não precisa alterar manualmente a configuração do repositório após as atividades de manutenção.

   1. Selecione **Classification (Classificação)**.

   1. Expanda **PE Infrastructure (Infraestrutura do PE)**.

   1. Selecione **PE Master**.

   1. Na guia **Configuration (Configuração)**, localize a classe `puppet_enterprise::profile::master`.

   1. Selecione **Edit (Editar)** ao lado do parâmetro `r10k_remote`.

   1. Substitua o URL de HTTPS pelo URL de SSH para o seu repositório e selecione **Commit 1 change (Confirmar 1 alteração)**.

   1. Execute manualmente o agente Puppet no servidor OpsWorks for Puppet Enterprise. Selecione **Nodes (Nós)**, escolha seu servidor na lista, selecione **Run Puppet (Executar Puppet)** e selecione **Run (Executar)**.