fifty2technology.openpbs

Description

This role is for installing and setting up OpenPBS on computer nodes, server nodes, or both. It follows the INSTALL instructions found in the official GitHub repository.

Note: If you change the configuration on a node that is currently running a simulation, OpenPBS will restart, which will also restart the simulation. To avoid issues, only run this on nodes that are not busy.

The Molecule scenario is tested in Podman with Rockylinux 9 and OpenPBS version 23.06.06.

Requirements

  • All nodes must be able to SSH into each other (this includes both OpenPBS servers and nodes) using the specified MPI user.
  • Inventory groups should be named pbsheadnode for the head node and mpinodes for the compute nodes. If using different group names, update the default variables openpbs_server_hostname, openpbs_server, openpbs_mom, and in templates/pbs.conf.j2.
  • Supported Linux distributions include Debian 11, Ubuntu 18.04, and Rockylinux 8/9.
  • Ensure working DNS name resolution, which includes FQDNs and non-FQDNs:
    • Make sure your DNS servers resolve hostnames correctly.
    • Check that /etc/resolv.conf has the correct search and domain entries.
    • Hostnames should be in non-FQDN format (like foo instead of foo.example.org).
  • For RedHat-based distributions, make sure the PowerTools/CRB repository is enabled.

Role Variables

Variables that can be changed are stored in the defaults/main.yml file and in the table below.

Name Default value Description
openpbs_version latest Version of OpenPBS to install. It should be 'latest' or match a tag name in OpenPBS (e.g., v20.0.1). See the GitHub repository: https://github.com/openpbs/openpbs/tags
openpbs_install_dir /opt/pbs Directory where OpenPBS will be installed. This will also be added to your $PATH.
openpbs_build_dir /opt/build_pbs Directory for building OpenPBS.
openpbs_server_hostname "{{ groups['pbsheadnode'][0] }}" Hostname of the OpenPBS server (head node). Default is based on inventory group.
openpbs_server "{{ ( inventory_hostname in groups['pbsheadnode'] ) and not ( inventory_hostname in groups['mpinodes'] ) }}" Determines if a host is a PBS MOM or server based on group membership. Adjust group names as needed; logic should not be changed.
openpbs_mom "{{ ( inventory_hostname in groups['mpinodes'] ) and not ( inventory_hostname in groups['pbsheadnode'] ) }}" Determines if a host is a PBS MOM or server based on group membership. Adjust group names as needed; logic should not be changed.
openpbs_dbuser_username pbsdata User created for internal PBS use to access the database. Useful in case an update fails and you need to check the DB manually.
openpbs_dbuser_password plzchangeme Password for the above account.

Dependencies

None.

Example Playbook

Here is an example of the inventory used:

all:
  children:
    mpinodes:
      hosts:
        ubuntumom.example.com:
        centosmom.example.com:
        debianmom.example.com:
    pbsheadnode:
      hosts:
        pbsserver.example.com:

Example playbook to run:

- hosts: mpinodes,pbsheadnode
  gather_facts: true
  become: true

  roles:
    - role: openpbs
Informazioni sul progetto

Install OpenPBS, an HPC workload manager and a job scheduler.

Installa
ansible-galaxy install fifty2technology.openpbs
Licenza
gpl-3.0
Download
195
Proprietario