

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.

# Opcional: utilícelo AWS CodeCommit como repositorio de control remoto Puppet r10k
<a name="opspup-puppet-codecommit"></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 desactivado tanto para los clientes nuevos como para los actuales. 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). 

Puedes crear un repositorio nuevo usando AWS CodeCommit el r10k y usarlo como tu repositorio de control remoto. Para completar los pasos de esta sección y trabajar con un CodeCommit repositorio, necesita un usuario que tenga los permisos que proporciona la política **AWSCodeCommitReadOnly**gestionada.

**Topics**
+ [Paso 1: CodeCommit Utilízalo como repositorio con un tipo de conexión HTTPS](#codecommit-puppet-https)
+ [Paso 2: (opcional) CodeCommit Utilízalo como repositorio con un tipo de conexión SSH](#codecommit-puppet-ssh)

## Paso 1: CodeCommit Utilízalo como repositorio con un tipo de conexión HTTPS
<a name="codecommit-puppet-https"></a>



1. En la CodeCommit consola, cree un repositorio nuevo.  
![\[Creando un repositorio nuevo en CodeCommit.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/opspup_cc_remote.png)

1. Elija **Skip** para omitir la configuración de un tema de Amazon SNS.

1. En la página **Code (Código)**, elija **Connect to your repository (Conectar a su repositorio)**.

1. En la página **Connect to your repository (Conectar a su repositorio)**, elija **HTTPS** como **Connection type (Tipo de conexión)** y elija su sistema operativo.  
![\[Crear un nuevo repositorio en CodeCommit.\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/opspup_cc_connect.png)

   En el área **Steps to clone your repository (Pasos para clonar su repositorio)**, su URL `git clone` debe parecerse a lo siguiente: `https://git-codecommit.region.amazonaws.com/v1/repos/control-repo`. Copie esta URL en un lugar adecuado para su uso en la configuración del servidor de Puppet.

1. Cierre la página **Conectarse a su repositorio** y vuelva a la configuración del servidor OpsWorks de Puppet Enterprise.

1. Pegue la URL que copió en el Paso 4 en el cuadro de cadenas **r10k remote (r10k remoto)** en la página **Configure credentials (Configurar credenciales)** del asistente de configuración de nodo maestro de Puppet. Deje vacío el recuadro **r10k private key (clave privada de r10k)**. Finalizar la creación y lanzamiento del nodo maestro de Puppet.

1. En la consola de IAM, asocie la **AWSCodeCommitReadOnly**política al rol de perfil de instancia de su Puppet Master. Para obtener más información sobre cómo adjuntar una política a un rol de IAM, consulte [Adición de permisos de identidad de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) en la *Guía del usuario de IAM*.

1. Sigue los pasos de [Configuración para usuarios de HTTPS que usan credenciales de Git](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) en la *Guía del AWS CodeCommit usuario* para enviar tu `control-repo` contenido existente al nuevo CodeCommit repositorio.

1. Ahora, puede continuar siguiendo las instrucciones de [Configurar el nodo maestro de Puppet con el kit de inicio](opspup-starterkit.md)y utilizar el kit de inicio para implementar el código en su nodo maestro de Puppet. El siguiente comando es un ejemplo.

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

## Paso 2: (opcional) CodeCommit Utilízalo como repositorio con un tipo de conexión SSH
<a name="codecommit-puppet-ssh"></a>

Puede configurar un repositorio de control remoto AWS CodeCommit r10k para que utilice la autenticación de key pair SSH. Se deben completar los requisitos siguientes antes de comenzar este procedimiento.
+ Debe haber lanzado el servidor de Puppet Enterprise con un repositorio de control HTTPS, tal y como se describe en la sección anterior,. OpsWorks [Paso 1: CodeCommit Utilízalo como repositorio con un tipo de conexión HTTPS](#codecommit-puppet-https) Esto debe completarse primero para poder cargar la configuración requerida en el maestro de Puppet.
+ Asegúrese de tener un usuario con la política **AWSCodeCommitReadOnly**gestionada adjunta. Para obtener más información sobre cómo crear un usuario, consulte [Crear un usuario de IAM en su AWS cuenta en](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) la Guía del *usuario de IAM*.
+ Cree y asocie una clave SSH con su usuario de . Siga las instrucciones para crear un public/private key pair con `ssh-keygen` el [Paso 3: Configurar las credenciales en Linux, macOS o Unix](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html#setting-up-ssh-unixes-keys) de la *Guía del AWS CodeCommit usuario*.

1. En una AWS CLI sesión, ejecute el siguiente comando para cargar el contenido del archivo de clave privada en AWS Systems Manager Parameter Store. El servidor OpsWorks de Puppet Enterprise consulta este parámetro para obtener el archivo de certificado obligatorio. *private\$1key\$1file*Sustitúyalo por la ruta a tu archivo de clave privada SSH.

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

1. Añada permisos del Almacén de parámetros a su maestro de Puppet.

   1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. En el panel de navegación izquierdo, elija **Roles**.

   1. Elige **aws-opsworks-cm-ec2** funciones.

   1. En la pestaña **Permissions (Permisos)**, elija **Attach policies (Adjuntar políticas)**.

   1. En la barra **Search (Buscar)**, escriba **AmazonSSMManagedInstanceCore**.

   1. En los resultados de búsqueda, selecciona **Amazon SSMManaged InstanceCore**.

   1. Elija **Asociar política**.

1. Cree el manifiesto de archivo de configuración. Si utiliza el repositorio `control-repo-example` facilitado en el kit de inicio, cree los archivos siguientes en las ubicaciones mostradas en el repositorio de ejemplo. De lo contrario, créelos de acuerdo con su propia estructura de repositorio de control. Sustituya el *IAM\$1USER\$1SSH\$1KEY* valor por el identificador de clave SSH que creó en los requisitos previos de este procedimiento.

   ```
   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. Empuja tu repositorio de control a. CodeCommit Ejecute los siguientes comandos para insertar el nuevo archivo de manifiesto en su repositorio.

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

1. Implemente los archivos de manifiesto. Ejecute los siguientes comandos para implementar la configuración actualizada en su servidor OpsWorks de Puppet Enterprise. *STARTER\$1KIT\$1DIRECTORY*Sustitúyala por la ruta a los archivos de configuración de 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. Actualice la OpsWorks clasificación del servidor de Puppet Enterprise. De forma predeterminada, el agente de Puppet se ejecuta en nodos (incluido el maestro) cada 30 minutos. Para evitar la espera, puede ejecutar manualmente el agente en el nodo maestro de Puppet. La ejecución del agente recoge el nuevo archivo de manifiesto.

   1. Inicie sesión en la consola de Puppet Enterprise.

   1. Elija **Classification (Clasificación)**.

   1. Amplíe **PE Infrastructure (Infraestructura de PE)**.

   1. Elija **PE Master (Maestro de PE)**.

   1. En la pestaña **Configuration (Configuración)**, escriba **profile::codecommit** en **Add new class (Añadir nueva clase)**.

      La nueva clase, `profile::codecommit`, podría no aparecer inmediatamente después de ejecutar `puppet-code deploy`. Seleccione **Refresh (Actualizar)** en esta página si no aparece.

   1. Seleccione **Add class (Añadir clase)** y, a continuación, elija **Commit 1 change (Validar 1 cambio)**.

   1. Ejecute manualmente el agente de Puppet en el servidor OpsWorks de Puppet Enterprise. Seleccione **Nodes (Nodos)**, elija su servidor en la lista, elija **Run Puppet (Ejecutar Puppet)** y, a continuación, elija **Run (Ejecutar)**.

1. En la consola de Puppet Enterprise, cambie la URL del repositorio para utilizar SSH en lugar de HTTPS. La configuración que realice en estos pasos se guardará OpsWorks durante el proceso de copia de seguridad y restauración de Puppet Enterprise, por lo que no necesitará cambiar manualmente la configuración del repositorio tras las actividades de mantenimiento.

   1. Elija **Classification (Clasificación)**.

   1. Amplíe **PE Infrastructure (Infraestructura de PE)**.

   1. Elija **PE Master (Maestro de PE)**.

   1. En la pestaña **Configuration (Configuración)**, busque la clase `puppet_enterprise::profile::master`.

   1. Seleccione **Edit (Editar)** junto al parámetro `r10k_remote`.

   1. Reemplace la URL HTTPS por la URL SSH para su repositorio y, a continuación, seleccione **Commit 1 change (Validar 1 cambio)**.

   1. Ejecute manualmente el agente de Puppet en el servidor OpsWorks de Puppet Enterprise. Seleccione **Nodes (Nodos)**, elija su servidor en la lista, elija **Run Puppet (Ejecutar Puppet)** y, a continuación, elija **Run (Ejecutar)**.