Implementieren Sie das BeeGFS HA-Cluster
Geben Sie an, welche Aufgaben ausgeführt werden sollen, um BeeGFS HA-Cluster mithilfe eines Playbooks zu implementieren.
Überblick
In diesem Abschnitt wird beschrieben, wie Sie das Standard-Playbook zur Bereitstellung/zum Managen von BeeGFS auf NetApp zusammenstellen können.
Schritte
Erstellen Sie das Ansible Playbook
Erstellen Sie die Datei playbook.yml
Und füllen Sie es wie folgt aus:
-
Definieren Sie zunächst einen Satz von Aufgaben (allgemein als A bezeichnet) "Spielen") Die nur auf Block-Nodes der NetApp E-Series ausgeführt werden sollte. Wir verwenden eine Pause-Aufgabe, um vor dem Ausführen der Installation eine Aufforderung zu geben (um versehentliche Playbook-Läufe zu vermeiden), und importieren dann die
nar_santricity_management
Rolle: Diese Rolle übernimmt die Anwendung aller in definierten allgemeinen Systemkonfigurationgroup_vars/eseries_storage_systems.yml
Oder einzelnhost_vars/<BLOCK NODE>.yml
Dateien:- hosts: eseries_storage_systems gather_facts: false collections: - netapp_eseries.santricity tasks: - name: Verify before proceeding. pause: prompt: "Are you ready to proceed with running the BeeGFS HA role? Depending on the size of the deployment and network performance between the Ansible control node and BeeGFS file and block nodes this can take awhile (10+ minutes) to complete." - name: Configure NetApp E-Series block nodes. import_role: name: nar_santricity_management
-
Definieren Sie die Wiedergabe, die für alle Datei- und Blockknoten ausgeführt wird:
- hosts: all any_errors_fatal: true gather_facts: false collections: - netapp_eseries.beegfs
-
In diesem Sales Play können wir optional einen Satz von „Voraufgaben“ definieren, die vor der Bereitstellung des HA-Clusters ausgeführt werden sollten. Dies kann nützlich sein, um alle Voraussetzungen wie Python zu überprüfen/zu installieren. Zudem können Überprüfungen vor dem Flug durchgeführt werden, beispielsweise die Unterstützung der bereitgestellten Ansible-Tags:
pre_tasks: - name: Ensure a supported version of Python is available on all file nodes. block: - name: Check if python is installed. failed_when: false changed_when: false raw: python --version register: python_version - name: Check if python3 is installed. raw: python3 --version failed_when: false changed_when: false register: python3_version when: 'python_version["rc"] != 0 or (python_version["stdout"] | regex_replace("Python ", "")) is not version("3.0", ">=")' - name: Install python3 if needed. raw: | id=$(grep "^ID=" /etc/*release* | cut -d= -f 2 | tr -d '"') case $id in ubuntu) sudo apt install python3 ;; rhel|centos) sudo yum -y install python3 ;; sles) sudo zypper install python3 ;; esac args: executable: /bin/bash register: python3_install when: python_version['rc'] != 0 and python3_version['rc'] != 0 become: true - name: Create a symbolic link to python from python3. raw: ln -s /usr/bin/python3 /usr/bin/python become: true when: python_version['rc'] != 0 when: inventory_hostname not in groups[beegfs_ha_ansible_storage_group] - name: Verify any provided tags are supported. fail: msg: "{{ item }} tag is not a supported BeeGFS HA tag. Rerun your playbook command with --list-tags to see all valid playbook tags." when: 'item not in ["all", "storage", "beegfs_ha", "beegfs_ha_package", "beegfs_ha_configure", "beegfs_ha_configure_resource", "beegfs_ha_performance_tuning", "beegfs_ha_backup", "beegfs_ha_client"]' loop: "{{ ansible_run_tags }}"
-
Schließlich importiert dieses Spiel die BeeGFS HA-Rolle für die Version von BeeGFS, die Sie bereitstellen möchten:
tasks: - name: Verify the BeeGFS HA cluster is properly deployed. import_role: name: beegfs_ha_7_4 # Alternatively specify: beegfs_ha_7_3.
Für jede unterstützte Major.Minor Version von BeeGFS wird eine BeeGFS HA-Rolle beibehalten. Auf diese Weise können Benutzer festlegen, wann ein Upgrade von Major-/Minor-Versionen durchgeführt werden soll. Derzeit ( beegfs_7_3
(`beegfs_7_2`werden BeeGFS 7.3.x ) oder BeeGFS 7.2.x ) unterstützt. Standardmäßig werden beide Rollen zum Zeitpunkt der Veröffentlichung die neueste BeeGFS-Patch-Version bereitstellen. Benutzer können dies jedoch überschreiben und gegebenenfalls den neuesten Patch bereitstellen. "Upgrade-Leitfaden"Weitere Informationen finden Sie auf dem neuesten Stand. -
Optional: Wenn Sie zusätzliche Aufgaben definieren möchten, sollten Sie beachten, ob die Aufgaben an geleitet werden sollen
all
Hosts (einschließlich der E-Series Storage-Systeme) oder nur die Datei-Nodes Definieren Sie bei Bedarf ein neues Spiel speziell für Dateiknoten mit- hosts: ha_cluster
.
Klicken Sie Auf "Hier" Beispiel für eine vollständige Playbook-Datei.
NetApp Ansible Sammlungen installieren
Die BeeGFS-Sammlung für Ansible, und alle Abhängigkeiten werden aufrechterhalten "Ansible-Galaxie". Führen Sie auf Ihrem Ansible-Steuerungsknoten den folgenden Befehl aus, um die neueste Version zu installieren:
ansible-galaxy collection install netapp_eseries.beegfs
Obwohl nicht in der Regel empfohlen, ist es auch möglich, eine bestimmte Version der Sammlung zu installieren:
ansible-galaxy collection install netapp_eseries.beegfs:==<MAJOR>.<MINOR>.<PATCH>
Führen Sie das Playbook aus
Aus dem Verzeichnis auf Ihrem Ansible-Steuerungsknoten, der den enthält inventory.yml
Und playbook.yml
Dateien, führen Sie das Playbook wie folgt aus:
ansible-playbook -i inventory.yml playbook.yml
Basierend auf der Cluster-Größe kann die ursprüngliche Implementierung 20+ Minuten dauern. Wenn die Implementierung aus irgendeinem Grund fehlschlägt, korrigieren Sie einfach Probleme (z. B. Fehlverkabelung, Knoten wurde nicht gestartet usw.) und starten Sie das Ansible Playbook neu.
"Allgemeine Konfiguration der Datei-Nodes"Wenn Sie angeben , wenn Sie die Standardoption wählen, damit Ansible die verbindungsbasierte Authentifizierung automatisch verwaltet, connAuthFile
kann ein als gemeinsamer Schlüssel verwendet jetzt unter <playbook_dir>/files/beegfs/<sysMgmtdHost>_connAuthFile
(standardmäßig) gefunden werden. Alle Clients, die auf das Dateisystem zugreifen müssen, müssen diesen gemeinsam genutzten Schlüssel verwenden. Dies wird automatisch verarbeitet, wenn Clients über die konfiguriert werden"BeeGFS-Client-Rolle".