

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Optional: AWS CodeCommit Als Puppet R10k Remote Control Repository verwenden
<a name="opspup-puppet-codecommit"></a>

**Wichtig**  
Der AWS OpsWorks for Puppet Enterprise Dienst hat am 31. März 2024 das Ende seiner Lebensdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an das AWS Support Team auf [AWS re:POST](https://repost.aws/) oder über den [AWS Premium-Support](https://aws.amazon.com/support). 

Sie können ein neues Repository erstellen AWS CodeCommit, indem Sie es verwenden und es als Ihr R10k-Fernsteuerungs-Repository verwenden. Um die Schritte in diesem Abschnitt ausführen und mit einem CodeCommit Repository arbeiten zu können, benötigen Sie einen Benutzer, der über die in der **AWSCodeCommitReadOnly**verwalteten Richtlinie vorgesehenen Berechtigungen verfügt.

**Topics**
+ [Schritt 1: CodeCommit Als Repository mit einem HTTPS-Verbindungstyp verwenden](#codecommit-puppet-https)
+ [Schritt 2: (Optional) CodeCommit Als Repository mit einem SSH-Verbindungstyp verwenden](#codecommit-puppet-ssh)

## Schritt 1: CodeCommit Als Repository mit einem HTTPS-Verbindungstyp verwenden
<a name="codecommit-puppet-https"></a>



1. Erstellen Sie in der CodeCommit Konsole ein neues Repository.  
![\[Neues Repository wird erstellt in CodeCommit.\]](http://docs.aws.amazon.com/de_de/opsworks/latest/userguide/images/opspup_cc_remote.png)

1. Wählen Sie **Überspringen**, um die Einrichtung eines Amazon SNS SNS-Themas zu überspringen.

1. Wählen Sie auf der Seite **Code** die Option **Connect to your repository (Mit Repository verbinden)** aus.

1. Wählen Sie auf der Seite **Connect to your repository (Mit Repository verbinden)** die Option **HTTPS** als **Connection type (Verbindungstyp)** aus. Wählen Sie anschließend Ihr Betriebssystem aus.  
![\[Erstellen eines neuen Repositorys in CodeCommit.\]](http://docs.aws.amazon.com/de_de/opsworks/latest/userguide/images/opspup_cc_connect.png)

   Im Bereich **Steps to clone your repository (Repository schrittweise klonen)** sollte Ihre `git clone`-URL etwa wie folgt aussehen: `https://git-codecommit.region.amazonaws.com/v1/repos/control-repo`. Kopieren Sie diese URL an einen leicht zugänglichen Speicherort für die Einrichtung des Puppet-Servers.

1. Schließen **Sie die Seite Mit Ihrem Repository verbinden** und kehren Sie zum Server-Setup OpsWorks für Puppet Enterprise zurück.

1. Fügen Sie die URL, die Sie in Schritt 4 im Textfeld **r10k remote** kopiert haben, auf der Seite **Configure credentials (Anmeldeinformationen konfigurieren)** des Einrichtungsassistenten für den Puppet-Master ein. Tragen Sie nichts in das Feld **r10k private key (r10k-Privatschlüssel)** ein. Schließen Sie das Erstellen und Starten Ihres Puppet-Masters ab.

1. Fügen Sie in der IAM-Konsole die **AWSCodeCommitReadOnly**Richtlinie der Instanzprofilrolle Ihres Puppet-Masters hinzu. *Weitere Informationen zum Hinzufügen einer Berechtigungsrichtlinie zu einer IAM-Rolle finden Sie unter [Hinzufügen von IAM-Identitätsberechtigungen (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) im IAM-Benutzerhandbuch.*

1. Folgen Sie den Schritten unter [Einrichtung für HTTPS-Benutzer mithilfe von Git-Anmeldeinformationen](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) im *AWS CodeCommit Benutzerhandbuch*, um Ihre vorhandenen `control-repo` Inhalte in das neue CodeCommit Repository zu übertragen.

1. Jetzt können Sie weiterhin durcharbeiten. Befolgen Sie hierzu die Anweisungen in [Konfigurieren des Puppet-Masters mit dem Starter Kit](opspup-starterkit.md) und verwenden Sie das Starter Kit, um den Code Ihrem Puppet-Master bereitzustellen. Nachfolgend finden Sie einen Beispielbefehl.

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

## Schritt 2: (Optional) CodeCommit Als Repository mit einem SSH-Verbindungstyp verwenden
<a name="codecommit-puppet-ssh"></a>

Sie können ein AWS CodeCommit R10k-Remotesteuerungs-Repository für die Verwendung der SSH-Schlüsselpaar-Authentifizierung konfigurieren. Die folgenden Voraussetzungen müssen vervollständigt werden, bevor Sie mit diesem Vorgang beginnen.
+ Sie müssen Ihren OpsWorks for Puppet Enterprise-Server mit einem HTTPS-Steuerungs-Repository gestartet haben, wie im vorherigen Abschnitt beschrieben,. [Schritt 1: CodeCommit Als Repository mit einem HTTPS-Verbindungstyp verwenden](#codecommit-puppet-https) Dies muss zuerst abgeschlossen werden, damit Sie die erforderliche Konfiguration auf den Puppet-Master hochladen können.
+ Stellen Sie sicher, dass Sie einen Benutzer haben, dem die **AWSCodeCommitReadOnly**verwaltete Richtlinie angehängt ist. Weitere Informationen zum Erstellen eines Benutzers finden Sie unter [Erstellen eines IAM-Benutzers in Ihrem AWS Konto](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) im *IAM-Benutzerhandbuch*.
+ Erstellen und verknüpfen Sie einen SSH-Schlüssel mit Ihrem -Benutzer. Folgen Sie den Anweisungen zum Erstellen eines public/private key pair mit `ssh-keygen` in [Schritt 3: Anmeldeinformationen unter Linux, macOS oder Unix konfigurieren](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html#setting-up-ssh-unixes-keys) im *AWS CodeCommit Benutzerhandbuch*.

1. Führen Sie in einer AWS CLI Sitzung den folgenden Befehl aus, um den Inhalt der privaten Schlüsseldatei in den AWS Systems Manager Parameter Store hochzuladen. Ihr OpsWorks for Puppet Enterprise-Server fragt diesen Parameter ab, um eine erforderliche Zertifikatsdatei abzurufen. *private\$1key\$1file*Ersetzen Sie ihn durch den Pfad zu Ihrer privaten SSH-Schlüsseldatei.

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

1. Fügen Sie Ihrem Puppet-Master Systems Manager Parameter Store-Berechtigungen hinzu.

   1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

   1. Wählen Sie im linken Navigationsbereich **Roles** aus.

   1. Wählen Sie „Zwei Rollen“ **aws-opsworks-cm-ec.**

   1. Wählen Sie auf der Registerkarte **Permissions (Berechtigungen)** die Option **Attach policies (Richtlinien anfügen)** aus.

   1. Geben Sie im **Suchfeld** **AmazonSSMManagedInstanceCore** ein.

   1. Wählen Sie in den Suchergebnissen **Amazon** aus SSMManagedInstanceCore.

   1. Wählen Sie **Richtlinie anfügen** aus.

1. Erstellen Sie das Manifest für die Konfigurationsdatei. Wenn Sie das `control-repo-example` Repository, welches Sie im Starter Kit finden, verwenden, erstellen Sie die folgenden Dateien an den Orten aus dem Beispiel-Repository. Andernfalls erstellen Sie sie gemäß Ihrer eigenen Steuerungs-Repository-Struktur. Ersetzen Sie den *IAM\$1USER\$1SSH\$1KEY* Wert durch die SSH-Schlüssel-ID, die Sie in den Voraussetzungen für dieses Verfahren erstellt haben.

   ```
   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. Pushen Sie Ihr Kontroll-Repository auf CodeCommit. Führen Sie die folgenden Befehle aus, um die neue Manifestdatei in Ihr Repository zu schieben.

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

1. Stellen Sie die Manifestdateien bereit. Führen Sie die folgenden Befehle aus, um die aktualisierte Konfiguration auf Ihrem OpsWorks for Puppet Enterprise-Server bereitzustellen. *STARTER\$1KIT\$1DIRECTORY*Ersetzen Sie durch den Pfad zu Ihren Puppet-Konfigurationsdateien.

   ```
   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. Aktualisieren Sie die OpsWorks Klassifizierung des Servers für Puppet Enterprise. Standardmäßig wird der Puppet-Agent alle 30 Minuten auf Knoten (einschließlich dem Master) ausgeführt. Um Wartezeiten zu vermeiden, können Sie den Agenten manuell auf dem Puppet-Master ausführen. Das Ausführen des Agent nimmt die neue Manifestdatei auf.

   1. Anmeldung bei der Puppet Enterprise-Konsole.

   1. Wählen Sie **Klassifizierung**.

   1. Erweitern Sie **PE Infrastructure**.

   1. Wählen Sie **PE-Master**.

   1. Geben Sie auf der Registerkarte **Konfiguration** **profile::codecommit** unter **Neue Klasse hinzufügen** ein.

      Die neue Klasse `profile::codecommit` wird möglicherweise nicht sofort nach der Ausführung von `puppet-code deploy` angezeigt. Wählen Sie **Aktualisieren** auf dieser Seite, wenn es nicht angezeigt wird.

   1. Wählen Sie **Klasse hinzufügen** und wählen Sie dann **Commit 1 ändern**.

   1. Führen Sie den Puppet-Agent manuell auf dem OpsWorks for Puppet Enterprise-Server aus. Wählen Sie **Knoten**, wählen Sie Ihren Server aus der Liste, wählen Sie **Run Puppet**, und wählen Sie dann **Run**.

1. Ändern Sie in der Puppet-Enterprise-Konsole die Repository-URL auf die Verwendung von SSH anstelle von HTTPS. Die Konfiguration, die Sie in diesen Schritten vornehmen, wird während des Sicherungs- und Wiederherstellungsvorgangs OpsWorks für Puppet Enterprise gespeichert, sodass Sie die Repository-Konfiguration nach Wartungsarbeiten nicht manuell ändern müssen.

   1. Wählen Sie **Klassifizierung**.

   1. Erweitern Sie **PE Infrastructure**.

   1. Wählen Sie **PE-Master**.

   1. Klicken Sie in der **Konfigurierungs-**Registerkarte auf `puppet_enterprise::profile::master`-Klasse.

   1. Wählen Sie **Bearbeiten** neben dem `r10k_remote`-Parameter.

   1. Ersetzen Sie die HTTPS-URL durch die SSH-URL für Ihr Repository und wählen Sie dann **Commit 1 ändern**.

   1. Führen Sie den Puppet-Agent manuell auf dem OpsWorks for Puppet Enterprise-Server aus. Wählen Sie **Knoten**, wählen Sie Ihren Server aus der Liste, wählen Sie **Run Puppet**, und wählen Sie dann **Run**.