Opcional: utilícelo AWS CodeCommit como repositorio de control remoto Puppet r10k - AWS OpsWorks

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

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 o a través de Premium AWS 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 AWSCodeCommitReadOnlygestionada.

Paso 1: CodeCommit Utilízalo como repositorio con un tipo de conexión HTTPS

  1. En la CodeCommit consola, cree un repositorio nuevo.

    Creando un repositorio nuevo en CodeCommit.
  2. Elija Skip para omitir la configuración de un tema de Amazon SNS.

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

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

    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.

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

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

  7. En la consola de IAM, asocie la AWSCodeCommitReadOnlypolí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) en la Guía del usuario de IAM.

  8. Sigue los pasos de Configuración para usuarios de HTTPS que utilizan credenciales de Git en la Guía del AWS CodeCommit usuario para enviar tu control-repo contenido existente al nuevo CodeCommit repositorio.

  9. Ahora, puede continuar siguiendo las instrucciones de Configurar el nodo maestro de Puppet con el kit de inicioy 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

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.

  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. Reemplace private_key_file por la ruta a su archivo de clave privada SSH.

    aws ssm put-parameter --name puppet_user_pk --type String --value "`cat private_key_file`"
  2. 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/.

    2. En el panel de navegación izquierdo, seleccione Roles.

    3. Elija aws-opsworks-cm-ec2 funciones.

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

    5. En la barra Search (Buscar), escriba AmazonSSMManagedInstanceCore.

    6. En los resultados de búsqueda, elija ManagedInstanceCoreAmazonSSM.

    7. Elija Asociar política.

  3. 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. Reemplace el valor IAM_USER_SSH_KEY por el ID de clave SSH que creó en los requisitos previos para 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', } }
  4. Empuje su 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
  5. Implemente los archivos de manifiesto. Ejecute los siguientes comandos para implementar la configuración actualizada en su servidor OpsWorks de Puppet Enterprise. Reemplace STARTER_KIT_DIRECTORY por la ruta a sus 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
  6. Actualice la OpsWorks clasificación del servidor 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.

    2. Elija Classification (Clasificación).

    3. Amplíe PE Infrastructure (Infraestructura de PE).

    4. Elija PE Master (Maestro de PE).

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

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

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

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

    2. Amplíe PE Infrastructure (Infraestructura de PE).

    3. Elija PE Master (Maestro de PE).

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

    5. Seleccione Edit (Editar) junto al parámetro r10k_remote.

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

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