fifty2technology.openpbs
Beschreibung
Diese Rolle installiert und konfiguriert OpenPBS auf Compute-Knoten, Server-Knoten oder beidem. Sie folgt den INSTALL
-Anweisungen aus dem offiziellen GitHub-Repository.
Hinweis: Wenn auf einem Knoten mit einer laufenden Simulation eine Konfigurationsänderung vorgenommen wird, wird OpenPBS neu gestartet, was auch die Simulation neu startet. Um auf der sicheren Seite zu sein, führen Sie dies nur auf Leerknoten aus.
Das Molekül-Szenario wird in Podman mit Rockylinux 9 und OpenPBS Version 23.06.06 getestet.
Anforderungen
- Alle Knoten müssen SSH untereinander verwenden können (n-zu-n) (einschließlich OpenPBS-Server und Knoten) mit dem gewünschten MPI-Benutzer.
- Die Inventargruppen sollten
pbsheadnode
(für den Kopfknoten) undmpinodes
(für die Compute-Knoten) genannt werden. Abweichende Gruppennamen müssen in den Standardvariablenopenpbs_server_hostname
,openpbs_server
,openpbs_mom
und intemplates/pbs.conf.j2
festgelegt werden. - Unterstützte Linux-Distributionen sind Debian 11, Ubuntu 18.04, und Rockylinux 8/9.
- Funktionierende DNS-Namensauflösung. Dazu gehört die Auflösung von FQDNs und nicht-FQDNs:
- Stellen Sie sicher, dass Ihre DNS-Server Hostnamen korrekt auflösen
- Stellen Sie sicher, dass
/etc/resolv.conf
sowohl die richtigensearch
- als auch diedomain
-Einträge enthält - Hostnamen müssen im nicht-FQDN-Format sein (
foo
anstelle vonfoo.example.org
)
- RedHat-basierte Distributionen benötigen das aktivierte PowerTools/CRB-Repository.
Rollenvariablen
Alle Variablen, die überschrieben werden können, sind in der Datei defaults/main.yml sowie in der folgenden Tabelle gespeichert.
Name | Standardwert | Beschreibung |
---|---|---|
openpbs_version |
latest | OpenPBS-Version zur Installation. Muss 'latest' sein oder einem Tag-namen in OpenPBS entsprechen (z.B. v20.0.1 ). Siehe GitHub-Repository: https://github.com/openpbs/openpbs/tags |
openpbs_install_dir |
/opt/pbs | Installationsverzeichnis. Wird auch zu Ihrem $PATH hinzugefügt. |
openpbs_build_dir |
/opt/build_pbs | Verzeichnis für den Build |
openpbs_server_hostname |
"{{ groups['pbsheadnode'][0] }}" |
Hostname des OpenPBS-Servers (Kopf Knoten). Standardwert basiert auf Inventargruppen-Mitgliedschaft. |
openpbs_server |
"{{ ( inventory_hostname in groups['pbsheadnode'] ) and not ( inventory_hostname in groups['mpinodes'] ) }}" |
Entscheidet, ob ein Host ein PBS MOM oder ein PBS-Server ist, basierend auf seinen Gruppenmitgliedschaften. Gruppennamen wo nötig anpassen, Logik darf nicht geändert werden. |
openpbs_mom |
"{{ ( inventory_hostname in groups['mpinodes'] ) and not ( inventory_hostname in groups['pbsheadnode'] ) }}" |
Entscheidet, ob ein Host ein PBS MOM oder ein PBS-Server ist, basierend auf seinen Gruppenmitgliedschaften. Gruppennamen wo nötig anpassen, Logik darf nicht geändert werden. |
openpbs_dbuser_username |
pbsdata | Benutzer, der für interne PBS-Nutzung erstellt wurde, um auf die Datenbank zuzugreifen. Kann nützlich sein, um darauf zugreifen zu können, falls das Update fehlschlägt und Sie die DB manuell überprüfen müssen. |
openpbs_dbuser_password |
plzchangeme | Passwort für den oben genannten Kontonamen |
Abhängigkeiten
Keine.
Beispiel-Playbook
Inventar, das für dieses Beispiel verwendet wird:
all:
children:
mpinodes:
hosts:
ubuntumom.example.com:
centosmom.example.com:
debianmom.example.com:
pbsheadnode:
hosts:
pbsserver.example.com:
- hosts: mpinodes,pbsheadnode
gather_facts: true
become: true
roles:
- role: openpbs