fifty2technology.openpbs
Description
Ce rôle installe et configure OpenPBS sur des nœuds de calcul, des nœuds serveur, ou les deux. Il suit les instructions INSTALL
du dépôt GitHub officiel.
Note : Lorsqu'il est appliqué à un nœud avec une simulation en cours et qu'un changement de configuration a lieu, OpenPBS est redémarré et donc la simulation redémarre également. Pour être prudent, exécutez uniquement sur des nœuds inactifs.
Le scénario Molecule est testé dans Podman avec Rockylinux 9 et OpenPBS version 23.06.06.
Exigences
- Tous les nœuds doivent pouvoir utiliser SSH les uns avec les autres (n-à-n) (inclut le serveur OpenPBS et les nœuds) avec l'utilisateur MPI souhaité.
- Les groupes d'inventaire doivent être nommés
pbsheadnode
(pour le nœud principal) etmpinodes
(pour les nœuds de calcul). Les noms de groupe divergents doivent être définis dans les variables par défautopenpbs_server_hostname
,openpbs_server
,openpbs_mom
et danstemplates/pbs.conf.j2
. - Les distributions Linux supportées incluent Debian 11, Ubuntu 18.04 et Rockylinux 8/9.
- Résolution des noms DNS fonctionnelle. Comprend la résolution des FQDN et des non-FQDN :
- Assurez-vous que vos serveurs DNS résolvent correctement les noms d'hôte.
- Assurez-vous que
/etc/resolv.conf
comprend les bonnes entréessearch
etdomain
. - Les noms d'hôte doivent être au format non-FQDN (
foo
au lieu defoo.example.org
).
- Les distributions basées sur RedHat doivent avoir le référentiel PowerTools/CRB activé.
Variables du rôle
Toutes les variables qui peuvent être écrasées sont stockées dans le fichier defaults/main.yml ainsi que dans le tableau ci-dessous.
Nom | Valeur par défaut | Description |
---|---|---|
openpbs_version |
latest | Version d'OpenPBS à installer. Doit être 'latest' ou correspondre à un nom de tag dans OpenPBS (par exemple, v20.0.1 ). Voir le dépôt GitHub : https://github.com/openpbs/openpbs/tags |
openpbs_install_dir |
/opt/pbs | Répertoire d'installation. Sera également ajouté à votre $PATH . |
openpbs_build_dir |
/opt/build_pbs | Répertoire de construction |
openpbs_server_hostname |
"{{ groups['pbsheadnode'][0] }}" |
Nom d'hôte du serveur OpenPBS (nœud principal). Par défaut, basé sur l'appartenance au groupe d'inventaire. |
openpbs_server |
"{{ ( inventory_hostname in groups['pbsheadnode'] ) and not ( inventory_hostname in groups['mpinodes'] ) }}" |
Détermine si un hôte est un PBS MOM ou un serveur PBS, en fonction de son appartenance aux groupes. Adaptez les noms de groupes si nécessaire, la logique ne doit pas être changée. |
openpbs_mom |
"{{ ( inventory_hostname in groups['mpinodes'] ) and not ( inventory_hostname in groups['pbsheadnode'] ) }}" |
Détermine si un hôte est un PBS MOM ou un serveur PBS, en fonction de son appartenance aux groupes. Adaptez les noms de groupes si nécessaire, la logique ne doit pas être changée. |
openpbs_dbuser_username |
pbsdata | Utilisateur créé pour un usage interne à PBS, pour accéder à la base de données. Pratique d'avoir accès au cas où une mise à jour échoue et que vous devez vérifier la base de données manuellement. |
openpbs_dbuser_password |
plzchangeme | Mot de passe pour le compte ci-dessus |
Dépendances
Aucune.
Exemple de Playbook
Inventaire utilisé pour cet exemple :
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