[ English | español | Deutsch | Indonesia | русский | English (United Kingdom) ]

Das Inventar verstehen

Das Standardlayout von Containern und Diensten in OpenStack-Ansible (OSA) wird durch die Datei /etc/openstack_deploy/openstack_user_config.yml und den Inhalt der Verzeichnisse /etc/openstack_deploy/conf.d/ und /etc/openstack_deploy/env.d/ bestimmt. Sie verwenden diese Quellen zum Definieren der group -Mappings, die von den Playbooks verwendet werden, um Hosts und Container für Rollen zu referenzieren, die in der Bereitstellung verwendet werden.

  • Sie definieren Host-Gruppen, die die Ziel-Hosts in Inventory Groups zusammenfassen, über die Datei /etc/openstack_deploy/openstack_user_config.yml und den Inhalt des Verzeichnisses /etc/openstack_deploy/conf.d/.

  • Sie definieren Containergruppen, die von den zu implementierenden Servicekomponenten bis zu Hostgruppen durch Dateien im Verzeichnis /etc/openstack_deploy/env.d/ abbilden können.

Um das Layout der Komponenten für Ihre Bereitstellung anzupassen, ändern Sie die Hostgruppen und Containergruppen entsprechend, bevor Sie die Installations-Playbooks ausführen.

Grundlegendes zu Host-Gruppen (conf.d-Struktur)

Im Rahmen der Erstkonfiguration wird jeder Zielhost entweder in der Datei /etc/openstack_deploy/openstack_user_config.yml oder in Dateien im Verzeichnis /etc/openstack_deploy/conf.d/ angezeigt. Das Format für Dateien im Verzeichnis conf.d/ ist identisch mit der Syntax in der Datei openstack_user_config.yml.

In diesen Dateien werden die Zielhosts unter einer oder mehreren Überschriften aufgelistet, z. B. shared-infra_hosts oder storage_hosts, die als Ansible-Gruppenzuordnungen dienen. Diese Gruppen werden den physischen Hosts zugeordnet.

The haproxy.yml.example file in the conf.d/ directory provides a simple example of defining a host group (load_balancer_hosts) with two hosts (infra1 and infra2).

Die Datei swift.yml.example bietet ein komplexeres Beispiel. Hier werden Hostvariablen für einen Zielhost mit dem Schlüssel container_vars angegeben. OpenStack-Ansible wendet alle Einträge unter diesem Schlüssel als Host-spezifische Variablen auf alle Komponentencontainer auf dem bestimmten Host an.

Bemerkung

Um die Dateigröße zu verwalten, empfehlen wir, neue Inventargruppen, insbesondere für neue Dienste, zu definieren, indem Sie eine neue Datei im Verzeichnis conf.d / verwenden.

Container-Gruppen verstehen (Struktur env.d)

Weitere Gruppenzuordnungen befinden sich in Dateien im Verzeichnis /etc/openstack_deploy/env.d/. Diese Gruppen werden als virtuelle Zuordnungen von den Hostgruppen (oben beschrieben) zu den Containergruppen behandelt, die definieren, wo sich jeder Dienst entfaltet. Wenn Sie Dateien im env.d/ - Verzeichnis überprüfen, können Sie beginnen, die Verschachtelung von Gruppen zu sehen, die im Standardlayout dargestellt werden.

Zum Beispiel definiert die Datei shared-infra.yml eine Containergruppe shared-infra_containers als eine Teilmenge der Bestandsgruppe all_containers. Die Container-Gruppe shared-infra_containers wird der Host-Gruppe shared-infra_hosts zugeordnet. Alle Dienstkomponenten in der Containergruppe shared-infra_containers werden auf jedem Zielhost in der Gruppe shared-infra_hosts-Host bereitgestellt.

In einem physical_skel-Abschnitt erwartet das OpenStack-Ansible-dynamische Inventar ein Schlüsselpaar. Der erste Schlüssel wird Objekten im Abschnitt container_skel zugeordnet, und der zweite Schlüssel wird den oben beschriebenen Zielhostgruppen zugeordnet, die für das Hosten der Servicekomponente verantwortlich sind.

Um das Beispiel fortzusetzen, definiert die memcache.yml Datei die memcache_container Containergruppe. Diese Gruppe ist eine Untergruppe der Gruppe shared-infra_containers, die ihrerseits eine Teilmenge der Bestandsgruppe all_containers darstellt.

Bemerkung

Die Gruppe all_containers wird automatisch von OpenStack-Ansible definiert. Jede Dienstkomponente, die von OpenStack-Ansible verwaltet wird, wird einer Untergruppe der Bestandsgruppe all_containers direkt oder indirekt über eine andere Zwischencontainergruppe zugeordnet.

Das Standardlayout basiert nicht ausschließlich auf Gruppen, die Teilmengen anderer Gruppen sind. Die memcache-Komponentengruppe ist Teil der memcache_container-Gruppe, sowie der memcache_all-Gruppe und enthält auch eine memcached-Komponentengruppe. Wenn Sie das Playbook playbooks/memcached-install.yml ansehen, sehen Sie, dass das Playbook für Hosts in der Gruppe memcached gilt. Andere Dienste benötigen möglicherweise komplexere Bereitstellungsanforderungen. Sie definieren und konsumieren Inventarbehältergruppen unterschiedlich. Durch die Zuordnung von Komponenten zu mehreren Gruppen auf diese Weise können Rollen und Aufgaben flexibel ausgerichtet werden.