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
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.
Rubriques
Étape 1 : utilisation CodeCommit en tant que référentiel avec un type de connexion HTTPS
-
Dans la CodeCommit console, créez un nouveau référentiel.
-
Choisissez Ignorer pour ne pas configurer de rubrique Amazon SNS.
-
Sur la page Code, choisissez Connectez-vous à votre référentiel.
-
Sur la page Connectez-vous à votre référentiel, choisissez HTTPS comme Type de connexion et choisissez votre système d'exploitation.
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.
. Copiez cette URL dans un endroit pratique, où vous pourrez facilement la retrouver pour configurer le serveur Puppet.region
.amazonaws.com/v1/repos/control-repo -
Fermez la page Connect to your repository, puis revenez à la OpsWorks configuration du serveur Puppet Enterprise.
-
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.
-
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.
-
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. -
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.
-
Vous devez avoir lancé votre serveur OpsWorks pour Puppet Enterprise avec un référentiel de contrôle HTTPS, Étape 1 : utilisation CodeCommit en tant que référentiel avec un type de connexion HTTPS comme décrit dans la section précédente. Ceci doit être effectué en premier afin de pouvoir charger la configuration requise dans le maître Puppet.
-
Assurez-vous que la politique AWSCodeCommitReadOnlygérée est attachée à un utilisateur. Pour plus d'informations sur la création d'un utilisateur, consultez la section Création d'un utilisateur IAM dans votre AWS compte dans le guide de l'utilisateur IAM.
-
Créez et associez une clé SSH avec votre utilisateur . Suivez les instructions pour créer une paire de clés publique/privée
ssh-keygen
à l'étape 3 : Configurer les informations d'identification sous Linux, macOS ou Unix dans le guide de l'AWS CodeCommit utilisateur.
-
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
`" -
Ajoutez les autorisations du magasin de paramètres de Systems Manager à votre Puppet Master.
Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/
. -
Dans le panneau de navigation de gauche, choisissez Rôles.
-
Choisissez aws-opsworks-cm-ec2 rôles.
-
Sous l'onglet Permissions (Autorisations), choisissez Attach policies (Attacher des politiques).
-
Dans la barre Rechercher, saisissez
AmazonSSMManagedInstanceCore
. -
Dans les résultats de recherche, sélectionnez AmazonSSM ManagedInstanceCore.
-
Choisissez Attach policy (Attacher une politique).
-
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 valeurIAM_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 # ReplaceREGION
with the correct region for your server. $command = @(COMMAND) aws ssm get-parameters \ --regionREGION
\ --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', } } -
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
-
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 -
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.
-
Connectez-vous à la console Puppet Enterprise.
-
Choisissez Classification.
-
Développez PE Infrastructure.
-
Choisissez PE Master.
-
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 depuppet-code deploy
. Choisissez Actualiser sur cette page si elle n'apparaît pas. -
Choisissez Add class (Ajouter une classe), puis choisissez Commit 1 change (Valider 1 changement).
-
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).
-
-
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.
-
Choisissez Classification.
-
Développez PE Infrastructure.
-
Choisissez PE Master.
-
Dans l'onglet Configuration, trouvez la classe
puppet_enterprise::profile::master
. -
Choisissez Modifier en regard du paramètre
r10k_remote
. -
Remplacez l'URL HTTPS par l'URL SSH pour votre référentiel, puis choisissez Commit 1 change (Valider 1 changement).
-
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).
-