[ English | Indonesia | français | Deutsch | English (United Kingdom) | 한국어 (대한민국) | español | русский ]
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.
Die Datei haproxy.yml.example
im Verzeichnis conf.d/ bietet ein einfaches Beispiel für die Definition einer Hostgruppe (``haproxy_hosts`) mit zwei Hosts (infra1
und `` 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.