Facultatif : utilisation AWS CodeCommit en tant que référentiel de contrôle à distance Puppet r10k - AWS OpsWorks

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Facultatif : utilisation AWS CodeCommit en tant que référentiel de contrôle à distance Puppet r10k

Important

Le AWS OpsWorks for Puppet Enterprise service a atteint sa fin de vie le 31 mars 2024 et a été désactivé pour les nouveaux clients et les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur AWS Re:Post ou via le AWS Support Premium.

Vous pouvez créer un nouveau référentiel en utilisant et AWS CodeCommit en tant que référentiel de contrôle à distance r10k. Pour effectuer les étapes décrites dans cette section et utiliser un CodeCommit référentiel, vous avez besoin d'un utilisateur disposant des autorisations fournies par la politique AWSCodeCommitReadOnlygérée.

Étape 1 : utilisation CodeCommit en tant que référentiel avec un type de connexion HTTPS

  1. Dans la CodeCommit console, créez un nouveau référentiel.

    Création d'un nouveau référentiel dans CodeCommit.
  2. Choisissez Ignorer pour ne pas configurer de rubrique Amazon SNS.

  3. Sur la page Code, choisissez Connectez-vous à votre référentiel.

  4. Sur la page Connectez-vous à votre référentiel, choisissez HTTPS comme Type de connexion et choisissez votre système d'exploitation.

    Création d'un nouveau référentiel dans CodeCommit.

    Dans la zoneÉtapes de clonage de votre référentiel, votre URL git clone doit se présenter sous la forme suivante : https://git-codecommit.region.amazonaws.com/v1/repos/control-repo. Copiez cette URL dans un endroit pratique, où vous pourrez facilement la retrouver pour configurer le serveur Puppet.

  5. Fermez la page Connect to your repository, puis revenez à la OpsWorks configuration du serveur Puppet Enterprise.

  6. Collez l'URL que vous avez copiée à l'étape 4 dans la zone r10k remote, sur la page Configure credentials (Configuration des informations d'identification) de l'assistant de configuration du serveur maître Puppet. Laissez la zone r10k private key (Clé privée r10k) vide. Finalisez la création et le lancement de votre serveur maître Puppet.

  7. Dans la console IAM, associez la AWSCodeCommitReadOnlypolitique au rôle de profil d'instance de votre Puppet Master. Pour plus d'informations sur la façon d'ajouter une politique d'autorisations à un rôle IAM, consultez la section Ajout d'autorisations d'identité IAM (console) dans le guide de l'utilisateur IAM.

  8. Suivez les étapes décrites dans la section Configuration pour les utilisateurs HTTPS à l'aide des informations d'identification Git du guide de AWS CodeCommit l'utilisateur pour transférer votre control-repo contenu existant vers le nouveau CodeCommit référentiel.

  9. Vous pouvez à présent poursuivre en suivant les instructions de la section Configurer le serveur maître Puppet à l'aide du Starter Kit et utiliser le Starter Kit pour déployer le code sur votre serveur maître Puppet. Voici un exemple de commande.

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

Étape 2 : (Facultatif) Utilisation CodeCommit en tant que référentiel avec un type de connexion SSH

Vous pouvez configurer un référentiel de contrôle à distance AWS CodeCommit r10k pour utiliser l'authentification par paire de clés SSH. Les prérequis suivants doivent être remplis avant de démarrer cette procédure.

  1. Au AWS CLI cours d'une session, exécutez la commande suivante pour télécharger le contenu du fichier de clé privée dans AWS Systems Manager Parameter Store. Votre serveur OpsWorks for Puppet Enterprise interroge ce paramètre pour obtenir le fichier de certificat requis. Remplacez fichier_clé_privée par le chemin d'accès vers votre fichier de clé privée SSH.

    aws ssm put-parameter --name puppet_user_pk --type String --value "`cat private_key_file`"
  2. Ajoutez les autorisations du magasin de paramètres de Systems Manager à votre Puppet Master.

    1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

    2. Dans le panneau de navigation de gauche, choisissez Rôles.

    3. Choisissez aws-opsworks-cm-ec2 rôles.

    4. Sous l'onglet Permissions (Autorisations), choisissez Attach policies (Attacher des politiques).

    5. Dans la barre Rechercher, saisissez AmazonSSMManagedInstanceCore.

    6. Dans les résultats de recherche, sélectionnez AmazonSSM ManagedInstanceCore.

    7. Choisissez Attach policy (Attacher une politique).

  3. Créez le fichier manifeste de configuration. Si vous utilisez le référentiel control-repo-example fourni dans le kit de démarrage, créez les fichiers suivants aux emplacements indiqués dans l'exemple de référentiel. Vous pouvez également les créer conformément à la structure de votre propre référentiel de contrôle. Remplacez la valeur IAM_USER_SSH_KEY par l'ID de clé SSH créé dans les prérequis pour cette procédure.

    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. Transférez votre référentiel de contrôle vers CodeCommit. Exécutez les commandes suivantes pour transférer le nouveau fichier manifeste vers votre référentiel.

    git add ./site/profile/manifests/codecommit.pp git commit -m 'Configuring for SSH connection to CodeCommit' git push origin production
  5. Déployez les fichiers manifestes. Exécutez les commandes suivantes pour déployer la configuration mise à jour sur votre serveur OpsWorks for Puppet Enterprise. Remplacez STARTER_KIT_DIRECTORY par le chemin d'accès à vos fichiers de configuration 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. Mettez à jour la classification du serveur OpsWorks for Puppet Enterprise. Par défaut, l'agent Puppet s'exécute sur les nœuds (y compris le maître) toutes les 30 minutes. Pour éviter les temps d'attente, vous pouvez exécuter manuellement l'agent sur le maître Puppet. L'exécution de l'agent récupère le nouveau fichier manifeste.

    1. Connectez-vous à la console Puppet Enterprise.

    2. Choisissez Classification.

    3. Développez PE Infrastructure.

    4. Choisissez PE Master.

    5. Dans l'onglet Configuration, saisissez profile::codecommit dans Add new class (Ajouter une nouvelle classe).

      La nouvelle classe, profile::codecommit, peut ne pas s'afficher immédiatement après l'exécution de puppet-code deploy. Choisissez Actualiser sur cette page si elle n'apparaît pas.

    6. Choisissez Add class (Ajouter une classe), puis choisissez Commit 1 change (Valider 1 changement).

    7. Exécutez manuellement l'agent Puppet sur le serveur OpsWorks for Puppet Enterprise. Choisissez Nodes (Nœuds), sélectionnez votre serveur dans la liste, choisissez Run Puppet (Exécuter Puppet), puis choisissez Run (Exécuter).

  7. Dans la console Puppet Enterprise, remplacez l'URL du référentiel pour utiliser le protocole SSH plutôt que HTTPS. La configuration que vous effectuez au cours de ces étapes est enregistrée OpsWorks pendant le processus de sauvegarde et de restauration de Puppet Enterprise. Il n'est donc pas nécessaire de modifier manuellement la configuration du référentiel après les activités de maintenance.

    1. Choisissez Classification.

    2. Développez PE Infrastructure.

    3. Choisissez PE Master.

    4. Dans l'onglet Configuration, trouvez la classe puppet_enterprise::profile::master.

    5. Choisissez Modifier en regard du paramètre r10k_remote.

    6. Remplacez l'URL HTTPS par l'URL SSH pour votre référentiel, puis choisissez Commit 1 change (Valider 1 changement).

    7. Exécutez manuellement l'agent Puppet sur le serveur OpsWorks for Puppet Enterprise. Choisissez Nodes (Nœuds), sélectionnez votre serveur dans la liste, choisissez Run Puppet (Exécuter Puppet), puis choisissez Run (Exécuter).