Optional: AWS CodeCommit Als Puppet R10k Remote Control Repository verwenden - AWS OpsWorks

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

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 oder über den AWS Premium-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 AWSCodeCommitReadOnlyverwalteten Richtlinie vorgesehenen Berechtigungen verfügt.

Schritt 1: CodeCommit Als Repository mit einem HTTPS-Verbindungstyp verwenden

  1. Erstellen Sie in der CodeCommit Konsole ein neues Repository.

    Neues Repository wird erstellt in CodeCommit.
  2. Wählen Sie Überspringen, um die Einrichtung eines Amazon SNS SNS-Themas zu überspringen.

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

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

    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.

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

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

  7. Fügen Sie in der IAM-Konsole die AWSCodeCommitReadOnlyRichtlinie 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) im IAM-Benutzerhandbuch.

  8. Folgen Sie den Schritten unter Einrichtung für HTTPS-Benutzer mithilfe von Git-Anmeldeinformationen im AWS CodeCommit Benutzerhandbuch, um Ihre vorhandenen control-repo Inhalte in das neue CodeCommit Repository zu übertragen.

  9. Jetzt können Sie weiterhin durcharbeiten. Befolgen Sie hierzu die Anweisungen in Konfigurieren des Puppet-Masters mit dem Starter Kit 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

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.

  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. Ersetzen Sie die -Datei mit dem privaten Schlüssel durch den Pfad zu Ihrer Datei mit dem privaten SSH-Schlüssel.

    aws ssm put-parameter --name puppet_user_pk --type String --value "`cat private_key_file`"
  2. Fügen Sie Ihrem Puppet-Master Systems Manager Parameter Store-Berechtigungen hinzu.

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

    2. Wählen Sie im linken Navigationsbereich Roles aus.

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

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

    5. Geben Sie im Suchfeld AmazonSSMManagedInstanceCore ein.

    6. Wählen Sie in den Suchergebnissen ManagedInstanceCoreAmazonSSM aus.

    7. Wählen Sie Richtlinie anfügen aus.

  3. 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_USER_SSH_KEY-Wert mit der SSH-Schlüssel-ID, die Sie als Voraussetzung für diesen Ablauf 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', } }
  4. 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
  5. Stellen Sie die Manifestdateien bereit. Führen Sie die folgenden Befehle aus, um die aktualisierte Konfiguration auf Ihrem OpsWorks for Puppet Enterprise-Server bereitzustellen. Ersetzen Sie STARTER_KIT_DIRECTORY mit dem 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
  6. Aktualisieren Sie die Klassifizierung des OpsWorks for Puppet Enterprise-Servers. 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.

    2. Wählen Sie Klassifizierung.

    3. Erweitern Sie PE Infrastructure.

    4. Wählen Sie PE-Master.

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

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

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

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

    2. Erweitern Sie PE Infrastructure.

    3. Wählen Sie PE-Master.

    4. Klicken Sie in der Konfigurierungs-Registerkarte auf puppet_enterprise::profile::master-Klasse.

    5. Wählen Sie Bearbeiten neben dem r10k_remote-Parameter.

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

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