

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.

# Zentralisieren Sie die Verteilung von Softwarepaketen in AWS Organizations mithilfe von Terraform
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform"></a>

*Pradip Kumar Pandey, Chintamani Aphale, T.V.R.L.Phani Kumar Dadi, Pratap Kumar Nanda, Aarti Rajput und Mayuri Shinde, Amazon Web Services*

## Zusammenfassung
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-summary"></a>

Unternehmen verwalten häufig mehrere AWS-Konten , die auf mehrere verteilt sind, um AWS-Regionen eine starke Isolationsbarriere zwischen Workloads zu schaffen. Um sicher und konform zu bleiben, installieren ihre Verwaltungsteams agentenbasierte Tools wie [CrowdStrike[SentinelOne](https://www.sentinelone.com/platform/)](https://www.crowdstrike.com/falcon-platform/), oder [TrendMicro](https://www.trendmicro.com/en_sg/business.html)Tools für Sicherheitsscans sowie den [ CloudWatch Amazon-Agenten](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html), den [Datadog Agent](https://www.datadoghq.com/) oder [AppDynamics Agenten](https://www.appdynamics.com/product/how-it-works/agents-and-controller) für die Überwachung. Diese Teams stehen oft vor Herausforderungen, wenn sie die Verwaltung und Verteilung von Softwarepaketen in dieser großen Landschaft zentral automatisieren wollen.

[Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html), eine Funktion von [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html), automatisiert den Prozess der Paketierung und Veröffentlichung von Software auf verwalteten Microsoft Windows- und Linux-Instanzen in der Cloud und auf lokalen Servern über eine einzige, vereinfachte Oberfläche. Dieses Muster zeigt, wie Sie Terraform verwenden können, um den Prozess der Verwaltung der Softwareinstallation weiter zu vereinfachen und Skripts mit minimalem Aufwand für eine große Anzahl von Instanzen und Mitgliedskonten auszuführen. AWS Organizations 

Diese Lösung funktioniert für Amazon-, Linux- und Windows-Instances, die von Systems Manager verwaltet werden.

## Voraussetzungen und Einschränkungen
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-prereqs"></a>
+ Ein [Distributor-Paket](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-create.html), das die zu installierende Software enthält
+ [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) Version 0.15.0 oder höher
+ Amazon Elastic Compute Cloud (Amazon EC2) -Instances, die [von Systems Manager verwaltet](https://docs.aws.amazon.com/systems-manager/latest/userguide/managed_instances.html) werden und über grundlegende [Berechtigungen für den Zugriff auf Amazon Simple Storage Service (Amazon S3](https://repost.aws/knowledge-center/ec2-instance-access-s3-bucket)) im Zielkonto verfügen
+ Eine landing zone für Ihre Organisation, die eingerichtet wird mit [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)
+ (Optional) [Account Factory für Terraform (](https://catalog.workshops.aws/control-tower/en-US/customization/aft)AFT)

## Architektur
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-architecture"></a>

**Einzelheiten zur Ressource**

Dieses Muster verwendet [Account Factory for Terraform (AFT)](https://catalog.workshops.aws/control-tower/en-US/customization/aft), um alle erforderlichen AWS Ressourcen und die Code-Pipeline für die Bereitstellung der Ressourcen in einem Bereitstellungskonto zu erstellen. Die Code-Pipeline läuft in zwei Repositorys:
+ **Die globale Anpassung** enthält Terraform-Code, der auf allen bei AFT registrierten Konten ausgeführt wird.
+ **Kontoanpassungen** enthalten Terraform-Code, der im Bereitstellungskonto ausgeführt wird.

Sie können diese Lösung auch ohne AFT bereitstellen, indem Sie [Terraform-Befehle](https://developer.hashicorp.com/terraform/intro) im Ordner für Kontoanpassungen ausführen.

Der Terraform-Code stellt die folgenden Ressourcen bereit:
+ AWS Identity and Access Management (IAM) Rolle und Richtlinien
  + [SystemsManager- AutomationExecutionRole](https://docs.aws.amazon.com/systems-manager/latest/userguide/running-automations-multiple-accounts-regions.html) gewährt dem Benutzer Berechtigungen zum Ausführen von Automatisierungen in den Zielkonten.
  + [SystemsManager- AutomationAdministrationRole](https://docs.aws.amazon.com/systems-manager/latest/userguide/running-automations-multiple-accounts-regions.html) gewährt dem Benutzer Berechtigungen zum Ausführen von Automatisierungen in mehreren Konten und Organisationseinheiten ()OUs.
+ Komprimierte Dateien und manifest.json für das Paket
  + In Systems Manager enthält ein [Paket](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-create.html) mindestens eine ZIP-Datei mit Software oder installierbaren Ressourcen.
  + Das JSON-Manifest enthält Verweise auf Ihre Paketcodedateien.
+ S3-Bucket
  + Das verteilte Paket, das von der gesamten Organisation gemeinsam genutzt wird, wird sicher in einem Amazon S3 S3-Bucket gespeichert.
+ AWS Systems Manager Dokumente (SSM-Dokumente)
  + `DistributeSoftwarePackage`enthält die Logik zur Verteilung des Softwarepakets an jede Zielinstanz in den Mitgliedskonten.
  + `AddSoftwarePackageToDistributor`enthält die Logik, um die installierbaren Software-Ressourcen zu verpacken und sie der Automatisierung hinzuzufügen, eine Funktion von AWS Systems Manager.
+ Systems Manager -Zuordnung.
  + Für die Bereitstellung der Lösung wird eine Systems Manager Manager-Zuordnung verwendet.

**Architektur und Arbeitsablauf**

![\[Architekturdiagramm zur Zentralisierung der Verteilung von Softwarepaketen in AWS Organizations\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/da584449-e12b-4878-a61d-00d8cea3d3d7/images/2718f2c4-f816-4e34-89b8-8182c128e6db.png)


Die Abbildung zeigt die folgenden Schritte:

1. Um die Lösung von einem zentralen Konto aus auszuführen, laden Sie Ihre Pakete oder Software zusammen mit den Bereitstellungsschritten in einen S3-Bucket hoch.

1. Ihr maßgeschneidertes Paket wird im Bereich [Dokumente](https://ap-southeast-2.console.aws.amazon.com/systems-manager/documents?region=ap-southeast-2) der Systems Manager Manager-Konsole auf der Registerkarte **Mein Eigentum** verfügbar.

1. State Manager, eine Funktion von Systems Manager, erstellt, plant und führt eine Zuordnung für das Paket in der gesamten Organisation aus. Die Zuordnung gibt an, dass das Softwarepaket auf einem verwalteten Knoten installiert und ausgeführt werden muss, bevor es auf dem Zielknoten installiert werden kann.

1. Die Assoziation weist Systems Manager an, das Paket auf dem Zielknoten zu installieren.

1. Für alle nachfolgenden Installationen oder Änderungen können Benutzer dieselbe Zuordnung regelmäßig oder manuell von einem einzigen Standort aus ausführen, um kontenübergreifende Bereitstellungen durchzuführen.

1. Bei Mitgliedskonten sendet Automation Bereitstellungsbefehle an den Distributor.

1. Der Distributor verteilt Softwarepakete auf mehrere Instanzen.

Diese Lösung verwendet das interne Verwaltungskonto AWS Organizations, aber Sie können auch ein Konto (delegierter Administrator) angeben, das dieses Konto im Namen der Organisation verwaltet.

## Tools
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-tools"></a>

**AWS-Services**
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt. Dieses Muster verwendet Amazon S3, um das verteilte Paket zu zentralisieren und sicher zu speichern.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)hilft Ihnen bei der Verwaltung Ihrer Anwendungen und Infrastruktur, die in der AWS Cloud ausgeführt werden. Es vereinfacht das Anwendungs- und Ressourcenmanagement, verkürzt die Zeit für die Erkennung und Lösung betrieblicher Probleme und hilft Ihnen, Ihre AWS Ressourcen sicher und in großem Umfang zu verwalten. Dieses Muster verwendet die folgenden Systems Manager Manager-Funktionen:
  + Der [Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) unterstützt Sie beim Paketieren und Veröffentlichen von Software auf verwalteten Systems Manager-Instanzen.
  + Die [Automatisierung](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) vereinfacht allgemeine Wartungs-, Bereitstellungs- und Problembehebungsaufgaben für viele AWS Dienste.
  + [Documents](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents.html) führt Aktionen auf Ihren von Systems Manager verwalteten Instanzen in Ihrer Organisation und Ihren Konten durch.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)ist ein Kontoverwaltungsservice, der Ihnen hilft, mehrere AWS Konten in einer Organisation zu konsolidieren, die Sie erstellen und zentral verwalten.

**Andere Tools**
+ [Terraform](https://www.terraform.io/) ist ein IaC-Tool (Infrastructure as Code) HashiCorp , mit dem Sie Cloud- und lokale Ressourcen erstellen und verwalten können.

**Code-Repository**

Die Anweisungen und der Code für dieses Muster sind im Repository für die GitHub [zentralisierte Paketverteilung](https://github.com/aws-samples/aws-organization-centralised-package-distribution) verfügbar.

## Best Practices
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-best-practices"></a>
+ Um einer Assoziation Tags zuzuweisen, verwenden Sie die [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) oder die [AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-welcome.html). Das Hinzufügen von Tags zu einer Zuordnung über die Systems-Manager-Konsole wird nicht unterstützt. Weitere Informationen finden Sie unter [Tagging Systems Manager Manager-Ressourcen](https://docs.aws.amazon.com/systems-manager/latest/userguide/tagging-resources.html) in der Systems Manager Manager-Dokumentation.
+ Um eine Zuordnung mithilfe einer neuen Version eines Dokuments auszuführen, das von einem anderen Konto aus geteilt wurde, legen Sie die Dokumentversion auf `default` fest.
+ Um nur den Zielknoten zu taggen, verwenden Sie einen Tag-Schlüssel. Wenn Sie Ihre Knoten mithilfe mehrerer Tag-Schlüssel als Ziel verwenden möchten, verwenden Sie die Option Resource Group.

## Epen
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-epics"></a>

### Konfigurieren Sie Quelldateien und Konten
<a name="configure-source-files-and-accounts"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das Repository | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 
| Aktualisieren Sie globale Variablen. | Aktualisieren Sie die folgenden Eingabeparameter in der `global-customization/variables.tf` Datei. Diese Variablen gelten für alle Konten, die von AFT erstellt und verwaltet werden.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 
| Kontovariablen aktualisieren. | Aktualisieren Sie die folgenden Eingabeparameter in der `account-customization/variables.tf` Datei. Diese Variablen gelten nur für bestimmte Konten, die von AFT erstellt und verwaltet werden.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 

### Passen Sie Parameter und Bereitstellungsdateien an
<a name="customize-parameters-and-deployment-files"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktualisieren Sie die Eingabeparameter für die State Manager-Zuordnung. | Aktualisieren Sie die folgenden Eingabeparameter in der `account-customization/association.tf` Datei, um den Status zu definieren, den Sie für Ihre Instances beibehalten möchten. Sie können die Standardparameterwerte verwenden, wenn sie Ihren Anwendungsfall unterstützen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 
| Bereiten Sie die komprimierten Dateien und die `manifest.json` Datei für das Paket vor. | Dieses Muster enthält PowerShell installierbare Beispieldateien (.msi für Windows und .rpm für Linux) mit Installations- und Deinstallationsskripten im Ordner. `account-customization/package`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 

### Führen Sie Terraform-Befehle aus, um Ressourcen bereitzustellen
<a name="run-terraform-commands-to-provision-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Initialisieren Sie die Terraform-Konfiguration. | Um die Lösung automatisch mit AFT bereitzustellen, senden Sie den Code an: AWS CodeCommit<pre>$ git add *<br />$ git commit -m "message"<br />$ git push</pre>Sie können diese Lösung auch ohne AFT bereitstellen, indem Sie einen Terraform-Befehl aus dem `account-customization` Ordner ausführen. Um das Arbeitsverzeichnis zu initialisieren, das die Terraform-Dateien enthält, führen Sie folgenden Befehl aus:<pre>$ terraform init</pre> | DevOps Ingenieur | 
| Änderungen in der Vorschau anzeigen. | Führen Sie den folgenden Befehl aus, um eine Vorschau der Änderungen anzuzeigen, die Terraform an der Infrastruktur vornehmen wird:<pre>$ terraform plan</pre>Dieser Befehl wertet die Terraform-Konfiguration aus, um den gewünschten Status der deklarierten Ressourcen zu ermitteln. Außerdem wird der gewünschte Status mit der tatsächlichen Infrastruktur verglichen, die im Workspace bereitgestellt werden soll. | DevOps Ingenieur | 
| Änderungen übernehmen. | Führen Sie den folgenden Befehl aus, um die Änderungen zu implementieren, die Sie an den `variables.tf` Dateien vorgenommen haben:<pre>$ terraform apply</pre> | DevOps Ingenieur | 

### Ressourcen validieren
<a name="validate-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bestätigen Sie die Erstellung von SSM-Dokumenten. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html)Sie sollten die `AddSoftwarePackageToDistributor` Pakete `DistributeSoftwarePackage` und sehen. | DevOps Ingenieur | 
| Bestätigen Sie den erfolgreichen Einsatz von Automatisierungen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 
| Stellen Sie sicher, dass das Paket für die ausgewählten Mitgliedskonten-Instanzen bereitgestellt wurde. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 

## Fehlerbehebung
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Die State Manager-Zuordnung ist fehlgeschlagen oder befindet sich im Status „Ausstehend“. | [Informationen zur Fehlerbehebung finden](https://repost.aws/knowledge-center/ssm-state-manager-association-fail) Sie im AWS Knowledge Center. | 
| Eine geplante Verknüpfung konnte nicht ausgeführt werden. | Ihre Zeitplanspezifikation ist möglicherweise ungültig. State Manager unterstützt derzeit nicht die Angabe von Monaten in Cron-Ausdrücken für Assoziationen. Verwenden Sie [Cron- oder Rate-Ausdrücke](https://docs.aws.amazon.com/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html), um den Zeitplan zu bestätigen. | 

## Zugehörige Ressourcen
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-resources"></a>
+ [Zentralisierte Paketverteilung](https://github.com/aws-samples/aws-organization-centralised-package-distribution) (GitHub Repository)
+ [Account Factory für Terraform (AFT)](https://catalog.workshops.aws/control-tower/en-US/customization/aft)
+ [Anwendungsfälle und bewährte Verfahren (Dokumentation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-best-practices.html))AWS Systems Manager 